120205690315959428539973816151144999076498629234049888179227155534183820578631309018645587360933525814619915779526071941849199599867328321377639683720790016145394178294936006671919157552224249424396156390966410329115909578096551465127991840510571525598801543710978110203982753256678760352233698494166181105701471577863949973752378527793703095602570185318279000307654710756304884332086971157374238079344503160762531771453544441183117818224971852635709182448998796203508335756172022603393785870328131267807990054177348691152537065623705744096622171290262732073236149224291304052855537234103307757779806424202430488281521000914602653822069627155202082274335001015294801198690117625951676366998171835575234880703719555742347294083595208861666202572853755813079282586487282173705566196898952662018776810629200817792338135876828426412432431480282173674506720693507626895304345939375032966363775750624733239923482883107733905276802007579843567937115050900502736604711400853350343646722485653151811776618109222791910224883968002666065687051906275973877353574444787753791641427381322569573196020187488474710469933656614008069303256185371886007271853594828847886245041855546408571556300712509027138634689374168266546657729261117182460363056604653004752217032651363910586988578842450413400076174727913718427741087508679050188965396356958643081961372990232749349702416226454339239292672783678655715558177739663771912814182246641268663452811055140131673253668418279295372660503415185270488028902683158334795920387559849886178670059637310157271720001143347673515418825525246632629720253866142593759334901124954451888445879883653237605006862164259284618801137166666350356560100251312752001243465381788522516645056739550573863152637659543028146224230177475011676844571496704880344021307302412787315402904251150919940878348620142801404071621446547887481775826042066673402505321077025830183813299386697331994584062329039605703190927264068388085608407473895683350520941514917330483633047714345825539212218204516560042778722843125931574962702673041591878828448086138777682256162296374131375704245599489132952585840214793583782319777117278478172048243666657122330373295941005726119801382302588059206296133177937645109571200265780488060930553436328509736131800760935264143302217827978564817927886033123373569288965927425260478867884156642621991371669411094682481132313830181767628363854350905558601225932125362930957841045290094588935969189853011977307250424594714290105711826511856844831712629305370942503594701789617046773612368547369355028474586198352957135973216307465830087403470171074600061004390128583637631607516627176955717065098791878948386687809592172034831319140405491913763062852399963611701255532717707791536561458148570536822604331851959017145353469722646393073214120375160798713464831081398813117889034591388320731609606100267414654411415446781990464628711826571775498367736785510495860378615582753398824937352456924338759180435664962647423866290244513052460258631794801680193263475842176457146469063641286396128163156986475740031696705147007124250417214689100161623389801062016791122100157370465425607599570259698306100679257075383976655770582201017481807147794014667523224316145726841970678173386753617529842172019313144772356819664039381649002015282930919727698990399118915183557224057873344378574990224031393007794924960426218057456022781246021574502254057233962662944593024501521983393050055361353071371547793073288340457064499613585072214386309307273964414637463648905689966577099645526853485515343479707522391014043376538180648609479738699589143368605490037403964936972862679998889322627544896426258934016133275345234468186246408736950719401032689169396232166051954803661722700594324808082280290028825506802812315151438314806201504318824171826720639622652765761685332420619753702965349579247571055226842304743879834532319204419768217817240767917291462567866013245994048225670587193647942013102918643630780091312372897125526321982506978383336779543871901383953155146514178451953857237931651126825755084124816583947418890551669873879061017187830165204169418241285504171822255040542991048192632804148633348026996277598773730293110238873238498378546971456934119283124947737296795412431641914613933158086926835752333916142597766535204259572006032866735146732673797767898435568508492452463697907453395915870711801071591608994239743129480749667564547495152344127743805391649366749958138340577537608356921871653001254050023464116499183817616954001416361827875737225822355975494396623095110921248693707332072816241595206609848144445792889004557109315052339563501886721279732790956090309417882772693389991273638979168811001362677160863946110005919727640434163376738178273849851499998138231995618791117705434804525331563296592605248371214107451341319224872322646119623500288148824696857539329450802330309112514102817026996196225654116352426513210341697203430851784876215287811911779129668242901843318112485374364707419752127816811457647812955223352468601515141951501370518912884623335161094244882686309709485786015763454434669398763417510758091840782478375837638773427747775435150866311667822139967758024129887873306990368522273581443405329137678273860684085634080496770918692306250180305263727154876304166148634681475601897997239729967108157618661633272874974533602492756501501540934352262969287544929979818404357249120984295800912924594689426773264561780788671839566157292150508830388911041048562961352358474720299605633102315708345307904768734505806852856432362397339040591064496737463830699755003152964064845687918794777997681488055615289180929592380364060198452362464275368963288668238880356353569644612657470970178075109561239925895501828974975686352839528637296671166553658474557985673349999252698594621051010334719570121510143534225174816573847371906496863215359354418496713964164214580654775379683780888655430259810290781357457518943030047487276886724692703942502817878596136239148152058641659477801503927129553267823950744711101225479826872958755933799004926742407097407398482166950841914041302231768983602771084781405622244236607759637279645696116872813880006454441620862853093383178779448357207924043669613801701612463067916965348267538238510833454395205142184094633435777619658014652074162604892700605797187306807812534690228333187140130241951790460766114894366585238102545064638682436681127507213421068150305958285689376477214086751918672002331285540977806435917094724129145421364852779735682881170768458168306515490951990582336239876156927744352542421937921590368526082656801340219730823637401273644039684961798031266238799296681143365183337021267184587181482955082188746243710710726229238065754302011098908716438381239725732673909676274426954622770498806087772844015540520218832913731144820087259150596998711528359474788284439739522264482338935106769972840783280384371236955970936929639245770941579848102700676945425183375047066736187371829370959130731044590831096040697244723408359610167038654965970404994358028673040158963527899779286403239595547042183283481885399561279741970792192288500663524569031531192837968831119770678984202627692845446230726774975332370604038330542268145724173601896549375879205669771373529458378458247641694464767989874680550288399250937426548792122332971799196850360073412161969274880439128430580850696736744165643187000033304759760184065236720875115191814348456092856428654067718145441396703390723015926158687631056354278327264689913003834984241553941402109832870678029529686350104787409159935728977223639973718320347152657804550961301111463101179852362756284967954626908046094795188557931591250482738207752872227551414295720086836064231242828480812890674719981836814193297387633596037259597714063472999664924750792947145601470195407334347404909599227465290896252462320540775484337254040639353012191445335463779874711517242414348824822265995251147911913469279726127893720564063945089130052185070287133211303697110739038584961504251236577252294868998375818264272273883473256735341610869498090419485170781199814438255918071475947224463011080505716291373040991975845980144994797315346303473051058256052452683700266896586766297855196457596709557585459828195072096011753664831884392913301116075971769776194807524039066011719882259673020845433022301759339280249874363102058166578534534908829822942008054861830490483891046404766956956310566850207218155766249720192520485620019525390954671273176068890013500737687646738879008312358378290777867384552138593568458243843306642084546022290702789893673339973342260579010191112696631674386097435220418656740528579805586682026013871895586750254815369068149936169091239508136417699997666201004046115999615913053694234300272923629296011571486947904994743590837702331710449156083590239359444871145737331640885789850898061859292450886721180076913715777624707470768263906993081258372733113093121298400291615436920284888667365540886356285536783684881613444771477111417727795388591178268738716035520279873548782096709559263395723118822702421216010435310777026140672488534473170737605273617314727281925112772389160505849177289818985269618345942470149602167241477855895554619277958678422975801505061021905566047042666363829600235995883210951887528308421159460329488012535787378283852159627745103615387555661100403694906720246293624770426820355640566931937755986406696299661174092866855308065876470915209458269998717186569203026885346577891432079470105640019513715351460325974866284624121785010037937135997572453554417397182847995845484395894745141972093051198087587835162623830151870584430449365867537480270246608232150502044566346491449040000244299468423777624283047238791542506390591576359352156704007255614036238605354531539632663193756202616459997650479046526085557913731224364195085397932767647887356497597907708194249841153256558096634899312435980350086115548100973355879841196777797875606093118726571392065529397946125695810172705312150946739210873426352285420481452595024312227319026981027999664753450348162200132292024822213872015376087839772088592209512625945612790911367988423381549390212926771963529302514802356272922318950423506508391697406143555843857638105594039889292832142766439286230630574145588362273651776392252802691693227652000616706880449233651945028759117452148399151014708494011589815787274671878061704207358569476031190468160489869900000369749966915054877905500364361171646806585533861553103765866785306257867952194569906329323523780789896269593549631084361685415373250816197300845578502476956754944992854224140295626715870988983692970850923039980557496182278338607383152279514975600375320660957948431053867168541772271290333816005864607083618549855656275679332738798883231308405595314160448874271065077753755356285099624627078369890931371764678420646067856995611094617289175106956544894624454999791476754385880745696101876052486749618183334755317986003705158241720437863693236728928809507868252913453640813405993199733184593299793813558789879400814026778153887449983207666328947466404335028752107414554626648650999371653605542020962206536773727841134014256754257674866401669809299457159009252187515252434944790880425174186786519880125747129604707786388610531739515791289906710829810135444481646390221704485280061123005672218080979861531478155568303074995340497708853256536598713432309399903426380985009725369565943586136564190166601160704415315176331341808122489262652820765996229315837134739622490217724490087437809072707358765398152750202109291211984293345556341991157913108922872143238749414008735941472225272462553504268780687282494424783865404891262307077241311998940588381342111857325977552345062082766466804822080650671440242884762343749585319810245218921245837126293525334808255454226671756810223670446086611197312268437229684768289348690629915365022277148428476219986397143303428959047292073003961340360479127544800415958001739858910470141444646202394139769297615544472378422602640105707030007060942934759057556175561386327723105487080299300865553962012536161683358399523347271941782641468506163264440590716874557795027845195328075106357669517042105665339976554971023609891013040255112684663782590385573215139268735047988553631720104445480241594217736529830957521907808313260032512457898078779981188651590949980716619848691265052736271271494115047785526023623405587953424884718624426999296837288786680681979042798921983781950243475079528791181836184805327915055506338883708883974371588994342624391427501651358680390564839241388533031457760752062058883577589630903555830731520061350378553622720617895830254016203939255366059186194220030031033548544296227279278944745662942047973603320155468387644554210096573453873078289389891778681529364081816075434082384624091715168613083425175336492280726445862233311693877672542673871861484544937710756765461104375945039453675881616089695813992292347027102235426294928451500437651439630380594933070922837970843890076087292732709816328958196944856975289554405519577766618469661952708194644027705527728977272934870310379982538925745018768867296920148245244530625670818416912506769406369622198040820981083638104751093388335707502438054928364237772083467481200529990564219869047838058040128802387413012071869889599131440947608769098780242960112332741550026424602205385865883457965079976404598324209440778689815518230816812718407203978747995653333379742291044081416142086726734527225894615853099627918859513346436450000650322759538213055433206766251647964815385906979816005360828154828761904337990142410266873195404608105577958766973161488099190181965372453311938735434808363681650090397611709104317797587655962477676727282131863978078951781759577790161510933444326123832931956197751950755640404138510222518396525631820139216291105019720420527169679039743445042905204060077931277617689469654469590889144229265832798133018017688599225266980862074021442642401293866269735956141999410104467466796753796047602358393058155956434691504730239053772186698312621456519022575812573182414728652681834702712696032585938421734248980267412845397949396067363300807619806886287171136227527310614941570917285022976380130937562108771781815297298599118507218794388195572913794234736515130367856912777071297711264293140072280082225258325767177335861220206583735114040817327452705014068036538909654522950839354627502596720418511999641707795021886498891230993885764174751596807849708537491670538177112878303968820997325858441491147522022885107407651698376470252340424996118092241166196723937471582727196161558855039785900228442401687203458326114848562786315955016125681184591007608685697378376116095325278874016175370891896549037856319137423468476669491172259784252072539968373919978361346957663977022063663770942593796542496234849518446647348205732481443762543214172305078999190555686467648238090107918156463658535188834796121056800988211894325718081758276262237033408496032711732754856686592822407243637512474538847213998625598385798030584254525304909340029491115131216344822769232598321294293321280178606395300253115499451901870891689202084438367089956637791042515277813106610783676194650887579856254454222359094803930799104821879278702013827562901597798415865185671052338898704208084540641565748832031407732949154237149742338441258231197628589529536924545015989188909918727821942138644842386792409322290831340600069514898619057369514031788520671175508372428009481965401088232456100988014586846482291039261915311130740188772051588027656753532212828064851937741557976668718537719463393742855214632523078582833366187787523264119643198515452369232152603572977197017679941750688220336484808475777480575555397870736333118292105106590430021564092601155779793847999801190228085169910775798594448208423625562087721667791589078748816312287535739227974998265447985545467545777892033610016149080545458177267546295204748203744982976205109647071081640640829259613593576897191246873244283337106767755599717233496633623820630573207281118495040690114874263000719308201906940790168516463355666921873558097393303603272452478578992344148023770013223424267939736640582552102809326115870149709327715692785751349534414582654781633132210452206296136790096041085557530261106164430373648593723001147432517163416805422154728088370315722690704308108212088195784665649810637264720529249693250984424142562793301747426373572493860018500798904296884762241128300446358459410666409625219541893732326347072163314808212295080206392172288093761526677874859159042979972445287830302269486197054155553903607675278413284572484961953994446517759902745858623318629891277383969894488046204205968416653266827029207906168356289761610047426850732960229922486572373623357558398724897966979710643005626297600840241426213260331428486842294096526145614060591069010741691040224850193355190935605195792671906466606225324409245606841667756395863530665652825347973687488824982511628442017640473533343134032904441838169375556413901485504108541773296387977389909820471756311040615585562765423186082047917421967545397332041788197497373901897537171691475856289506748133844954444936570992360403978852208701205981111096718663774837406043943596543617486230555381083777445169405409376666542827840435472044589209075156392632491286421803234408595731745105952391259456061217538858377762349717771057606732073771461291665450629285242775504938000539905658652523322052918558638105934557982467219409097613177117912273858287738666352879251841084502890418079038063204670428023916355055881354448414926482380396963437285010559305517771975331902854195360467648209890782559065564942698005994537247021794369990184668464495258341116412827589283379801595226948212576618439801560438597933339185854567742239301470955296063671703344039618930477245183497797876283928370239005389790543544516816536765445352008971006604515375849172918254039590127327866935767001386615431629243011834086062521609776934532380480409877044070303694768749638712519787711556144619970228382045964781100746085643522958455804652120193459855877619506490049000782358621506616505785416448868592208015137863582697979399457710864454348350567290120843918845580616731982692704654918196080357698943600625834202513603569125983275266273795414714161122198400798541292705455652125803106958722248888196149701819738643896284913274699983226968211258353871262317316072444984349111674238911198769572498592356718267059610499689105361118621888458848092279813383817172345991660746322633461165372734648239026082668622880465653493342744314576589688172695700208107270816444090192165375906057703000770401735469841549655219500692695869125716073887292680867355761786609627896854407420517685247279118615490776606304080505401583268492183025068405517726442331034994432575173387360933281630717883154665653207349229465500580880679327525213457872958278534540799947374037635259342645831744482361817141614797912172791411547441857249808284709622630055787209753259699297751093123591106159179399961021807737633146995799709246544074355717285317184354652614301712181020830819443064719168066832817854043548812170629319159332519927847809222526510528652423267613546194935004503541143854866263564836440496241101195587757481659144428775871310366146610694895059354910547309413270276365336448374205917667152607521585641146775865430361484354082887464172481204085855068614295075267257713884993574642619326648258965486277501530212212614519696608174715071566982341450048180540976367619490883115277733266684678104955887341743351084407930165114456103769898874001077610680190860142071037267885296146211162364297841881652303692995493896386139782220177176015211176189083453129353884790325930157061663875178136215363197201010770553206341031641006989968870650830728353763661594636816378453177355758739945207803342564019099834296953701684012898678110063099750728475930468838375145324433365379954806852520253764774305396524663547402377929904371350711595756225540160250473467258375230072953819869948778416020378721449837141444963764808119894237371218661062874278019986600553509960944292787938437304436877765903208759836313520383289838888677519063273801113341406951089976323302731756713076555317525384982326588484045960504901108617870780043166819466401654452777797648269571792279732560749338271978756743285630303178984087052868251412171922667616371665046279432372319418414421527294699194653051512906756691135902679617699359751883476437815297855560277283855146006804744834438789087320634211864254994682064171700476784026561654819801777356401559638969318245475969228152580947356582829573340171994218902166849806424323895146479159880567980589525806193671623206782818410799007986581977461219848505754908487022950327752954563313440118636247577517711870386284109902623840519218700686183770654809119278729688183833510625169799126185839072738277002183831259934241999123671639191701219620559738349174071356134756079335955033426107169587879989392712385969204653423263338140771091143107183806226097880166927319580881368276133157902972672621787581326919206863652864203037875771089623299330727238833583373828168444595301708850338899356375965091452071016751211933597135841216556870920714765310639435604136364226029777041887167021852019992690594219617483545344437767316361059112238930880717266078875648374466504853858736568311502074456283312387441814240259561456432312364952153220267475959291325054558624571633912064039055284107819801561499158905271515477463643277282447730832681013346561953722943142273275164230165160560250465586588317027048453012094236830031890443163536523318944805059932723943923768631341728916544542445064452127958682325993095916623513168408584342243945357277422066091111107393218508459284744701841004100582581198381928594981496599935002587301058046507628084425816740148915532790728283259672278865566174476780763116704463048369070770952068503761122983858899238910291004699940603705155952063186503754183980889664058115729481898181763742676258945672545093877638417729593393698576127531450934466378062467654785603225627269798869443083649169146085006087263561172561172941475225313656821040179659782915533550850480972646080731708735348890452728165248429048446773526723837388774613799221909617510814495072627602482600574500227416366758700932898045624703634492602498570549944712731041718606806916684714793579355418409940744107833384019059728530888393432927538587978419788752673012122189204806970415877492575817132339713795250332673229476215292410838100497067650183351836258360839145328774050082173689352590352297893674990406514367461575138868947996895314902912721904241991412090335308845658318191491155523209887988940978149511039498567695336539068509104905946139244547979678820782275108347157892460221145527559097876397869037380072667561876933100930122395749263928975075360977868723476369908017834718377552604586745874087418705832816164645365868238951251506672707362192611370953795033891375641393306780087484798491420025091035220113337672650043324955696548021946566027788650299953940602415022644208417376754933721253776661215481689742859728550271841030256143510667131401244661620347972961175809618580917524531682783344109803886608365564847328642857298763922016940861172440021275891024773831208703749151889612186158055611558158046388822404764916644320194123195049245363510795358457515545120808552508931037427194806778643267327703677146741434372914443452887283307102310531441094212541266678381549317371426996801972202570550606314329987310673975020146727872324733193221239059252156490424906994568148022907804058342807313504653169124354685188314624370368431952969407937935523202911052358165410613119450622690117633476145573954724616206201141755467949000337943232047837177323079645013504330629539069401989009680887153502349087323124199392991075591255182372150703903136552083116499141710417709948811115946182317554840554228136946617617899891740780411836374321421956102219378445543003847397413976184930230408151390064471907852855732834097528417678177222028361105372279079044027729665685339851554511403207107443048085326371793880214094963394656393661717357620695135719659980545853675660860905921885752973499499034943978297832150776583691156921629012499719151121408354285547182110935370415791021794514065826573012480873012114310013987394373415661416854646531240813533201455065292122666658635235379988659869193803489270995421363336821040135219618951716058039702273539998797390108235972392049706546810286051943215380994894078111713830115886899693567835241062179894361769282903331857465329869487684075726394279913200628347131275229674090466296437498777201141059490414825862222211646451568207628045681690600034816597319959168787173770385072584517536315599619597250827627970677224767454811384874511646179766789658702608237028540995288498531221180750283084502487572950245682244225988470061247155112106842499427765669253416689614383857690206415470666654664490062350211272752876141980083482770811325932170560910291413870150870115311765096250575176937311013583255387370784894791285444508108678487094212339512232301185190836039504674550495304717682215692803869153938392493764146083907917324275898286386557004477981861401496527979493029566333745283904707880098655288987346665335535889696830700866479453061118077334966558451740385789579687242774724858869230512611281142598113924039315141562996191542875128575887442236265276751640257441775586291199706395438293927284499644233077350150329920033217078417018004856833870498016379260202064453950747948006376243775907201713055475944776213770551420039544181881756867894730281502630315478758116854964236500641313760145666572527031373582933279324449928930872524182747861011407032770358743560390601459366447140788580354141663822168070012952653353181740678956101665798219935179810937712245867641756154662166282013287003185865996005088907124651768302526163929416870138764347004421249528140743687572186678947102275588097907500403001804891698521215745079138256594762645864329448941193278302592082333101103048213453633448475888059487746309196045461593433827382039937810006500114459842235707269017021504539259384610809295816412082743201717146206001928036717684779335681517801653529698367786549294865122302758832263740609129369900380881750670526022623634507211752964838911122966700074980277930928749964008052297706942212374246035269476040147230040830404839542180057619438170255268214474816317702214697501815712180448998545227681550914592233131846600477037664578878727404126513300222429853516672702709269894183189127966320936358839738166089745759223732069998354227267209505886964661308250416392898997940303631374215136535983723788673305950308806542695062365544757956078312149349910972354634426475642377523221568314708393385798937043633184285083222653891435087145481486292499821201201033056457143145580447932407732518186656189813711215254715525311298034414080795874182682595579349799266987618215284227898053987824834711907837519153794115620281393520945993806518848804207073100080654459585910301021101914431828620346867978009099060435129489199914909018315248794559622970333220403031645013129251786516686863797177894562727685458913050225772893274245676292050597979171580097784136378243375596793597567939088146350122079502238260568345898159505252197988078187060421198193550755707075239211557471681604106280733889583340750283916636656405346800166757371589406213995415465786998056024852133147089851218024603615505956433740287525970747290116513825948374576650220250793591516207281383080622155142345584084447058992690829584287542465595079063485400618747973253893407574413279153242014908136824308521956370859201935342538546758586125810579659914079521317047698257093529595514354557700721086147605815533248465398612649888854935898776509030773254892106903168136468634254881219954726524639007090049833744918264003711587594014938961371206699248610664266432178629935638353542508025135363803057396477799217714369706980953990018853217890463864004540105764549140192729895293290916747132812543955594706878813395886624890143255376507451479245684096313350064008666752305222712062472968971833673889136986081175013117256431294031332825957621902089729324798777199746550395845719767312165476157411528319862361113901506332993385003072350227651141823694731205520427443165431159788119330504479052569483186060503954238181503961884780214051384253611560860096252192591738625529034014818963052680752107507775977630049666168232418543662483825907390488778416676652848796938237317985954065089332687598250275369195397559360375106320824306222839406566628884815086903780615994687442992486393380623294884616042873662713974575389456452970964995302728581817423913526210719379030248864838840886946017564171711723633035962522960696825892449355635441879392347455398023407454774418159599322502046628424514220060428160615950368895634095290639164653788859953842132624229321886249443431672391703180976197590083890581186967494493577636019428212464249713627508259549161969825164356061592413327164030945682622839040456609146940374477179430477720278425695603539667544567088225553416999250378328977553057406712325818499314417417611050211142477788908228316894595813249429893564851402940143075773470277026742795288356253099058239482862454620381961580276710309335849897852707809080793599897946647617553697456633905272595304694421922744514413591584307945130372324570989889684915586515116611685199966097750513954123734498045481293197924729018291310155507803104392395170650056969301028444583625871166241927587572327075809307181866278786398189538369053304752832759403112799507971294161472108998294015527149459435299489907971372330245787311263263219168237144561873684486805864775675053804057914406142981770674155565665438467225618052347970419175162923716118796189535907772916200702708101560210762599459183612649194854463136553272612123058915732730237882461148385794545906340682850475735875773144035269237986826900464979526161041684425103512098457228874773362283088124391193688768471402213372535921288985776217508129586535431970904123410329226614299470857021828869484455690857884460052833078769625513932550606934558922893304848994785654460184253845835153018069880867088389094881877199875572868805109509747896360969190148139956813208221826331253283200874414187748677687069134661205812723078603502532567909572656011191506446076620714427177200830000977416109071778508353522631804829259203422226299176531132559584330578364009732247094345469932990599085223497158086250539456091387273030744700803746152833675549677898086480971362173846821055685365034050159384851927211700979887654017617608492438544472294588173509269304600296289841938298341063415268780993669936454812504571447364526454144833341326181535280639598043449264269686521201510165103426183975616062173872369271239265987543038091867373828587680037630345128801524494144500927939317370835498455672169145998669627172451109301543934946559122431731042873541118019120177809635511499348490242002642333882040794406131949578996078808216243796336192110143710780551434547377363245897955234026884879680476092983532760060797585376284105781303426672970784499903093582632010838663177352470916212481293375981228656422256612731432444179475845362141087268347593271555196222003702628785912531561896701097269326743666382826298725271872229220719721489431983115868572800819200997745717672132704807958015999319265023201080829615348955131753046787477762876973626053149010633244293218885619618412512919517199784598639604918762500273864808482960307700223464241245519567815151245058498698973101128657393001783566326606305986098726624746971856471834633617168788809723273313999930155457332337449979958033343808422768406331077180998542461533814556583991542867931801460561986835645120805983587461755193418071876306780921523545105829950737974235897033546404993774488991263418392593189591481708703573270623338821066283428049708524216016224903510673010442903128798729194568053451863729195879256347898472732290487786496561104126273652317004100890146229318799419694475004297270558149116603623067743625024068617879135671079127937440639380171265807139326700240054842967350844320702290244261974696541023861629503241984610103066152128747589934789211152579654403903731033145297855238473403302500314937837288603434537392314682838401201642760490363056242788315617353394742569284592635190455220210627514721313837832646297106858610296031898273309331473318502949936830513369856933726549947265232687580483842348949750125254000574336141447607068611978960825140617705444844152034039353769854473680992335491367875338236482769347655392370210876846708959523681064605740791875634986552883112965658183563080266971139560971858855731921282700307685269462668756903968670417791476714638354135906275996721184715986903514139916036890180522615112796097094037509586223312902995444849540358593608305447717807668441220722513731714397447551936852262929960224479774546597016102236445067943929045619415764783699267277961506481532125674399426553627490981456771089431423992741751701180118872940721542677147305908069655416691573173681368074269526497325599526434730172734213345728788382735587675657028577212063608101151624940675653981811527467264881422929828620142115170087358461893242199852202422240605413557178216471627028649747790280386151169770413921813274098141445783193496716720637121317172668191993323360997566186748264258458510454883876001661678938882571965618798908676310899315757683896473452768864846681802415388688026454300056868687177289816342904315494624259103738133909610298692853584060533410427766240885782318974759528765883930589424631082156685584177315642204576237298320946436591933896688764870548435562352114051614511695887896267740418881819817823141630430607226373328955270245922123453554426713079735777769702638946536215113973663343995596247914497216669263025603972448042339309304004504847322762910570985962408133025228155767198735819743951089053816889685645433241248563220931978190331733863441973111054833483554883236051155325945405638479538178266539414205679464127315064534372520042918077298368020802583858736713878324471165124961198990860494143654148664238759637306252863582421403710884543026902205766077743360125973636782237744673028933129830197571714731090254554063238513828926242352489759586868916154619307742302626583456008575108654023087859794252850733775646303110634349606417588641114619141867389453558396090253822477470880419358332928958319705764166110542573364783955414041148409862500057627056786667666926528162015361387152344018475567094620344374801850099131515007229902020934817111594665343930822083415159117290761007003359378750761416738071461219449492606272929512869749030331762429397349952409264708670227351444840653893129001834777386480506071135419497798921424240684265759436563031500974475603371323051618642986621924268667112223343276993648638209645421603926318889141023752720941084540963590407635626509232995072832165355116781613002314266654832115509822672877693172194541272899569464239188431008121507353513122790798037783675293251498935143165272763504064977226293777616953066088639184636292580817830870294306340661124780424213761455641427471864189063369481141015833008181077534709873374718876445459647821744797840050628741236024270033996141540562815332746289732876657119326187664775591299828247680147994982756633174404348182704538057753145591802389185069556905887668962935325407704983194876481640781090501215400658978230092828662166500499801614069869444326679116080535527211960690637629214296964812118350392467211174098319975717474986417483690239142331095658849914025479386244140449837369304160157837092616512559328514189569893486092027640850412057438486366823877404126578373719935122353355749281212706559588295274483169258959588780580440505764299463033038068652707416165398864872813072305942605569514374783649309580351707376989547476865239694821530012484000993320892874812771535099618600641254959063548433969351521855422665480621357961460176183435413646628701206775086522237177357302911630668902572143703860387864154233274587293931198614389067403167153382493815801299082125732055252654460140386856485330857022284185774681936117675651154535855077825791604368365660384168148684490427992348253840858992609785813144907643321707994990932723209431390264115191096655996608021878744770714776794899585136827751740447731151902667012675110977830496333483797577687820459989885022630015237194049740986341300165338632816758698620712454175779577012289211294866073298039270755130270578436146037097965072483234273411899840975235628382037134464790549207689616083607564398911151820576442285847953775505939984885888981409078788466131359877483792573747299027281982146310419361849715982088027377028512623287217655035373548931959803479607411832816340452456442866214391966180874818751801781051730821852134874699826926667028810305922460914887917457893792350687793351215740596384302729023854555102261663315324861695723666664588002414914876790791228863319410266808995529766348015010251048750622013946805195134619174162155158508192939480626326963094781427847327504093173157265827079306103322988141614783928338504594872009343337157075225395221558208570441592404534369028272761373319234863500063105970411023869325852658210277281103625119029497294828842739009225247646890696678737906625368414991527090703437972729529930681422211461386441010865160856927202697697741265625361842600837969124865611048819296782062575749340909317625844514753957724931016965157222425300124745162974553178950419879045481760073119079717620419078107290802018746715366792910810749060030206561295013268618812913030379241216668344835879348996770675628267188248863315918256426537154564226882101105626191842205445558573734772134818186475818063596809742231924308272163012342678888224294557796468530354404558947996844855935128118295352011476841046993512980358795309381721974427510470016930831143819947917550563781599519551272242110903279164677747891427197033330057789921016282908250366425910042298662015671062859371795945922029415457074141911787649239903274118258716680572589724409997609564159477890913649218816213907805752775376064852253696133983061239053730775849150960293076999877489473831285165625325026764477709840789665730977546733128695828034087916783004025175566645096936470748921421879181747245687660965114802104178922591708242356015525743586026527456327005333394734921709875505107434859131895092431966542301385513201356670449316734280131281079075934272884782422401003397791526755385947205440279904046634489817808389485157695290456139704395177751119891098724965446360148926407772986216734952050652287704790823874489539086314032822609107745581572806378748700435825492689842798777260941216479757550780860023358722753784721176631524479505846265172420218284210158334187876425979418093938710641236392125588476312569470195418236235947627557522789787078151942813202618656997396104920777354602718610001578379408743302990475759529097833707629809408787078516435716472569989956543329622386430122074074651497242363178142654333872672783667522761212962237637086210759592639685872554368101770890654843609061814151039542014331475111273462485872337655719642427921961642113730670508336039320470157131367383787831588573279295734401289125345070034863934061917332366188911895166287621311195039659172025454385248848867219597301608098335715351053315510807387883630366696280611623662328491160705340648887437920798962695026056318872658095394193015184190239505447523134418488776966625189358063932680710106481499502503788658619718049206193020380641676104174313326710595382946672223695851427938481416001841652834179776031406681930647911238583308310783844782271866190461643305364254461746204730232610668451483693804043313992796966511473806867610263006214558813911373864000046170211320277273645148165112457850252124204232591010218783056096701243451800504005091540728253476738872660792266712060831318880973720512383897801184743055779473748549871575405128872044752231604005027383344451598276940991237929106136859725057510074009392218577109475797761921471066868304721254679848574255306726367522797943464166716215830367561261169934657810800640813636869533003465388661439088554296550737542136324124079630711864445151223004929408547870395015136346321396249344747165933456039957100721370377595578637781569044331192269623737727276035912705143407205616616739473272300924759260463940409992492435203561828146905929163739074840220266664632593178490032850485718077534672593137208706081848567771942566704417172872849091808566303175348642175215412192773564611150687636289726543524445581735085453958122119653616025440479582056534209924360031122638443385833148783580030198240782927555606559736036596916650259361932438301196683436812888490594328961253594262522004650513523500186808006667310660644320670942540733058425620001089909659745802456519997438571202520899718983627437675120434310863878757647478296245736809588150608097169068133234449799839331409192548791052832798662325541499073223024585644572127004920500624970816535714686335980517151389128822087191021898058767899309310513974419739086531281928245169430380153710657812464595650150583584373998511109207475960547394992572318581008962416682480342017263483050387360712273066508599510958369528374372107343202060517251907592940617833180867501538938425526744404083148534188634097548422770337717630220553550890399533594565694188174617750137166146794222921266083295286692020834795606009025611288607310708464613797846026472765015361963245367078027480313648808745063846125760178170064993630649513657227371447342178230243676933773307715135452188228044209922994753296410848235426113649228301721457085952663199008403739858662103982959337617748113243026644037073658791515402127018914678562110291360727131623531376812783927730033520063416318216310129090718671300440763225695654310460621029019565921486793038043060077283592011355670008820434695568136222847308721053292415647693315023600014129523044663081427228298539911241421585257470960703422661005094371763054736564596959642060807818761206425134908735491235036952335682705656007236659735571374076651749770647658922067641979445933460878055409005116436763431477272036589017474710206393835667967010695679436273621064858411376106579050282754805752446731013569402619565532272707130762176708055105312091132204832934002969966825017209849040657829842209850090531336355020695954091985987488782699743316502340524283402628303788366142557394522190065098690202659999336245483058694812701471967714871931344273859569554505187683735555552420733077607399595157224040685586274328910124490409561390565358166916582794180643733695153007202605138628756789391828970951866896744321428387021991098197008250439514691161371599167058628782257106058709965859346935079347194130166440442629370559657470311515888488707447194839682927226632040153006448280270136213087853329100007114297624913128192470786199928876176361921177976721744003699512174486150502702380594784037000975777931457836733247330724933284599109020427894300038729934756935150276527404120317676605543148246572835314510805093847649453317332551882959058308599554653453040314097783261576396288523412165184912428137431713107751350411423225299905545766396376790776239881599997223751843749644649963794177830767970535016795151487096883000414422649204292391160326332340754350057668513692651634591684131178315079062661161732696319669660017037630762631475088295472909190288352983702066027794676897011914668877831674212046301271538313271207568087956085081999381155976901542014681353791726506042750569250656961434444170287400001209504538462049113986547571279887958417784179587326425239848729317482349404931602640184922159723725932848422534474058299224475701734918170017275280276797090139629483687686602503645372207681334974437263732033154253289699654358470031876055084802267115773193178387392259311417068294087266285007051804857048565663782351187341833813173600508074171769975797822191720829739277725934106313657044050749252480729952837847378671803708011095883449753145076992803473647782453449175813201796381953850461250991291213454510544732707763984317258886343631556539718618073226365183311395919877104373981490883413930203804728628640059548398692225757522573289111415778755375184696746317154420865706849225162115834067996652638503454179156660003273226438541788561742635054867985724743266360205223185415801195611368004797927249813992266811943245396533582523740329733352247280357963668761837352821809788274849453019970315123846460292725701297764185658378781352788392155876520017709095485940709388506895270358406724388879827269778307114185642541299623528862394085261238491780096606913545045784717658113185736448695290806118208824888503629157246494257658001244224819437542677600858001572062031462958852955723894882110021107405774943608227993944582979154943569770885791390676803634809990403421746413505684878305243575942971348070934300981011750840308673777688227409671548717967467732615123952920394944137976951216050700612770399085836165118155939933624420854523090002413300981590994552104916024341978794666992157197696110580401463891236072405841168513725382634224325412015338563283582935712676977843568953858569206810236428142712903587597196919716820346624525918009726543396432068227772805983300052267795939949471370095280840796054848162216737516552946840469680019070213558588299786523607225005426831565750902744941947648140558743065637441167787674914032694752637226951399940208504684992260174550403486973602545033590972055423260581720372431906436389672914353202431474891632242583626878728423830208377875622191911791161570442622921833400771370543225488699776223452069310131125079138694461948500008650053962866535466194743501551941896269980595609225018750863468804990758963242644022631885083895208971119178426774882741098761293996944069618815814651969318810164129369447572813810089600465165138447409050567384790537237559194037004218475694227091040054420474516810066921597927850231539756705302321629579243428622048864384523184369301313563962938865622940010787582596910890059353137556972782857096569688216130394636739584198628839028667824399617157360228609444389577802979963844257190830503140544132266498704216818486613027532719572446979886746374175435687455818388912785118002300101241967954392605718831266967741137477215632210822360694792871895093425194378770659261331273317064473437354442385044881314562501493035526754592499047149316293889530898225313652462140040260765667270033595187639633802468808891963668173886392089459781063435886193237911975268539844371699832862273401026505834766793386452938231063088803240410857966026131865177448474480429022623673270065028256078167044691100411422679175690411015533869114936318870045388334909728627251933149934657917877670196315591960549049884389076569520859969626424135951669473555831483609136300971964028774362484009909664031432752198845755174563638898602415007977774673786111169484386011141289643779547844919063712442344220282793109902310086810449409363388587745784482495832277275050641974411938688251305580483672507291583306304708694462993081953223905094424884392458748723764782575313161347551852475048983293635479227977678557039787283457642428738286874633713512690808318293624451817474602084254821540713002998212151952833407755661295241802920669668305534319509299711580486610528478105266809595476530930103301030176355742899949375198909388535143758974922140129751890948221095770779517040306980130744272051595891254678359655249264227657583494591072655192021939104573762062249201775872210972349732329733779227025336577164016207709946168689287621986123133577500391356572888385004043696978037246996245035148420593590447963999405985262829138716089454942217674557245683039367861868453921914617462443404314124808982836504443790537836093010860206509211881839777783862226664618921548751550298601047534303014004691136763404464369923133412933874444783863951797132516185646829427377654670668523347072936758366607647776078612302802348627121921712109801548799505696681872577708712562081466386842642307782009759549741224585894388975840157337847658172973510053917888977637097006976543946443859297366897189526210138491561691251392354982165996507162054228336593090538560468373790803485390386577100763812542386011462780851064020440119803807003475708968181789792090070204325556948863298601800824075073890767824612192848902972030506303935727229235753747692646277663074311740699883802534134594562454705115549419095505512974033719115463462012430168791662653120470799012091958241934519894768463610185765748944497582914034040620993465864905647613801108948749082462448873725707980650195040642986977011634071396092894752308036454717769695591229869152396819300924925618869107118156302918465932038173930246278154875972144864277724341201624050686860298211465923045729825658622760747165339847153915399256178489376856476867377066550626313516188644983663403461042760845703886338463297334029853356052661890509423984875812571480944169246820131166422916379370237052036986026111422929726250592170062716593148312084252770960761764837492271091322337561799714427271853671213482696783724850593732741338129571280170955342822200569434922202288537230809631344073607630441642999308763616839337783030265242022745752412008075157468235561987664274890650429935122836820461273765802491559902271557985962398659392085781151707469682529532253236479779404766821236177079599751563355986340507198240562888433418805181381556570791938572076473278408581955199228524218483908113312410597831168976128816658858273599464974359240509909998468706114229754670184268795951811668203911011395256678102405577139989638637673593107042529628409320519478488659018982991599834053581151332089034851729921672976808654888977671274841582748802216701781669275469564366840299851279050695957145593151432431522523627737170978846140097496536459379880381109959505685763926978705952287711308312752660746109004135365075910156400660554307995062535170408098172999509673493870677352011274514848216921307057228090504630255923755034812631154661372096394577057126589815725291929559515898263468424102624919149596267885085146499273804516162652272068511480537115443070062678341295160364668103146722656091757006285230022349145699012724012272242846182017776797448853173407170104166810751089099069380576663651386485183377806392470548871788152417384021079473198839670539701396106184463427843241862763623054145286848647233930224004699524818841082284054025923080376008787997499920673147352356661706930355326443630199825082620150117824658882458388621865189879139704551530590796588385676546317037030625603454488636500261400418548178724969211809353526343771956581894769754738372724891483192241788893771696232784006683854148548461851616414240833096049200364146763507109579346992818228795070412504890399115601575671813142423760737065589408431599844944097953873386214082567734778293980786290309444693060996996459737565856252184238393557639203166327701709272264820460098049952241239749555100347275845834141949640216401279424206457821203479246843947150499048649179686265784502962868550077558006562982203760010001156985342537700871671322195458702171105131995802559091124205583834007415414961222794247004292395675620994414640768110442010328692498538911294055626658234876312737951304995921020199525175964350069611909029802515473649308507465210217414871342795308738627307619333628018447083197444793864826498601741351731939634463074838851359758645230743260285705446868707097106195409994407973122735887350808685965830477238589945608883867053681202661482099524624060816519918253706402651797285222747867515535493913850103255739762770911050574831869176575291207068474254384936950553180576801858653095029343883984297052800106690122920440184385689326499751255935907628731499113874755506146749828492298575276022273723363864814835794928890364213958823521227235979757076701050842859119264137249940050577405079537847263496585119893454466643355288759273440523841048403637024497561047336364709195583471047962093908889403061388921401703690488410172896727685992739609202874182579839923223627274666728327200318526556427613072251815706937687121204201882541071814516117580634579254675390006891212161993240061184009476169356931811308467308745141091006532730944231190468422933075480053375355548265507632582319502225187958627492777328193248617209522983092249055986959013769019248926737343654644947784651530575930087141580250746359138682232294641214599768194680023083778957695481484063430324736892352417786463929114082239154306771179104079320236252561016173848146939353890291769913796372576630860373930483004293286962485432990418998093882654391823514278567140377891379078354662561664039831608494279821776983283515903179830130917745459269304459242605663284553316911581982086954143962116427112626266302050912791125621241966696775371086349248523438331066322822851802302277052381928442005620727737547018914916438994129610358018113714036131422708160225460232138691031747603859528244577459922856721260742289054891916047114788438335353723045309155095977919578900887059691951637663160162350997579673517138664775496199804069873594559828023195009141074951714937652903074408011399559502764533917778025047604360144187333003519137546078367684586595707177898785176121242052122768667557234509595002601911571289281777776321911937166094375321467935350958053235512140889041415593980690332802269952301162301860146524360243833299306583682543756671475251254619505733544162374418537158062364032536214871427341776750258432331889232313363075770175962587981424364497800322803794206081381265641648015991854953047527352806375210479249425093750849278679484225527321745349854894974892141299153049281504338596985406376229739678030614255273318308990662899615384576643233915581212882455015449441103274254325403363571047632132154302961374220895092519495356399051310339431792723550106044038752704871720270220174070651903829273946797162988635341601322441517082579589057892576559290624691355370274706748521174289266792258083855988234263212078498521351635175549708764225687572143389794932672519666827778170453792266531900530492186644184060328436472729398762064061234721739789519998508875612652797189936445058483973293400357002007310486161151095711944737709802491257614396343367175447806103466017771276176348343776125588624735105585748280635166749416930605886772268957621762465690662755000884688956863625673398617753273229688698189526952959704530308168051502359899289579153822598623390034573311197091216388338353633884775999162835485675522233678169479593943566998929357585350646797777874442107577712858507323215332296182769697981305221042781668024110281244114582099331029245298719726526532866865155242576743380507698472001654886675278478169384025963347484334606897348954035531568625759317617341410976334857678071979290465903255112147864650720347982363417826137336910776971497652102237068113683099409446026312800652533681882329181147508765884765610965289587433399907959082813756295123023011844983880976236423509811162643749162935764900580348293385710611453623163596561988224050568441465284072424489021483106169636147347126127281484500772810503167329427469478474738293107050671349575106509269564501195020560236241041456265955924418825474628198494779535922109049552540864119439138564471762636442818967172456926935681872213583037489760181650896697158752630862024588159209947751988477697227365482619033091478565063423896936936276477476714776162415088725080937359857562414514830240278958534015125969440423150180413235268823495099307242232937357873197052844444236645209223750250086339514072901412578612799211425812845950690864714671856865103302862348366672748419949131596532614414739968129919071031917126904368366767789468217087549659995733733662587680875319911456795313175829719341189837212511438322554188139714367778361098707725019480558930747714222814606560261248476756982898643996528873063458706977894577055189036349764401618817419736556597913224792126791062524232070608034753540163062728295771997563414612319416283596334714716649946498812510459222650362546773639738200913817889576360538985395287745157031259332161453082615960747622274475648600112958984381556761317310096288556414855152151420639610331628498499213482957813320962732369674117443279730803327041512247370575409931616907146470782240948280768474597332327523091060545819935327465217050876163397154749717763376713830937809991967493819934937131886988048332235794152929248876681759736009222884742699067990529782110609918557895682314011294885001043077331824872720256366480311220930983312627803991372469508067117160079569370393028888967123474401428979968646683563873770569136441982161733842913143743758552397715671890690168270311845411011499515819204643671848177682937740022323096858998325063844713298673016082782665091920878245814624312875174466328063788256281478860063201146608350564554658446968953098680855593597400560341527367639967442892354663643048757935595200947860698327131159462151159792493568901286066409871094293498194616754178609419928327574270057223757588113245317346645956713238399913974744207119522282930941521691355774693965281678384713648208272731670239687878462752751055860719982179411173610548963819431479774849984867016438256068700246395206237874078210583698170084289378187813642207354871432609304707883477448758055967845486730075100014033857523693431891633872349502769090184303172603754781393779306822389288342540903169155650850883262921595481133397760606114437139972449245155441121319704311108275286457129223900303271993325759988323220758671092858534146399472035272212143938846862090610334566328224401831041464290546925876579412489329781353740174317524582005241732868953627467703839370215224124350931147245666306778894197832155523345061527145873738042717374729443007548116843295735154500688728720183408120796583422374513106338880373758634548198025470836850526790336693592646985856566297454763268816483529337943337812486702257904449027215298255014703009213420773317223992069545738524485246988517434165507609403116318737552115298671394059272219723133713106471746253489152726120810133083221355447523129206922951213756684957667695392555618532180631067364907154990672069883869708359298485865883931969204023214098981232650442997940162854935573546817034588449563046872615686849613960326551802333968796603304573700804694944282604947332324874826693461639270666356322112341435406757792765661000881234262240059804167299724066302891047327301482096049603497769977121791031281781148023318384869158978381142137496278459236582798479761403210182687607419643464537895575946873256151284261991022577609468472697622181180489427030435184795520404442475630142191893997118236557925130583300481403369213116641305921108755285629606982309375473146110088104472991293713591641725869491545193174732043223838096722415520801497619374463871099317072329310320014729071363585710298690931362958454253584293790715734372488155890404890038750634719186738852105216190657318530996306096038111379810767948779165165183755204518420726087674449297430947630482872949147548728462932249079129898671406876519619285568597609927140153013972854573137571549775719532194563536872996202163395034410474167812793063495694197230377572366199474475608440363323658579613495735268796616963893547920585817352412818342375254072722463681734388083196224608640407566711379935534014612368464408387208803274896826479326636999334715926696377992755926080571243127045500080606706921727329824388662645197932841449851085522423913391880167512640766639799857802196777021971272748842601038616376900153907091947827617228165478541056086847089936409569371835179824348579941511115807795409471893234581520015539162702698101987651314573837094118070909264061055218632351882079124937595144648971417164524089018402212129094509681989539459098506154588523819931112628976362511849569501418096444125062258488371890913574855948379541387335147934020543684973772937579661858501161664643736577524884330041189799442038612414492505975524314283781912112366332865337394383798999073442585765897479073083927390061749628570067668426398949704293742969816311989716770830154118966072899223710684975598130900557134798022409854719573080122401837034964478194896508459800198686630847647395366218485084138324420749536680134343604498926115650929589117797368512140390485373407706174606221964820509485264197373705525260536682575110092157396680184945435296153568480483182820385090777835141059437744678403917951327843911626367865886455594539948053745171386665199795944208039141741138784456033820213659478156041381189113813756054659403175696391767249933813427787702835532006128907570383892579409227601920902024144250749099013962777988625366655272988902009275122452463327652310892727838380167222154120940977445023146673147213001906559672354771985266648060169048765230047931736868501154746224247289486372259766787719777280289219681051760684436835269077471160596534138113305697222241817767327790474524201977666359169970272026988883721297242173213703672476763084473910854279376302991162714184365266061159497536694534520683872145804685496488816887418057770699458672134455096941549176926930099972273429167310952709305877611906142872186982430410352024529909878018497269141837296773878100051465346864545498219708032171523938083130454714856156871729072138104449004734524391970189633039214273653874437356074347521708597397517391150643685019790937811622425181218497546649585654290171568762957159216586376253595724485054334656647291068227445054037132499211006476903507164458935015302253256164083734704794976801510848706768094483775991827184500482426173871188248713394553266364924227390810706109621368255441967141693887617778328410289757859755337666369881732564331617791350884764565169079066462738035605283387931099771983779621596245965518472787609155302424117899129827337463611702241919762505637081026723317880187762859973258897444622369031530356713105773454320025332650060501508357591290852411913032900279293344926222745763104169069212864046181410290253919527512877625451457311479514127249220676128430418949772805717388365624843987885511936764522231208978045427727064669342626885906331102906655090580261173401034291509854852691031368326812400547093932850623214134302330056022274974745416847701315350449956350782343687197301415750578948046315190608149021273885994528071524814685074087742450571188332303486729483396613722987475885282325956755488432654645176638700460104263910692342238939491553755365741529080155070293230736229513960887754226069011232847023796542744899730074923713220143036397104241362943129027402961969087000028690349898017709617612325792251476705373914673944321783813671311573810144358279140754504243784296179266607263353104103360258242070682246923117838569321799672339939649089020766738129264595350252875070645688032004060446935527377876657774767433257419141983326273117828924371386031026939851627092672223181836978373429756748529417904289673195190384210083751993160625656049091845613949447611647435159345135692387703316070376192185732325818608673734750236182268393694268975789712331163149675194175815540535171161564900871594179698525944095507661731590210755736820852718943346198620054213504690307549491837573490922261835435395836007785748500087431164879762022113017445380888160894908257041865746095761496151619824089751970295202115070058468489205087289198326521775121444499544848295624405065320673685333320228480516080035190154617645083982587985549827786316218383698675706026390746438547823027625612489912154255345607817078473870903521378806207757843031373059237192288895441543969947050593774343284609130474275379432081798838405356574556004837972980959362793654639767465365800116677130619652980654648783625991860467685556996319852056093881441377892751590462643824708722187835764834940716907008906593352135495368682464739431670305395543679969048477339304323239029012331453331252058900986911263065427078404100193163072269804280284087089761929781063091848996424771546153393480810664078403503256363876561106983917071981401454496728856214863909083269649486528360292669777835117008644458303061288169406020284385005991948119452889971247701360359908613259824639387291126337403824536158396327891897100872484296012357229058667997878647411798777908766127961628575625338945600202887641297395918406334808921830358588511640842578942196323966765111199489130152392938929608538460631141124664075388448706515806569900829421190026690853908715351976671092365029447379142491707534444454470195031577895443154882934947052629308605795433746160073258409357536928175718662503502332986610020868331432795590326568305012364029603243996064389948433404513393569527177868782970870880748880618039542406803245922147842942331245868301974269231426989234552096666042589020955469967662638312247369855028237257836861800097000414414775316584898346060325015627589765876086994153067441986483714989126123766751238326850824185045771532542335380864938370892558496566733958505829995736185511904522462180391604615967250958758631731503232027413917939928509504242789136094551374374639467205833251107533936123770687058120098069999826164483959068295142264048948939681346201997537143882766841828568810329545599627319916447397193186436899324885536099098750365959807461686680062649363915333903839776232583596544521469176620033217479656107535196953656260402372429676895124128264552891828849006193259538748311521256372480214025661692073973713942644090819665777131756257137673865939732330171506808134364242583544778950685931061058127018366854346165012295988313106241945017979231528397186978052591780254971637265094945914780983344069661467657474143847293660556506540433255823276801513337483770355670781535146838207016982517203086117847512342226719147841685000777814342589593490056127667204157935428466643502379901303958399826802299632414983692326772608542426308665686992785989362859682873341449832175781767698896162624674217150625432580527553083290968381342355230713236204624436721501493696574596355426970457067927649277631716527684840445982237334763905650030616974449457403493481395298470032584014101249805105437022039003805676223523627202346624591248398707064754059921546503510049573233858070554927152538230987567861194031372357928280107436128198822626282849384445747759966663178195576318330954055831079380386469495867485818582022363377594372757425476216622069789254864392809031249221689416876892867701078794066788789529400170376808082513873337210942597518504717268330661773970123346074905056736645439992399785619260352997778700509235664292766943041912835478611123257328087518919547871704438909478082353814766010951251982857985745365270576565244154732466549715753079076196724902623859151649667143862842793106889667110113298150935675385085087176000536774126845235147533374356797542112647150322786146037845974095309942122773901226434822615203847976013270816323931825471376599165522718467311664026794087084298242270804818964611068442523214161570213371727193001229037517235415831246529225685362022565650185189798813333810187983737119994150463099160876227195818952777474212666459240995748172492972412490009549487731090016708449825286919390911234601172877396252935269703736006199895346306856604275661712410159617868906878195062868137625583901494213262748679511931789521634417477503011875178028165038788732705091918792026858296735543737852039116175878705140054356397219485369714516980192010169988630659681140772261842649140182945810176580102180823622579544216817768302500721009622340708140930735466656496887327621753213997713325176113536870417511358142930604772898634975592760546106282273213123139761747390638984132820996346581940002184946812903502873008090883409408883008343346819936459003012964922152967374434244384898640284619721992008614350003967506013570753663680893866515870300658536367131191602550491038911064879448076392743814685043932482555238512941805084325509850815084361314831178146068009882315856319586677375378317991348576162912654220399213008649822682286011546724606245870640250822752318535513585466461882836939319333768611886598478743492860736936951577302563785531431667372319756094106350199272711853236261360619277300040786918422402574820481436036617508771726286989662503864910606004952669094223056151987557262029914325929482038616852767222607923955567823072393413324474756332460121980410340131811270423582333172460082558908065130479480864788910151938439159618631378941562181176938899626465093093900045313177065339230940563146026586035274112028518810577596664754143695910620675657227860276260955932982779334898675221053977538296027748420153500468782572827863184441659079579649383532700407224302936336725288286443054477163791867336686464507681351432125796994053302209927996985964862252347376078422123328006910414066228154378063087124258054044091197279332799341810811862903416480986504488957731313931375304998224605801417179526582907333201821712712410821449736783904074656219976139188671096753097908352909306005410253655742725379363248256877307820413520814711968503129763087206138652856042142497993168674217375323259161588803030014694441569776354324604137964475641138451335709389590554222341980975354210507503282029725624191695415145190290502712873077780833844033824180905059969936780866677510607703159189559189505437745924981988080029823983118039453419311230892362101790091088810262659328757352808777996856363906141549468319680498812630759161862008571586814963913361361299561966316861419978786814105745956729268722012656703403001954275197856907558654711988892671944296788387690906084996288511677635793552892155021187024421040016747206658917915064782992638658219276667316140331003752714401388426488639979422478316065217663995712256544661273286528284396890712989578200549741420050216079201353939587282762644373386189021849323115937420931867382369732101359454531154586741567091059381924646531879235665543137735564966654786658007698632063667524523708063948412799074165535673420096460931627723890850524098444550065409234947952960513724616148749080253350287776706511246702893513406785604807834195941903810913202689788316473204289119184275293651227553091152076052088058728322917471050067709927029525137323347310052310313803553928548848113926242074446971559893769037862455958759614418644221299415241883803517270478987422855819963222348806230238322303564953837917133198132475214785146702065036235494338702404987696961621252422480486303976287740393861322508862624746455930070234709793893893732067136697795646929275541602368910223455611144017475455434018334471125564145739933327836142492597003289524216633828000308008512545801729016394559520231114760750942549438018719836445697112075610478883395256726721576863746371494850939301390758629654743463598610129385170299136259221116005679227977541575017390812189421244554288476592564289589613269966606963440704939217525674412811841284462060613224984972498589479481007030496121610619236954751789107816457546828132735725987429466107996089707282176756904199483840787266617676696363083225430485869603202776357293400258272546593178132700493551088615258500659269976760230297376683282184897134817947261510512163933799586838571734690081559931351646841356550941622867383687114500063275980329608249056793467783427912576198228592962138202814597435416158620149162127313085568177035396260836335400913191113607724346716203873537201913710686133864694199370340358766197808948158466046023212525437230138766009240012713452310768563807254969575757529712046186468873242034996645089813471525809279646495072188650188421242672024930242545648179030062707811774410469459731954711702693681148794783116078307700523765449792270975770078506897877668631971868942915554380912966995002956821872573970274742950163706888359523970214845483068702106293035180214038454981249855941381915282207646587231872025602328257785507630429404709917224678313880809557198621949143047124784743270911120524827851930388270041172444200670400780931854455204634269859458788389490267922995456524370573582963329996840816084774230949277906330289923940829459216162919058032479772954771558801011879615666299073119732165879000039447317336565410818835910122580588108104780915819501889442926213494399881328438088457713979859684779574798091007132584265391709200097324972005188882735639523724825928087148588736546876031103238379367442727945291656102662449248566716142757973097587838696324505823059008477076640829612877489804168231736015505550148462715797114353986758321243758236812655350160035382496975488177365730869242456849699366382497057349112847841109876245523643226311243459251693072074407423375872903905547201005487320577055215540205372641207260544857334503348101595834387262880866641214937243659720743440932470741024894225534216620953145390468218426259611953339734585999788237187444251992471135627509206403534696233093724747388057993770900493743107437870370552514558533993237235274728679480691773106851023855542134280920311502519349160976841440056327949217620257579462845950050629914535966457412181347419229860462858984340260408097369702105798897623368063579991543734849724129087637992652792507770950298456302526617310252778420092615153406024623047055510553124451507865018800977649992434276773803632883177821528661945270981477528835297822598583825274895007458755454665243536253826008152834545817678689626806319099606429891989248261471601007548890930141079513192160395954795807301312100727504651102538641407467731198365994121063264623111545971450100104538640513853714562515444612982783056733934308427152229839918397699754581894965498821249271201861446128106524571506794125472368989743547602733663802799242561997488501634061483419449821813957199148596597415101625692650982336289092370452396307854450600397273942952523837932722164288076290984538084039956307368108214056072932820444715545320587114094742775954552561186171310396106290654619097671434572974041029510586556758051208105525945246553280629953019860830645412054176159227301950799047414870458933965181100376355768940154669086195578344917313156958404611345684495777981718180725818124374207991786845005180812565601897257389812543168279483692456359772697709673689120142691129276238912912587301447714739142546530478281373309723499993040597581801813746189513057704291711918419533047253705846791934151670497095968556521669546323666394918564296915456560200390432608578842837674054506892888852214099529481091920790751924145360177152132741456765184949269476622885269827122852943368773643954869062239347368932544822332591456145856858405943464156028305403895515403842135389882857503043625940094886043802761208689756476604163574841037067624316599368685452598107837880674830914503134408520292269217243218041211213196543558080578623693365852703559066303506437888461603974780953934477758572365705590388179491991002900241668565054045058255714679096743949214934126419737369639190753008646232057696026606087324875179915482981403169162213838752290222985492431515968725848185671840672579593188556558071261821606236530099928046871402973154131423691568385464330322802259190316212344641002992429210720750892649982008069335470331308888264070685947233348814893394696245082864602738411296119894687032087346889826053444853564101434601562969984221561022134054501474278905326724709682052454747186184341460569125176689709012902265174436902510769561777933144215380980311577549996244592813750958520580346824555550109558234339127486743782563720314336713160314405223031596054097429417227585465289764334315994367635393219877854930595166485312699409256696759420076179836980515649965090262356200257577142511521820105509243580039465627828471106296391550521541449457312571129812835206453049073986331309422091189592984147471200952780484133019522940846611011802652881169815478586946329294871986448873883578457111759254141204980033665304968879603942762184736037050093372468460634733838871321994466675868137099549161640223826445693234869945951691401019635440766740696649938554208086201381406190570823408015976635762521623897293254324080091570683322032821403657441652733478296533839333180425346106967818729532251971073023430731983701119858494573318097495631885513352379297358581111200367968833507810256566446879912598987543700427769908625944583544031757164085113241400454511673822940413939473697662419946502367662747788194746584404946170731596758827765727293736603752560807758789310077159739547968515080654396614080191266381860680747364825170750706632043737056629272119816261678131652835383459246605759964241932455842205913471302164623433841373006605098828184306697567075591346317037145577995751151238466932775633148244981114112525819075648549876316025648649850578117743466090460322168430748720523071759283856319357236619926359407532296035946702484623573045009919775601610176969256026242785489491906211289735364278556849055662909071506760109445119036412709255590923270573648855054618855880737463504682498679201870484114680582022065829453474151701590944087946925040654376766482252244744745240728349281566382449206909356943565527616978941721769641685764483025678666333725613621142035684560690246209092648137267319580731254915863056929701967437194793085366401110278309557536746515447601965657645978672903963741791889991361341906860780232613018263497270795914845017449216340076343268086726292506409536953224762120027613760830598516626250251675792574054984602999022712499169519954654417941972706394686309119706949502227178040679399206153302704808291927606938344104245692027310676440170323445667934815556320071235624536213232525433013966566050987583028885369799839621646920257752639445119582603167000090447321872364151027791235696154850277430057807667304752724804397748504645844859720303257002145315779044613723335442189369129779480229162950910236434283690725764502158338807036397444860512705798345502048026612391910903611709730377613897912731887407904254142061883918031361917032526895863485392442943077836701776867462755146176427641252900771001688556857986061567405511448939170499552644863539194139580217891551990320074499399092891347537894335378087487741211481902762525230001460845452425911359239723335397713639893921191207555620002068192431261777992569604888204590727131145516225463851246061856070532023326469341726907351636102910500224103940214671438636757830247058699416029274042037294538947091241643179899132657117627362116147002440969685862467840408844238025737134773194257304139022502467877408782715279170047191940966420174992104811719610733552221601710667453751810300883662923857590340743242516943309246636226745254145912792688986401727495016856550840269313176015213296986466173991160314096809080319460221110236937899978311556510574429661985612895655635531203638785205216958896426857343869145068718314384574751961391050712923092196114812682353284481765208729457730945140203993020524797247236602881507837781719255825250877830567101610632462813241017067581923843923141694030759918010651835451189472565247042549468635230115395485046996738584943304560079750483166884229680280339697995117800814437365478548171615550335379184102821935657137819399204340244946569870257615506425502867550645573547818223472347770433247570761159434935029071508675624051140423661013434283887437281632481539729708608388039325314863535617082228848490177073561585804273401395610938869084615283173543371771077086014218205276486012669556735102486467603580670633274426623573987552134958114828810807634241390132949210059855605074518803756946413840539621285784819443646145725344735998209466182412910815089694372582584435629528522579108999151540490757342673835935200987050250740847031343324605818462933172909592196174303808337853323492702004494141911086367094761533503495355598923894238119721442309259276678232659706052462904373728482139601441974771567329256639171068297035877985941616909491014735566831377228650077938383675501064788767492328407597217550950779036646563584035363491794598087508353403050385342819374179370634927317869826170688582158693709713889300485969255644269121149240057976910135642550006241339080741877226752219155254984400193288917067189179468223938602406091320151327613433136160583564904652307485195693331077702140159749164280654661996336000387356423354100786792009758613726668903447293862728055304682315342016956023619301275219463005336509188614782714314238098280245927875171572570833766072892259894398258872852267023484193031198164267922010230508826486364219727477144226706753675128382132501453660995050861623703646788475640930983729269509464719301081286438403600978519416165251057862644937028297398207326046253369099852843410866233333633536349984824904576926284932498032897277914566173286282940239730135781543288792304692207095533983946298621260664823778577336915171816442798612815313429620787841510758832744687505820451900664862434590653069918791003331114475177151571221866868749127548051435027391135529206627359044199372628225205897741124927023502957030453860835698107160741434825480118765058568692785828463170376395347256847923550184799069381145172093649042121672414232974396900473776914122398437650427431244383757765689886581361307821576669320076182428495080040510291681804886744621266234314384569075410391100959140207794281809273891646142162478671432674409217070881092402646763152338916439635017458276033315567502993819877367890414575001726559122195194340600300128996671728973012243979964946729837029774730868602265639101499319252544726139097854673857232249313918335987718911665717776230611640907860358604417019674009931308541242789726470806358411844851726172081281067826049827122149841322332351536969480803933261593044066855999816139548890166176295358363584368658472063071684401427644546724873747737382852506609863710071820096915494170831827018045180652147202244262474600197238444354058794809892047692506399999582509146231147988631700010157572050970555732185147373036136318731641405394539715388718438519219605627330540041183069381262318458896698496821702029712447833361727936126794363360552207059133983071138816810103648986340033695076424446598272552022390354005181116599389552224040762967070976408645435143568428276336917056266412784048156062489009979238793104351858954752191697356703450698675909008485742312630232190622256020312834554724303736847474332891067800210140059681087579393178951097607940434030930047561080680235579574655725076556016278111736486581650844929339000427003007424784059011733091573213295238034988728587326933631187520676077939813076676712501383852947554019219063315457645508372855882154897741379859839368189321898321910307003519467943759773807680028433574144691282640026899150497316942873759861902002250695605139711765968660692468853262144840245619776418037286287351150821246518341453175359513113265645637867947580865295156816756359928495582512011872748282084094564127468062511108075186763436856716458317340236414266545104310963243009021513295782245358264984153853385627187798782946118477810199883677413193321705942721023437133275952846546925483159203330944028269293201988306008407380330831902642254824103746750085219981481265707581486560862048126999455673885213713436072512584837389218675049055066536973780626345341719080522390984575305239952897910634272619695141234550965458541777500952375036681519011837543721822944899427653058770271092805398128515333172162218783758176800883116559580543510453707193936497057966231585019374929253227699169965035819232483281241581079891813207835205992212196868610218757772712751514063817267934785612858313657728820217979901731795622247558671940579695099663148381247318860311761227565116789677869833931654312307316477905338280324163371337643817682398172162795077699122226165386794164231303524919578422823575471821963669845825588522233904000812007526149506417763267499057717629069909129923048072272414369298375772883096159311550470343605983668072633656111904775493000389991831416473364065249855184074907366806525674758695397254848298487165565072741425969043788978981529600124587730843571333519152748725683153468095422061982580278991115099948506233352846504729421416090568243599556388102150979330779774187389480451946081385822997250526727731235893462371789980811666406019866368654677007852337594981551337601957987135238545938060628586438768449352060240552174463150013715667452608410454953779870656366143225548723811585986345833650852405680548510026687252859429841670141536233898021794244634908080916527527507085695644842672139468803683447664168437365488550188419966807541708975999042972159395333932663585889628613342647521054194992805115816601682219624215152750384110953594282978488656766497975862593266283861933618690926557221441812733417469433406196223203485898863053927420446820161680212658831584113683838523697792853493697064704207972699354345208129979845116541178733687481432965678192032189122541838854243903504008097502411638883773809557368583406511525492237733937736244267912646419058044191649168503353445045512697698859651786586145103802277214517849621612557419906945213605727923271777789097531031893200298142957534065210126062196280590514277169454812643150783467452518278596564199722828800721272120243720098319785751942768617561068962330433696975159404965931136294989769704254772594127640832926188608271790799316659108172076270247049248043922173028966640398490278527673301553222311975914471823464667707972364247841706152132396903645813660120387973870559561550389230820253905842596452458835641242444432243528504120700440693014329434127396862299499766001968599160531358586362375437087392069107820990183213130686165174644419476878093057166266065493484049660722584063450741047711528394674360932325122964119615070741470063615562713995460414405615908766256081332655444512708300202709130875800432875774333618071551185527998529577292014971316605572742695460605792180522655663685720401067656590513738083573897566108431860895806315692776107606546182242445325201424264705047213740513991012824096591231927058927552487596930872155237119208804012614367714964096638988117841387239971085529217184674223456372615467069433446755319485994692753600006598987491999893693915253564013302671338886323226871758346667793092167371691920048684372008465752302029739714187813118595031523380717893592036246280562329728751868509347306625503663460069055676017088266045009709443975174288947803044140416905065199956140957721254004206660529901875578185999818344542691656066277310796051645779740437623789571551439604645695532216352213439792107203943883747908815388549622799813673323927905739936470596843520924497880038442167428027896357074101869622757834227471353744554703111432816663317949317561883475741821871808124197095984636693867012132240719225052774392130837190311989978133463799727104920160936273933535093772675774587607258850664662227180119179895910806131852451844310755203822645496290172967559503170659929545075595482706899889784128267622943464219795377920360148824455011335623427003182594962950460210486872423329835480199984862516393056883437765082523457421089896744691413482755772205799482616898430008073713426963987362630800925011757201395937248788332901161234962889770469086563969915802326455732203090039864049493088449243490553988400788858153351048895084804449872615350763723275449703765995841808027080106751083154016845136248340136896254917924651487703330546902046078942221452720133392973038128707495756789433981427371114181307005028346454612000341233356291131890746308016631638324837141372371839734538434638973955814843718477345306580895605978735559034854207954584603610864352667260413520018540916652985273367094686955146781036122479011027392687516231569434162699703998614108966303617617602167783973636091087942276511181381117230813314863052762913701363094509139563176250669180231997788523875566423751998619269335675835074088392236069704662759867736992126022760959940767889397069399831981282558540303334820781025577451454897842687412946388334053776252429619089208736789437393751276925437488860341668744019660919110684719196111056041965503690897686647274814102870907730655241486520846066041700548742333065403981898479393516338026266606739966030343843929802807445057428439982628268916502781353846811294824833312352902250933030759301935182821804404116481623941467280411814277373847006248782743558848106820662979623717738433489502520797752421843065038683792922114866483804275398024934393274014858309887228269377729109082091835548075477795634123760883105362027682877519315356212718364511408344620515343347946487434684126414125689509764026938743574961332607452260307230332169791754311016324416924251224843298462148763147149009042865946932491651033903421090460868433485397286352801881020746425949792052089391914037884422821203026045161149988556825591018312389364241019739072851799165381555745757749517223458598195940615772857975826750643371478381759135160285219312048644703719237063349535565338621532370677563858778266701297638363755219371459899717849094366134334579342117102024999981182617932383716329043997687421948398535760797851552738932933983431734111517324107629819953696517439106824388935608735197259237187817759368436120137005927129471817419850582830596449716764785319385814161786436949673443842341372369294855416959819040964849048148290267533566638048124749965081255498118804419622309571726901430858198848691702514621732755881195725952537906224427182163576933962123838169980318840124226916264657102014926483146989277196334792041475349647180052795878170125482321775983788055131801722589908677913285179134614465691100777522942158260286602038086008807405512749858518064523259677704479853652528113408186755204294098648324367067432339501656351707447893912471065087941113814198486246349393592120266944912403593520820489867195510641560359350236869046460160464241726477245146436971026263981782157043543212228293825765396922840523100513753190867846223737493881265403192530321519418768381730638098730743672943134652488881786042574237654285786327896230907856469463858547338882128473175454932031382660052639496012736338372051802937182824319646383692852605774800574271988660197817381458216700110785994433777361886609859690322519945619773790181960632900543025232449614723047435510528183183207448572779594085236571257926330198973380515431846140067287459900651771242882555485876398742015357536572234872154420102375065141837195507264311776747588753792792481002481658039707712383496920857814106571975211602552567176014812543990649554501863869044933279190755327235512368724223745919218739549845226657516024776077054742376926697430554418413107051341891571424478721764161212693184568520812145333956789459286216494879141699834670552750466105929247927887412129971040637463764306896166954386823232533833004831707035667446211811972818976515797927345904780973390552246224079871122111825879908527482698739970334598274250505926920696683638318551794291848265152171071359858870947533159564220044984194085826513830591484304969236822607775006911073530665776912723841187563751241923451916552272864183379641902561038851626141414131632271427366912696791840081893491173966238513043648074472987285169752328145967517875863630780512920289214784248440977795906625633104449124232474427721352862647108750650520917901713202948165416551980269286401193776320269237912276249133744913401874170417262482888058658652393881025216295404267718945346086996078015867902153998772614843429959635911986504250000642607082406807967242161608779002816859307536191035255020297824330918847410881455614505065410348696584640700535335469475027207751556200345378646364568764489450172891450247017752075197635464905447153034185386926790818862156305435187635140365595027403634172278861977815098205556384204330012903088396620550374315369102180922618667623626795499677145096770326014074710625942063295898453871289225347882087416193415805423849850985628093827475751889244764576537070987230683074181177711595809863422681375420791341906292985248568238634148125441567864827004749295304825936162431303535318928372907192689673269604208966196051709189461316368391105281945750574991527590125446552718671378487857131505291527335308774317886945995685037023654156944876406472164142715410462761768522892081993235038674099617621341788211583502023973686569439518646956556252145218665195729680002148353251975054720230201939371033850699154934129439480886587954540223777734350865378436656824642115570768275905881739472719229083527011450380023168155454258901364169293568837237119429863732529259178722916434006913969945375746186519475137875757166090399266200621767498822576569700919135990195298337166292770573652523117888289699921141111336124293720636476432674209602040478636095972038470765766455215912452037758491495472969905625860876241293797748445456182260717649771294394560015358672553171185751377488877456601314085493078215185558733201577837399362261033238890826716767436824005360998008775972313800990839855148152285192641004726056745333574127388253760329550373117968805432796647001674216965236169865553115828491061509001154785107092920987449406788171152088132268207768957752207541117519996839265343401948093887997361549472406034271338438724140585952790400118103952871205769421446380917940323970470229547536395662218469575392640708468014883904000951051349470581571546268523979803475761067923836343025955704435794154030097659592507261495497230272215226611584220621812963381063590077568793671662975705626680559957401747496846809164461900257053360893511027930687602981958547118970367485888771529843999809571107746052066590240143150798501106134300788469623304352585972261586986723149973322338645454238383396050400428701038108667864115095662897446684557274267720053178856083749669630874565605282764392993228745887675915151804178825434747892797770212023314587046296810052460321776124258252206638860685140436972599191091816296161905261581937192975411049984724661431245547105217252334973933344363405152592715562975213327820944463918277999942966844365429879261953908581658517734283966579011416223150953897892503219904526933970242118675698063423939365264704967232109105263480467479949431473687452288905129464881646363598800037152251775742948639436426413445926737977658827212589767084969514327675309287462500654348679928796764490998353639450993717910588928245197723762175660632263636019692441199500895382357496878035397528227214500736798341608617381144648061544537319174270224884464140236952766900833268701776833207693173728031116374984035707543665044883129843420847650861202434126455966144115638035652582458467314518148006736163594079561673654006524914767855543624109179320841161904388641609607601326337553338546532583770424302879354984471696983536848388846328505172099765609720427082354945357096116348071041257352177373589606005902525330683831915931683985749551598974488115279771492615131156686335747304023104297152058366053167413693303994848718861590913836341144802700394670762342749821847334546314664000142364114984402899571921904253629385670804230256589286864469949704362873544746064368967594549332506961607735305113259367642330590434503552417447804089146437427215158316183593151934735726515166106293404699901435629304180893650567229986178178963579019197302565769517808513464292552543203024936653927759572581690444785543332810161872546713210719130415415289575515602895888072271333004665813981030682548023780015874337569571488624938450087546741428069251869913623955826837140373850051311635372586474184520233382311089711879891491128623874873520399972029950274989772826223992559992122957863542151880380413467839881310011069983292059132559994405957545714402689008832163402332204834137485488019860724539953346850241679900508655068027060307008349928625808072982476614408366940660444671576433600236920097917070944169187781766602098111823344547134940419642522079127205081441707568978130176285560420281446751233591363058559901089430659884043948356500795894305256382011564121198749791262729316343728236353870826222756076693176103888196213989161684883081235985254033051547761368945707088165781268484878261983444072645287927901483529029264429852682255766366600651508181597307126387222215125466215879958291054891239118962546238485766539635854122792788752436320377107204231504853029318254809822169928409774830603973044625884917506781609449201510949360049364177114453270299969451347410179505968796315338042773874253627327208098413859940384309938236039121377930847805630176591796786033228431185483732795273038731756230140835289531564303199474073295185543295329528257323183463162410139099906304185049549023021341141505069650516999429471098946893471888359900002416907854331573366236794918585637606216869730704901378670514614521664797887969159088764147676276750050827204061844250839108671300684280345002882338549857968762183824020207227591874588103633200807197039210145602107148277543098857383317204652604688699873417536612415852613190916993724439876153893949891698587125351890847001866433177340966103889778527967184776821523081988145186911655020163437088812933451596574926148271422047687195949804801748780618016460354465531010684125567827664432668157394444910036665264324401643258405909863840212405109320792141034659421212475797674247830828990192914469562699405636144185548448513160615107103715180916239960854271136516869759261208561931056679114097668406146465244613544053089114976759422760099951137046412093899092862971510217404991189045282112221220449465119256652238551443682716401062557923802002336463113676023523215779967486857540950245456343737850515258654756247285904984877566241085785209919535409110696691980086043354651730647204887943690542578482829208918345851608959171313671407660486996729687056108488981118115477588795165045259280194300713884053178896956039049592814424161400976334414237111770064377568935427762354779837494406972696523193125467804883837198430114018284546436287668582588669273273304651716004714357612318735508720415980358771878881829104927837995121746229562659387862612683236705081484026877739076811852927257534475843123447651015172218455911213071200519829185529634194002971057570113892235448843650029746166467632806389055209032529614906924808411722774870068833601510794390537631972931674420171312714372787858734770180975656580156157976866998856804448975822931936391154719235306170774889162006837126850812096810069207330452935796615798252183654380245633122862542094082453533465355573822150525969533193540166601743841232623702816729499112514102885888114648836109077193625902244154992975230738686359596684777440598700875784857981681927743891897386491352423171416995095546039662287476908759328107572796279970586116228969651137316055498124467741912967751427423766468076856096615563920962983666517878423917026980975601816058984629092948524543286875726568231162323093649645471770677795095401195726687324898876152374471223400977574071316589278607298175871487619484962033230540185956785089888308635754087531544939119555061467844465974070759782478542902953642184403588256278758478975670103699480984453615290847121288478801582947896827076069504071665311003835989687444601044600566655935689338083474678583433875758251879857193601663828445890246656075776417311764517046247308493639385955621997899545654286373404739890501718107000855508066858664171156903283954947134717048903992259404406479842984131935796816047972642868095973108689244639668254632111253468339345681473516913247163108429633726647879689196888180726312332178186802618950528153537014985764433257900348972159855868017727209785619427914137842032946935770485202574614496198805092444127375872976783814449415636064170927468938272487266478236459519847785362395095129449087707542126685730023059141280114721032501074764453763503528964576302098170426432347152085822467487231584901268218313592052572878388479772629432397292577828814646101983692844234013458097811987261574687560690637431240003300563403602377395238426380072238820022702808523489765628748917489957379867091068570774891092239297488960390222845109825547887487586048719743730338593350666857779116444617176400227555682522419408333224181887379579201483378703023452715858911539083480438114979995890569199404891351504678558248134791099660951344365385288031936939428771745089860105126398020694998433253900244686256138186950707319942572963281781894968424658146289024644590744628215585782010866340718180922359159010600927772926640136486636035510942071489778110446464633370624995701777182402105656496070333357841729464293368553885325767550295470627128996456494465629866303224808047583351847133127934883045663871977679133934865518122389386762443308230672478032646659120397321925482104589496653207120696724972645634896285272178186348622580578995863229673475895767083160568139571845035253942746294825459683044306119590424866833251917608521597599924012311785095710264576341012498957256924962609643691743566070929249543672452992327828292421302317215870603719436713059617262624407107598276193926175448636116130998415855120075100354857014199392262255649450666961920997756360357923091535401415451066669423380412871543749030158100847063284419649698224458865941605941911765863673759325221599327147806386603312311639428331709630008154508507751074983429293436684592765862607010598687330233302303955989980245156997117448646170252483402619390197782670516792151130725297817012887949293458710073783848765833494384572598408850309499037976435716330041642137992032423898158145311323582375928341122396263179075444936559407223987285287434468913978124835427379862196894199128196607215869068483608969177857007021127970049491557853940528205056159200233289237288782597679215107994179521289290685363401981151928599362174534106009295767273807732265032610923207872390218002957496780935741876832821224039482191650313643810330885789480717656982986209105466710530337326105816546059372509319709189231537234019205487228152485500032259284213881640753354635133953234461870739625946296356634211359373482999994874247727889136354535672075449969055598654598326378799013189041717805117212856959163949075672515447280803877119067035683249638718224372748717362240816770058160365499606612852548003663478057002771891813148884046002645164490543836047287250972906482664896558215257188750187254760550931157612348295695796830749711654989197746473842055296991159008244412690764611669437498147275912208393778617077247017740903859636980703532706095524628479743944370983457437882025884036171179421012976846919147402519601712126062172879222044448067690091816148696242631280187252977995842023328181601538444457338554814400388535467985039392887154353630205052940227553897148717253813703924466357174393739727527125584082973561678514954218552319230326476774737206384980456193171091573550984377911559155262728227587390675643688429275072805382034532121648869988918797945167013285646356376700393989081087025814768492616087156980286712690455194731490359115100477291537572164388437246096409413221536901130750721159748976561081119803095484034840159625141917555289665098207067831831111445949108942326807974428099255036114369468490954216351514918421852941943482727606015532551056953883846419382242468649213375468258093248748116532871891889630903054623065017131753946820320796918816066395909318689891844069426268462754814191417817282151519045940499841929408936386600399592500086014929654833403962015943956648206665260018089858579235843247832633240425538777123790509864483827181113490627367446811137168178621115624524690424656568546293717086413205547327043184488667695579212537424324018751631511193363793050239367111141226728561588432433992172248816863096366404570453764619455816154496571831745082502506906658387214806740432324730976858323929195566280117920158402568091989741399926544119432182687937444195060378868218024575998648774055284957190629002553199962714683837527712124762098659261095101251116082429236760050517386590450364466341591837948989679469330339419708907108734879523323158044726881621985773739230780764496254220706901814046173365037562247427941501964006941982201004767598123609038364035360988894669157085565013775474534939091821087570160580606373762936362110726896402577908314680807414197512948124290093938938697230087653558768775812933188705458863362098891105868847770515716438588773724852647397469136800546214137421052945044518083775315171502965591607098445095236340309372627239027859609422408848591620139658673526801741430096927502307066630542185641125629808155478061611120722573571441858376220419225313381956626078861118158277870334254299992214496321836939010731719906563850874526091844770563427394246738799748319920767121284568801020004010967867437301787123281511142241423543368941676313483225578435271207445643641181935947718601604168427311278889741823945121888089897163751812100198590656247462356044562298875740613673980800225193715626463519455585112559463597113227411747704870203610461502871442169284709704846647105355910058291148302397757862480501395701695837155966894307260351044867439436964717684542884440409007396389672052233730674026769913797006947021866035064960711735225993415195018692112907874935560146088207949471229857055354023033454816070070562804714242190641685243652521393984220098086376479807697460643830069070563706098890732525395706634166129808961474086102913539865469165441761715062400906932813652589927758747850625805621077049626283038768100579288147923644720796353386368769459793302487395398488031177830684265304224875148437283118760625573815750275049608066990803791145186164252628692110534132802879956035591747146965815143044704574715225506284921665160378685216967542733253593504397168273858507528422912463904075861107184616377915406605621114021924143721746789955880972542984744337505981190762890289352138960059803987451589105542049821171124219227207747272535261226684660809761576191026236943274771176137833885672351668948813145650767046396196491880328569225927583929166027181020906710174805764181493955604824203691046595871147869871489894788709969957523481730239314257508910230067695500753412813014438471099565493545615024285591959166640641749533637722853874918169003958226062266123922888706226509029120205544436707742679824130985850973606172657560687485307068815357639026580936516083834366118167846394836095932593287613465632332381017514393236137468769366058828150107151945168277097209998011616873113541396749477402893992443710457224459228545211944216294303409063045635735587088806682367965032249050986392630963075973247699530617730607772947603076898491612060029302496088362314664976931818078948654706250559634280638449209814855169101154691142585016820684478910412754418522548503960564791334716893472794821261765608575382658051648907704276620887546969086748417354054374037858620021884837990987947395126054059970077682519040244521848803437810025515942363928425955798516805621792226163620344712810635597669153355493346152537742563415862729985748650921803477659073487807531503610418995705311102907904555455774620213932027085221000767361615527034932796121197741667730834250353025352231676788609171953859254574694554391873789266546161106066589902371796348057763080903448702455090136827860807145671883261978989646618608088804673935969907265700372361915232426454176298093202176080389238741459810423758791723323484286951580091096404673465219955830240847168882831548517894718689579071714138255869345035620703781507704501357202825269639530577483910518266684190265210159146200737232800827144627082881859388579490705606839307825986753396420648878786662475192041059274756281932442185088638646894943636000028338449487526824069736071346393467962604948706983169526346902263761052716197674429814923187280775584585312174001084010351290771069756140517346894228973994058218787850572767270257601565092351480266335236131624396442440734182901910159504822393156075493446400154941342542126648460634452488282092802977627729681005162409281734659006701175988889782888828605414616688019744867707594246937517341561342024887809638220602966296499394162289308576620521372064305219872118594556807591192389942960443271179476283413913516344367094048361092813472029713792001183180156759128775742575788785867820655346200613523010252479782095085246743744673305074719876624776457321213524172856640002733737584338020276617014684939671573729917046612125135416944820578061993012625101830920248298806119874949188326896229648154681961614489039899345234199447248077380599560671566596300508572964969536079577249577703333126771751895684466923582754733638431669152583162697484316931702907279829828293874414670463372823395304052033142026963488848916320799223790678246773979629422187992896280268607506021418613403651505968725771757378294760303844253707987671797347328323814867136190880194580150706691743477236740364560639140454435327114590660121376051308796153677903162848218534286215803379690276956134043951161574705844374453320392408901378853297470652411385884590984123299886299954764978362875221576416147903553388097016501765956530953094167370783715898798506979465482869513355509560938018104261047105248656765490390607322464771859737405471699874608098179914506988205353084009012343548540281292200598604446762879910743436974614148334283019604373019767248493267307372636795399784699051065074683769813279047370439463978764269029192732733637106010205086693316962710494327724743688592715636003535505821935088031511900595993652889286478015594251849981335232297538967452013049112578491552679528393426609511416291448199844917779908151121946938470707483742277318925523775769356926391352193098926162714078492573744142939826477186482037579380842284130685014611593202476583483890964659746910634099802764276289903123568796067512911604251043506204073988346581476453912579209142784776979246854500184413699980614709587440317664213872904726897042343075484378966000504104110553833269906284804694817377492798561965738653636352412727559186970156207770805568094287107327292525603856147831202163994036527901191420933138230793246067930037815328056315426401324566026322108376100028604831791905468165516865843601870899815304052678201836934510696155235304382338890136619229408375848378245414215153238404647968229555767273872583699993420906960762650461360599873655525761950197397459401332752045561014668099596403960448910382870568524072787144209125893517735232166311001238458383144068771698432487969217345877615657812738062572681473505922439074781610978812842460800013685986666113631435379480413520557740450576633778601309098069167985597199379633548234665072620894768896800420143834800430926216095356354583539706425862699936325187256185177577523501941222801232931152302845356987536528716218420511367333297275457759598195100333458841688036077045907184934695630155734629556132446709035373551808336678873962650058777327957278720625564388218394632321782874173999060551409395563742163051147322729887016375030299614437400093461150594271124722648489099202959892052825270940888890506417386337920620846834360340801234395489384832510972715321812516561606209744140841961344453617145861457876001562964567084563101893639571137147011776967312631276248224416856006998364790743600575891397605944962351740841008855441862151691973450044048012146823258144803835314437279602681341594366755561542316075275184867529379241618548318625274417827757887971363749677700045661304716218975706206974935651743212434801757708050535442387999760157509799126885430734335617735841622783857059403168621154167518563418243556186733423329619387591117617059676097169920408001014196060246784727256364188945624613756377870711171157545649815622161590549181445909763987620087429172011919552093649187169404544036468886111995992241616862734578100041387694934027975975185738494372914861106604616317208971576543596239929431925150436086133919846864385455243154407337387388590023474325886689829296696947986766590425854914080086200043633034281729199970003965227895155003900773052844801649127129604020615302064466962496304682452137525087505818626254860381954638082476204450335206725399947256340709275580280161793122427021506362234982011938286875109775508491517664215241563754686068700875750181934478190998773586338840334185006550215869259689908464840817946972045618229862400122045163993819129893723405059776568095869384582426208309412315352578775224600324700423942346384798742307928142250116920627596947493005787182406803232052178402775470676023110173217675576506756042600692858205374887075746415853219037000163483218866322466422845970735608377980201456630070843224532891058702543440778607767674377415918577467235902233966727581614111978671107858483242680426044412532345535611159387407210960112766668612552403751904597899950157748053403940536895692820655558261645766676302931080167326339444845222065927307695467727681014763220845387842851455261603430373328230799286438006769672726524832054550240056374525577174206350234848060891441243344034296881628391183342038256587870444902423589781930040560028084331222932972107970678463195532496920646741192571650831968361620807913269621702199073235179183953507516916663842625861437774560445535263324893706236582251639786170748845947197397617604552452254863116307024220527624476398255368375180121881786195163560683639059470423704618680863717396184143115418659239416053276819354022538380258869283332068619781311434100992812421501809745003546083389976899422545255730946408386403544486230084182852470549123475737291062548226976347500488952119547630552643454519690261450741984859038032434357236267730438039884794058106778006991694100830749277002164105288839504905756446569520166479306562476099563939605081027947113181631543322844117904078280877305271556226528535513926837605781151277456535289460017199080703234084216162947880764808072767198296231969789776996063027757723752680100842267696966883368337849469106533171742715364102748001617990630286457925953802150068282135909850963072699666285502700574040295748267502865925751971492784667418817366775693620596708350245209429554198141646374096220373930905865376174349437428938492346759693766669172100300554054256841336041262624309525485438360755449887426837010986008836518214040696133890048640985178014162643606115763951912072616301008726361248464952696659638181324277285864018014061013677826858009448895547450949420148604317664004699401706986208339205001742020929476858652397992950201337247431985016077232246604702895081178792694626215430758043253857920956146171837214473788002256490235714746910946934323820027203061250833306824201868051406798515648014242865645761767577257633356272799609460794246917109548635355212627952398326252110013425902112578039590183850004937001072303507492996313279429703280902994600855983896927057731869049662880530005317022760991398832749636418457078395679465692323584987119163869756080437217965415477765873472374662101242686355980645103231783766752321386929265790169334997260342881346570885485006466820718979302511679564673141606530112494143144787231975234416346068634737859464285428551749735099044404165147387400169532564223403741356266230669150549039844121927828259465589181573523429147726047990176730018419376118984501277268843802682625716719420295284095979053538309453260355803032318455186665925918873289918653230086110372295281598585762678934929567144868295223280214107095914748819359115272218864977337748088813314774875606696864144532484751912203782740327498120147097020656296559479342856215550389688627949260699358008123890376233176878613849559664710995504269424905766002589893930084643070624962194308262062595680219735781467067676826822000325741230637716753495190602661005294385231838007892375853527923167687843196880694251393426982705262648695393144679711393795068094817597395872496487398244724732524616010775474730075340675412646022878530151692224832561507887730600959526905386997105797236082536826874980660212107091268229911064895632120451308713907229856152660046710399498429981242549967657253008832338014336328202321999174442785113941892405491873835155650668478521331589907293143141370275282804325520582585765485398515681235166013922762705180683828828145898377765995300547701326969530928500341057887259293760087015609034060877303205595324296310472657175735832389166417075525999868239103507145864059804554085351315638195611916981104839845439247561768498700520339999471488450205075847173792690833737894894290685828266564122079568966294684037986454723420029447221741151553995402506076232867337629745837036140624645731045941625946898581103030812877296028724118320504158992573433766210792360613455871825331944074363732565970828038113091712357334521592342952594814133921341522583981862864235368425861114850939549563441944084044879968683464967882901202603866098644262786557760253965178589818466492383861199932214954873422648460376391491939233381627217484230070899476759587053370860087234154384748252320147028462440149556904123653205258444740872129151914856987384245019969370811019664590752841082846330005306049374122803614046825956682563760122415058173998982580731262779644175946336281190601565902715239987384211816130278235039168298409608233748629377595758523981565505907347994149354063382285767310249996567395511030905903029134079434157388983437610689806891701977845602835290448867762499084211468742670216510499611448702740025014776017337221422766319717617287958919637320064351272640014505307870159765749934788250411611928732167898047098856837649258717536421779299323835506052174744781663479521455608524283549724161946317725332848150090503029081312783075949755147887488800986211846310503931964247083789756609278147626611993478894830562074070331136311756970290651672870432897786423306936491635696618512567175463758150284408151293541878571657619181731886650644471262920673314679784570821801790634983583266271933976087481547971814463161547098968621332156541846920397062211633465392741907997331163706889486003408004701346414619509040191596894173386031635400181047947024706113248378049073170446389175183179684455694189944240705474307171386842019642078512992551232633765021381008434977236142391047091804155445481764418824927999586951583277902157577615260319311573411734344983988314234382418414448604195025461369444026101867680401933576045351623997011071552723837171480533292404166495059312175729570629046461608232676904704077979932515628262032414364928593834597851899648611300245953942903682851877971600847355763002465902560143227046569248517447347461446985803126134227827265010442531540886648486435787427562479542498489343150277706274530260293756011096612850997858580481697533086733926389458919155914084178098076113167037593760995210799078004461835799128456134851417269621251352037543418623784226333862767903074479830953853336422235464931674214069989020249310830257812161114571143005864561009674586791118576491357950667232963081312721460165739885619004589439956196331275504472567058849978581220312903359233568057746663947442621861380019936362660463142949930487963993854044552805609021908179942999612049836801550781931242568002566736840967259455769423748024168724239245352199624287879292127871987585128102183963303253692560989088912045131992683301258827694763244426222424636900237437979929745987971539110854665789457354390454817555059605242196735081625488079346017884933933065889033250670679876368333762860253259698550807801713765243084281189374959163746692809042568413842935665769246121417631694143064818354874888508309502183205119960936206106584218864987266017066937384690678978932144806228998897153022254626216944733776164188250861221591133744432256206402574722683466108106670633712286132113386450282759608339884816628005879121663795800179795974940790514976675350340346104496882073771493389109468537918145199330111800894666214574786907221808052505500281786554472484206792393150556329828205651739969764481673218551236229665769407367565903996968666036378682971846722024487235453020556607690867472885397004247515393889588466401047950629984918515644896165531713306010445845194102626138243361735122174413062999190042052956959924572911516229967538072293157023796047495842649451657540337865589470090982286951618911574512211529977833783385643344812811343514783321225065349467327224424547936889097391297799832713112358156048615641106996377971376672391305279495631931135977596295284615806622051107432018757676040597932644182415147301314379130239143861113019955886127760141241802983485590339172141878108109520081924099132562766069212513505738005104278149157322245764073060479297410468166583086270506833878195331168431031603904589279068946447475672176580876149655225755385876998607037854864142604352431443222069953643904965990123201567565664949950011004597260300014210232982538702258837082196568398725511647372463133279710542739630067541090053178508146044290118638593547893539421125385581083862505281863874355448436142160431376800612535053134203330957894126781517081652702064372862109202380518921611700372916630266301366846923010567122353983191739407890786845032111974767838778749788490138802381556409611305451756451363972750910615627824703722215173070735518242706269149993969330731263613209170979249991240402239695051493520099488818704918067597637135937480784914980817769470514645847257332820126530932634194070857411822934799799748232076629870319791763814552460573341279831885578635640732200949180148032829311837088750939673519766827627637811925475595220760298072561991695349724614406155251336645562233036900485927200595642699394094548698926977218983685193153797099474640838223743240022001019110472415526813418658704496595436006566426652734902570125000280531518938500490192761632032115157204937942597378638742904780587089677491014064101861495345489181202564903304091234483511765699451740478970580680739288102197075387474034691839857839672743014819874326444593736684021496926275101091396124236551932701095420680939162825529783426962346392663504778328990558418072923288831644909398790110051220901030579777464250083207654147034704548230611115406112235897616742424247066787342823271485974363590244723440305976099999566481196944436465767431017662761480900967939077103913383174335514663345705427108713606784223542289283425954394042301017118075502422448027898389178951351711796120950634525432064642100002601370348865503535150831079804599836480770785439392833314444068032929034210789204426805114974690193889883994722557044853998097180086760806875823164788335944670116126661627513322747360356127904501754137673909474122815991939921835420211798045442840599649228138670264115996109210537804788828952911279442651599707485293140756570254090107190875901177193543806678629225149686472534683450155169342677938229365161782001558096570496049416892826809421797357146883540159848801115426534593366763730130343492889534813774317584389861574103512446011449762287647657974092408428050775935198420203056382887759800455415469603883760870777035166366964259630725105850729015060104072652123561402465858139887857742853885523166595467069172218778833379000253098785235705063601148056409968999106675617396406213643517792431089424726196351635524204955905267941893575558944075988366068034362249268303322063263361371433914223290708238697803576181110559652440655915119129954935881759764548616843412531164202241006791167980549463807378404417672129909311710180772356144431333471446433739077709505929276521566747422735162819343282759694366432846388124624952280882870415738352737711148132916782531582607835115327598644598339548699894413772863094048317908943978427629111279985891061331026934591772053901426158333441594227952937054921185424014859818523926013193053815421160689908809674876193984603035693319558189464605001095113283722368039813976824211417344029038656284776880301322636398074378103188342592352170376365465180306879180928659767199941962764753427941022260061546808128883249885135639784680856290226118483453603943942200642806983274113030878767637026176424261557051899613423299610927231000828808087149965889420893060571549039897452964712202961305548988922979658235481668959123860824756062251396672086122531768795620708053038219192871807060853814857283765793795639498156812838163723763060276486665812783156312528024072771397208103479097118225771912307697393517699663214860300387232073377114899484228821330014421461986037236057799342000819841800610332338849185802290861163341688445567438802392893794693164340981110143832392866253015347056776037096674544866290361111205780639165837072192103271994382450563813372330148791731414705441651929525032787369511817515199980255672121355337549755103100436470529890956202395903052833124936644571931649939855352321361495324622676946227662079305992428308560705550114869361053185918292675374295098477671719409274723040166421263823801349693992889690438604706445422651232010680608308390544777846287832962986014524737356916608548293132569208320689872345489744117958541738749380263534658740144142495542637627075448541365798249615107691733946307061093483051066317614340349170670237302388869150379995584030688522979634816941113082127283900730781027084741826696586875593762852229344989960971145144632316315022609754115215137390857990397558454530184541437800274051678921376510371653550463338013819314000210934836017827279780471534963831054654408931756778511248923379572704130904364042390696366392059282322840651130600760378883493444801107588325799436780654107879325052004765115343131583984629699153215813466961909953352974601891411727483779790177304938249945413048595746463938345864969565127828642033328605797130140336828851657662636653699832754260426726433490555350641940006334991084300989409294955425432430186512852280036273329429830363418044241069188341331005550492908167587807396075996692358009868033964319527381979930965938620880061788470124629146151257817614889213773636292492313595988320126239214360941349464901217064620617107422292033273316062212575160020371905284046580038378887442836698972639595589784492950710052192645454525188445225765600362658653957508758798639134382047682263425625078816417476991749616709522608779590552634013248178134197857131502954387521960949246076825140961101605555520365014938071363671569576416715058677050331390109576730178065358660986712291889594610655144730350284744967453370659011304527485400749603223245613461217530581554363363878727452344119515679024758246008715750530742426187083572032868548767007182597709093420874963565601619775448372401289232814536322280733275916299305238342386327327312562876245020949390519818228584778715542386270645853232766792567959309371106453167560452987469456552693992315187334140923229281898081439165920415813216114682956538613167769549413680572108939479736834613780047467731594858193281548017103937845114863691490394635212812924420108748483035445457764779469596187671283955849286804332764477620580586234416803327485150767282438151325813606697712459136547451395282159618975714352793225979056254840421567216368104650322675629268539167052103067127135758846269915372103333692113586171681556348607915185407503924117157450049416310496617456143584745969115285880519534365326347261938400401946294328517767507487039621616683503405548936216904968362452752287693691754187516925025868495247953777931023052354358160410087859322071901275365474264822064013590550724060707234563367360857490578164696555927947446622281250252684671003444472276584489889252163280374039167289047844404795432372336813758562086495408756126017306008913281169912616546302277521113771441623113541442667990639356688373855687925515881228312412115859718262358992072334862626902896684567074782812418799381409794256249954051682927329044516275079649352128341542313369361958622192337525091964199589725817529516136231557481594586391824456680897364721077543500848007643658194535677487958186547954784452700719632653707418147138147056329645618660785928877318170091871631606644422602721086558390667252635935077906804260584398172306554255689421657585866167916982335119060528431247590040709078597002640461110796721726674326880906756801402190956031797727442648455173160316132473868148384936115178342665370550041355074049461433665536152458971263775325212646153361527302713714586819493980718542398965831521356380132978172812654508899025832049673134679795601283127244934410964507396697515689519960224951078282872881373164284265081580625485792825658661455537820802784565708667026043524878835359594190959129473222887302352973551835780984927691580888050327766847006793383966773003509981462512519980720904292113609650009018834925875585238051486002874157955289100495064224891434762120151939151108262066064663472161521658003537218665872625681982652536051579149996416209609933072700273558818236580385385476581101552452847766159512348943627108517260406000642408279685927948054574837977463409074595626957374645212712052979389480694492626699481230649686645183665302246429464630083730128381015819175558247238148966207048706187677949383603171413441945715237092859455202281142534490543501901161151884086419273357404613080330743384914083659920702520124467209792347531603875290079648482638761889963593389861842344984795676197393974973734370964296717799891445215763768304598581660300753827177191212304110501993212319819326274338939670623023335353657124459908358160615039104265913321916389561858372205596090523109115980247731813376745064759650117568923669236572520430557574144985778665837690078062742496115921915134408713283400807777861621108414491195346573199808385484714460063029025642056888417647333301093470138554288153041425197262612918893418809863454067820285818417509735279908988392156672290089216861670470810310545379787726452111120979659690256074523518963746344757183707300639237324664337508201251258568616193195895255296472280919561798345432524269283874075590426640979304211395319317248772275178319683799996609464670895280162199346225698239754889153132251248594024916984144629671733786467283673628302383442621002516701663536704237793738418621348292559305910794885799271891045992150086578119472166381310776044278057005766201994147274552077766141140351773400291953255665495602971432780330456266465172327875069581201025676654540773088222621951386368106379918513867655973242795754881474402611413868480856136549720804255832346432231024597552829860813655588959484764781955073266214484968093257534654600469432032770351287737227371838630247488058750504568714459679817553526756573018545287353852409764771550862720403102520165034237337919185782221739444338706066519881065983593168421254574207659460052658662261513291698729336488630199362842074126911475959572946413133904222632074945955472645133954867623541895454648165018096215103372374975803795551052104961494733984563890200918540808651526020497711390920545743038798582338905094364150789206916093123900783994862589742218555651473780904569142293620451770006535838068774916563691903613513403439846034124564545213188871258410374586941250881096032174516217501053915760489995807704715547788112533923367266360816850063237942681119393410303583134214578976820924089173860971831291156799612239399582974074660706257436023078981420066312399881446429997161589291277938108132318660353474403612561530658259977335768835281874691951458143750966440315264187493913221213991088159044453569810800012237890682072935952893188607677829329086230821452591053093954528172948928759474430425013233498258447077620837331756701322604633970736699845433330369572655763441106962783759353868100330689180053638585814813385820680560278065692625420727798447257051323848509863555456966686225995063675810207975033169155868295041929469133057896896028948981647519209119339480192735966590528838932241473705227406193792576627194754796069998259335800548198052707333411623752681274780020481726363296233459918040951843421153802881073416744156198012166285967278924280921600767218182514755660292836540449481462680056662789893224584493450235782104662513503988013940288215418807785475949260924225578237791379726956360494385721643096154686529055240752403029099214890437444768212683417704141960456971850494464721156012513254099016807637797226335715647466277184983299494095294738943935672882895860400660034751516192839574024466335922913506303292210414541564195351136172704565694567154257528014319722792204351958692164133431584501620357276486015549084153266374607167362113843674738179581390879499785505620506292928648543834384237979905469224351954871428109755412566462640612399491011840427236534214248294119164659013408611314056646477992408451235749510818008403142042736773727175544205570486506563679653536402898567563451016667744052282043502509149874233871550151623796477206556093188206125193801021917527885478090469760818427069031491593037476736644645292776662306218513226493905811608279874121379929652554350401491014137069471533775976366953093958009131634413555100740373022995457581040999820693516233090480261291279554741113306277775357327063584619688682671004259577127421956540025150603638591931618551466334871838386752625117553123435028325154581103136363095735541449476057131111480150682840962015205029019362693439200908513165833680083788957645279422854769770285670140221497794022431291423320308046541735545554055137106637694098188532664879385573146953012704865968475851522217139427930543181783810274144535174628756101411396562240287241649757399592230774557009868872703285151464470538765197528138769560405218704480210220965184792929679318172405965705529013526786020132214689783890417398749882604234088781611679010338982941693432031697872371056182492393256292248447770989457702172279372209850413281628946093594759430730754397841672855848361012764501060722141409339257999955313180471899772317596873724386837764345179608479528008286080586409355160824624808426007279056133542904901871758117581750239447833478178376274265125441209248805257787864062684159275439519525353834441826283792540431624984220482826772382091346030356086519204151417789469977680377748327058395909449869621159636023507627798133798652714178519711528320781193667961397295291181413493046479693268354405100832642246280923961022182223441658300683108171774832090122683577585879849814806082572247875731457746119659006159588991960745404190818097120235647854073991386545043859653217819381776254839076827209938472714100771966735404537659373761423353212881511854994375311540969391298081064387214893428410783306052694464779312076169625429873405259657703287667953237976422158430980770342013965176861868604072057131289041481464496940651538234521441460759305372851247518056007082669029835237080528861743474424724882346957181667176753389531278874686448657433276448414725444987390389247454177955558698120214774031061415825592211565716555102371484179552389290147619912523457918236473029220814670392036214501400735108655615190184297443647437656667651429132120830107956445417404180572937027279051548633681088038138697691430180413608205435636971982396604163442253028175560512802132848438081537649977949534215998211713941495630115488654412323169149519428464373597951454755655511529158496592454693923480951852498980475916304691106646303778791763935583311698865767124886426440455839018154795400530909362410626180270128061690091657836545359063479176133266212730590377027266472888617426007988869564118076833839398131208939289110840394841509799427615643520891179989320043180420553372201857007848817014582149118364635412441581153618424605046750241479488532087540717348688306866759861443762240932063295348833356542443760038014142238079022009706000078567487373714568423962409810896863391158008145312176987294553069792916600456822317196523019189957221568284109732898995785131901075533709853009709239635417569870379351082035466683455669180957032292949739601871166053164952148653906312333206188784841253344116145550675870845093091536074319518389338851862707300338242177642018074823210596940587076542087162888811878800900027512163052373659886742086492208962209407101277330668512255819032658923981073658875771279384840475480145954526029391489533515765874711949308421300002397359178751934362915269084056696143872732619134352633500017229608255115997005985299340391221002673183130556188424422117022622951735844683182831040022897545629752577272449489598559984987914629869078619092140260595772158583387885301591588150145154904362652351366732571270551829653178111089603937620360426327179142655283723248198677083111436354272418335926145189935507917587944840265892740275949227932947484388529273750371704295290205795085148024492191667321504171363161396052985970204684287790117910402723989030176597719782352155490602153743272366353616233678189589072231658883435524175679236343933700379207102967946132877598292085724533052594943180324516708237743836864256636267591151848446306676743634405896759597538520568920408024270267646889286278125553876677127443040265363691400845603852864406798263325835020018709453107711927096857026263357692455189874941605242545267462979073548047489547780694408766866159210789195188838198913222011622034008717955640029795427178250796451549439613580461861658041442223368742403935840615324934538716316433388632898376785980408256367544311272810985661016601193777633485026964715687954281397809872988852224149418587777704861055114296367311876423064632213594338709231986519521267202828932543290057574888862420643789038847672983117901365596609450057173164089173137688187551266412174014335282612890376829688306057146414506079368579942218381100066527315875447636102128049220172347915959297924119731376049355983125901426007179992885593405037953467634940002694218388520674728762940807900181962214024486128252511539834504751023172606705818208460249995630065290978977657132580922795481874006873922972675444992290899654309657575581872344074113992971186968045836128890112737382954826000542116233105458067754093123966817651430574700371131299160362969619573737755541498298189591046268578589853748439191536802286378337549161435629389707480204679264752811160221721070983244390704489111956921063068751151169157767618799607749095122460352196420111863109513090598636763017102871105151727675096312549340729242281832227417848840746255853179286544364710590859372679580049617152469673882247308838705009358246758099321119249967900632134300983424105763360200194366502390650486149865815474383967135521153297838636710556713475364465514341150972305309912220916797066090426661775877332079352999832759559052337989228458515264040908625400127770504247604818597381272414397304592406297891721109325129423487847448186123733161390834323405670987360534576536978127602167988079499461613023285596275223026289364546418819848815413074623812452982599657465052285761205110351768965972660047014986782983462488937537597108821274486308680099352008863837413994310095521198198693008210919858717068529331773874910083813547716361340269154752846396462400507749174039489733553180495869329940166255327413111783961210998038660009172311223977311297733118547252344857703819252320269825907866098050114904093265064214993684992001421368740860869979376391072761417516400593876503883791428942902406397842506946424242198830080145006239963852835104389203520337442147014448428137487534889609530026242736637986322276387767850163145856544287574936490325420343200395155614906014326182091108851893247350178177640943404365900670939152114267558849533219498658338026558667248987631815879017192355406711901723368413808160755295778809356066793508347727016240849864535332941366216292892051101201974774408505588106171572137246910843557957159009311733842440810157502655009731833354369916950278023931010001051954076448420682525405867309176257483275876717614173145414398770868445800664717324211986015186037416993978542913762263299732669286959053513603732652082099775586159361010670701204224547458297312698951347160248284543154143539621618603133519718571389324432969164044896497431729232692069967915714806683684161255483036699063377255670956471132556886952849246685154227501850911140472322477905402739579904454265250776103584671686398934439044464305664019370527151191496221887459552621517139434775756690171622194826086331177141888311820514855423994140249873217946162447425685338256601801344481509561140216393743243898105269136973205533367111056529911502175550250874700776583891569340751242860998376395642561431212868419248240543722101193121881400775516479360126271268835909365323751679736177444919979251219782501722071944033810231892241153578812089101735096472633856186343844677092027568564063779526082969387368182342986444667166966046503781156506446427446455520806017017174901315957665497861804482803517378172020231300974028502100799804375793560129689800578463262123377361388192224624500235413537035278365963998117991920862768219328618946739765976821803293120763807769313321541518426558692760082720393682431884683505645077805395370269785122454977664702759031797386956263023015199301527968177940899945314580482063579261554817222671375827981425129120154173078808991165318308764231695764810600226735558722458345667335795553046218192908253252444559963731417278585623570309432282961747353047562268100204891813425146727864264446919196817459900824320707656634206356054207840983152843326810816112807723685727706642321380937412958578781010604301123539978912893956179114124313139113578090097327209010080931263207335095030148039401611516617619315736844782221769139422497971247965639998191130346332095954926316234450409838870529515499514807497212511785790217493855196447213141151092296770052730545206110375709775469981814321905877081033650445589873384716768406451190444266560375284811114950643035815884536692049314221476294556609950520469835327109858597746337314448443387366677631581557199161398638722567035315599017996306986475327356051806944529133965181585159162231520198058280418670517315274628616780203856426623144881096904518136478494065063603596387599752308730197847318306238350903973315102633085868855971032274226943017993835278880658174792406091003925123577755586615213827657895933174456717932373508180585584633360278164108836237582105518533418428060061778736018034651436095614907070425187768889814625534138032469598697972437917222387687309094695469925536748844668286190574598436780177788144224364786832387078768921055299747808935379671864985062363473771150749987497106371056621176606835213702305430035678136849400492798306139385218686408550071054314872242846879281148740459007963992365652097496266708556933945726225414673644766287875210759007405020498107742531325757686137670536413764765403569692999411335485148283955754836617228835576480830218738617203032457067481519456566890575360971367849520220871588669830182950581552476130214725909122254732969755986882796461178618502624065017026488005124358551393669822898758855257057527177055113295269246419832975334470246673798479602629669385873492530315980690376427473955208298364011487430018938561890615551118426823008807450905441850836653316956182007779577978630031830286001842039070093973162396360495355450791026185840524807739057777516175955376392164992542243763713295143730436163816816464701523693741879200212559604442311551930545949120528715854713937840812204445286175708156810367144470774595424502783170206148607090877950248245004235299405717120133058851843842756233283542319870756699139948063739023026070544381715641864463941368487201284185709354113320624856154292720461197939153006186523076236023167365465657470469377503302397693277388687656935925475515705757029714176955877387729232694377300132509965610143953057684421759378538917731228748583373068057567081731759661055795134998001984259773498102408516086204866306685517058945079283982752748383032778930276577242904598316343368757011768716586416225960370253610829042660079635424182224690895483299287447296996859357566180328969516733562347498832997427991520661446387026943538047144458955299887776004392598058768394390353674453623959754446755392951279968558912294503335582675331058139887725600904775263933992119306692151728420116410370154909539382926679774305008008568226192348038588169178046715666957421835861979916167485311904423154566268445483773687008199729581873928148648454157303817734716452769837011161452506683182229263560298483907162707176208065907253676487944657709507396021987855852251909635121792987645503707494526778014831218457792011924520557586334823188566151862784908821735769558971865172386669707664119709856664142598769894561064583572751999697000015439480652240820908138438694592961828942758615421323034057724551867068597311742526192505028601183642710732318702681276070493852558751119491783505971207669436782399428013808686430096683422066529697056989414535558339460281663191852546039507087666167111622294421163629077826890591751967748270190170627413901283058074191334982911794876606003507185868908782870058378375339347967335231150463358510738568844231044753476265686996338767979888754200605416493444694627752480728795502525421948866490827403821378338204690014756867430242310863315562596388282665807755283804997475221065894599990383015262520328321644617351877362598937131412086022983368285465388930820864387336245181349312579349651209296163477141926973541196936005768325390747007355941838679874044718631883095768605950751890355761827835785612046626951189925055650609508046071054989480512987601902762780436537537021608570831234059043270828321876841748992462319542021939574285575627328814968791751849785436592365084338011713146910355469686749678755284992643627147392819836599049924962817051201613548267447921413346325461755131596140641888761201774063848146321240047839691226141593808046072167193434593143447805372022689280150589317156834654230101892017148627660308220014084532148860676670620975035941032191953897494060055597480838863615694474164980964979238975198612053622711019387286900965823677418809822205365608042792480050912824793739918072089128514728732850320821962422489518307189091489915595179891436784932592193640849904127737047662511173427114905641244576589220434367872900882347288452708012425495347957582809412556721517300058570009295468127126561237556416038690784018829346962746086394033494757886759139029143305103372002952099124324347141502822921692954165014875584566299319901689112705843607898130958889212219369383950699259025287643295102358217229945350076110057966846676431608641457624817201418199821510404713543952843105305182018182406880856512692935718615441390882113922819678240733469952083473705417771883922060981485432434045988161086386986791250092938353874191015811103703215407467005423341306048445072339504535487502122304467037833939010916138950940644291309827559191695699260356741118262571936878442016133816508294551527890045534158313288367114701115334308082475665644842245889296270080555171398497440974828915333590368039663643488750670101684595009951388730040697775343383493872615096076631982426368674978211518623153535969813388675756968443925181935139599795367187937844393523475588118172191586868588200065951461266908063024877983174133681326649889708846960199304221856948050984738970104425974499795434524714917253236129277462903675855329452337476208704963856365999452181030352680917452701178710786540095482531904407286857248837756291520171147172145123352918558313920039436507724396275833145930231968936872811609914365819217849743403837569148659577498387304822065132160585698695899602784101801788536295751282653048853186184126986752271786431984556847659296999012498244341330829247899209122346080783482766284403598166836957206026133196388836638475417676052231945367658224445833919770761002711328701919422834103119935141129119251692530807942861045171344352202862454357063531902852864731890747844713358062583501394411621457375901162283589171881479080481453626613126423669701115209592417059737628045334349181767218745523606781308201688601321485378255159370050041631019296358612998257526450546107159871818955321581204272645425272776494591410482892529737012076149800967189461774625435380823480491647193646771466431121519301647303642497287104160729446962453024246457152268142232398647967943940827571221244328314696538852466268472784363762864102924021399881149341878311757963006444731700101986194211640018917391611954969428689850449766349761332945235443228764555387951922096506622741869194956602422341561010784898263223435661397506151898167577933674907938222208715768136923800082856396178827595058002168136951489339154521440887063782698227861038988119421875641649320064101751978509937969541310436827265325599331634636018113941370709698040788022838094814893271944432932948062610476173815898037344902426576893531786592480299175190803468807924368318675261380885392596891314569773226625740975510275090248828693147728473233310799213524470071476479792268829552351135528769668946683155679029077722946246171464936716940365182493217028046258013171279129487743732924856630012860176078059402623917548884955241896941760452004060090207851504192754980736848260365800427788710494361639616208317931761373509365771123357988286578429647804126598506539864239603117248281399125557055971010000464794290035969905563975843556559633399607806483771086542269898246610292551918917259020823851418937192583592834273212159767917718010091964795072929689870492070386474266301321574593131150900923491621431966562566946871506807635804255148366738601776394430415147804528903580997659864548710152068329521727104396911008391349450129045330602057104231260260812558700618411555704119797165927967246083848296394538596162691126756871140433604453470639393250554431267953725262440674121598413580092272438399342350410839209161959936370543839914974454895170787885612578595110975975234776443853716986616380142868035234412147002563826634152909916202907840380547922909842486052135733906952139690376574478894726119593161203850844136361991427814450007784903983787662573772906831740751600761092129937380931099489352821334149003698826318428761769216775207071914501059395112087364553660301117874065240595066287713872221268280378797110273637835844072087705377993953836099098461233431787558524014246330037985775467068304960947174407484048899744540285292503416743758177825853327064464298559178163033675006054326610177349490755766623107678322086873329495739154830091039124999811838446091468335778331194874763984730967026936304177162144660367024153042296004218759550142809857740458512568144840673142166857372947039665813891043333703891600709463541723293974662037550963488356088130843491936142801964152853345751859230609063215770558602226796810007210287513499827443357631132842759031828772252511446474891525550297798833630333661781860816215254544896958762451151651829054918393690934739811404304444535745249958179329374552897664391710756166795999588624855333531025718069721998985754542188901457019722291976938722777244842017231606532008975237914102401295266898986405514487828321901798668149791645829518574324294282065758302199861739128080121466229312800543345021591823314309672765384610493999158102253407737796829407874753887063270962390595166212293306184683107547590759040578886729137138464069431353178233800634759281661766465320826747368007371582944941661069006391332789587297346574157985508940825082379863835520997158928047435292957264976885859757253407061978729652208266514343681333273227388525012813488184595313340217489505939654706933177742198654883513274880594098561251072487905199351618146513329275408850433795883433571105637249945688971937009263954307700700752920393672752290615744278555250940998682786406493136227606025622482398278053668595543126465663893037105351260027879675652331586184645211390233801306681366876754885141319577499643418323253662007510643677831200734381338149122625731077738152463103568199967651683588257941718820368918152644775859346163090577534392455475272273556050503530454923735312598624244281169331154941983576182623410602434587898928565065324377503559181142910160895814968113119877254186642500080618933583996187182591815364651956341267983241370398472465478107604501354577995405678899431719623309068332901977599329671463184337505976832260188195550956336673154801984335317640631851202704510523044049613311713015681243354545201361412187904174018943047277867204984098542697193562461851058719593850445817282181682096949420813901046078051549837172911271920298511916469730928963387549553807552236803373473987510716672727335870926820985113549133582070631750728780414263329052187801717737489629463787210375063133191503754910041735203949760758885292158419681284948796850534645285802692249508192512318210058019831472302025066004047400962396471663356230542755116735516635629857328153013950133998495310896697250988579765996780844761488697522306349149538406777662524958589231542496102213387604057872089144938313937155728634927472527872781937858030786628646595623002532258609429070627330539313958062138896554157102742125690068819847631403662983588378480031490545816987203032303458986085155352090165802886917442491238820546109139813340843668610361835195650410391615867971153773786671210341947708846694236880761882683917397947053266418437021919383845080703813707584313108008385339333088966201768365476536474501685535367622934418081246196293657526272657131672028478134190914414961539772008931869410177984884701264266918021671399900010143072884615356668968774734184060846288877146039247280823523071023849396785648841836500624770506820165372700817465816854670981453104891721574817465514332123933187960949989271601445149809734507499258533038283153657819144418569084460100047587808562352252956584455522750227075168695135578781004332105155517805822755326334337042924249624311646154690972519363992043456605951413251414956549964721360763452985491728179947135217836038851462842774364136193812552023985447791260530190955599975207445184832272371446369098078756742302117370387284000985484341137197107954375200699916435214524032037152585915925305509641890551674526363556585498495980492899473751943847294659711945183865238978461972286959850972800550227228388121188030772227363235177595343922448440218703421091690524558193030451988495707983701683300953385517393551152240970053456599872104932582687321383201022741191552089593188336175808565071781105750858253563439906760057878492799685617577680044685265115582415472779692240548127004637734398841460762598925120748540952021137557352008660879178292011003350808147095487403076012685572077486147667178681246147702971012162990863054531492901727185589410107451864168728090518159885757510837956384941374704315072485938152526317384462885668721367631272616050168011553119347117913100836952332377771273765593446000554435548399927434168592248389064722182600310369403508814894810370651284085419957928640021092626293434936952528804778082488529160280568492599468907036831351069060261251055646868755053091522918595788953908807004847105603335131747453819670601993079998573947636406888990386291394351732293436756292377215035946435414821213830324486220829969330628347661631219311332596542403788594203339958156790714208573799215341531412022511221216873683297409377607067980991941676135932014828615218878597131042649394205967509494195111300666502606366923192819460427313801629974169729096974239897459174682558395334246912590673901272158046601500731881291697867487930989368013670593981764414215727179145944173730710539347852370253227142846431674364046865930818103643432046722358660189654966849551815702918663219254278615161470472603932526786842399668105028920232961468281684784719204999119169745907666390630904739069127604236384900506230068050671290251680174071802995425156284826705813661400211286563086810742607965334501238322409895049044632190370124009162231148766769683799164926220682557904375753009112282256309813489604014078001501257800080184464936814286422895203725758573381222431517885764262145591576458153341404918032547099382033290142507040892813226250622620253107909182001522733070907885606926953333967962265721054944458495368394404470265721985011034968458797573249663270555535542545825436250444494226690217844578311335716662088022021397477103071835662735579556210171845371547010356379242910252390642446794573385338663369735672726301271222791174480933594506298770860723794474204594031086724167678072652648732517933981854417297168388597723605202236291822811158663581034637007169945570532663456564535103743472019878779126760919322727700379549921259206009448768277364077727014942942732430032481406666231769428992362735239275821539647523911072269278573279317984177750102626953881725302394599848595362552284396761613686408541920933506945413476048312463900849352780646916527891518421806500435131367553441192550237682049556232435995453579788718787257605890792001004335881372480215280488330843696779749631117863961857470120656291570399158944853355506314103413373698201558831835749058911411498652006705706577547172824126283516460689624580502961846796207146661034152279575214464843606802635611478889223206177739832083056675633290090314801906881527453246841407366543488927302384923578252946113476416003545736346597259074229156970407523386780982389559546007909404751251464235967950558235059456599391489663987114713828547781148603416792827902172063529450949995224862521574354199357562695488963444288113198877664184840181372269587772110563997159717779452747811901869407018570008693418786648861269370700301174803342381134241307473531440980631213188493510280377353205099641795056511125459274371341524954394532913007052608141090615474624762253911913521463580380602912107885277803187988653437151156134417715078950707798907948031093526743507334624894660740095643890921016404233137741324795291108283748385433257707128865533348187787577141349211734194474391184000444779281937612691642518573301667680439723433917886564616616155566513342117326576425409148078852609104670917805623930077784250387481354122533399373354025684018366073776691584492244165878519220678159351630278343190505617413129421719918607735396517437690729638251756210634142731633244323818575239220437269170444625899824475710169735605821806288723070599254489778641039374633654896805235974295642971184460671676497682702926514671959658888454068469334407581375361837604009179220177748103844892887795730086845906979855313795140820058093787451991307040102794363296718341898914727591480743376564912464957219141105251037548799244017615605989816744095506435884388153659851294719332637971647767900913866197670720520327051171289029739971942014261479546304314371420372222316744456937235121147817828651544851399861555991416375115517930867683905264530416679450165037992275065210401743104696102399256280806468584090193053984257759748825063634062556148592692207760964677621237058207403380231473183079982771539844618577413191273974120559446929090090302855785253960162134774424731555406621414521287534036629207981279999952711711699821773137287911134567031817591168898877662669525780808268119985412938181444127355165620691092386761231510865264581109677702281315809806405769148558717556690366926253671824513201163888535647796396842765600603582155209515116571852804861264999942309095903293573163490842174124309571893215016337170310197357588982637015322433830268321040348160374704256957290687270605969936620969974576268248251535749249668316543719143092867382580771310868217773679452985219150943524027999550431758609932636327295869288822574926444479829398269156955015150643102492470826040191036374916817206024395186082043166751549552793232165328096779463017345469821957662160482710102849670357403159494614085734784691197255730475525512332752553856985660719533213497189899660417561905964478838386543840618933641869234036920899236594095754254155302119436467008324930723629985266576787700392789239449526507232621866850315732205337418090643786348417093193978877377550311016285252343695722221521650241625575287788516144417663905226599809402014282147402471259020023093923085882887985475686958191055735972212483439620304245441679687394411350902841325171553942881970634433830558919070688632516643131517817046616139086354938944913499741607458712567356232230454919334167352091675242908879570732093542403563335522276121771767433846481136955550125994281609167588264044176828951868356507910636426224251999155192972256971161338679483625530042995983081993890139203136545272335106419955121725399403527061969632799135023944418360492849896717774550083122158643939091889937897374014542338617574978437224662156343757922954283800929779090283263872868426903523855506268421665192572317653288406665947870291233442583034312540214040873524368314882343433381171346463426219230501226276074284973500002867417113979676181621158113467264742062520403612624245949009970732178898617118911316243426472297538897750264775538631724881179659521336819224738571575878810860965269693704340461291647836922311395791462862524159908168767682918337685905684581655215705759907877147619670989554043264482044089127877165549807412423508010508387939612288044586124443383284179473544100650010418567545360891936690895702105191035025572015390606831730133382094220884774839888467084092837489260221274853511162406477462570212473462137317081924127852499145747049985433111797792281894620156210911928467917114584741639964238224074903295442235169513385695263793958999622171614427868457838672243496508892099503427544187212153458382729169146192422472425158869319421719123547851668152587836882137897842336745169741779801107300269633553890308494039907396370168766685461779440770633245147620806258776544249931784400575480232791361080868397908357275112504052631168922032156135416345968633403582886699292040858741791405818410736735681002739542182991073950772099281540913303309331519395973370100712785163720210679291784955428346123737290509299966232674014423273670135989917301827432368809051477271270340602960375874558223529962084506336293850253575498013766930204475545691289942734571307383423312097763355678376224246808249902055531160684791586289849731768361705558052523471714049274475082485550222497325164394180933362509456318389917260591592840689083497398038455008762389570259432076452297693378296725687927100375111606538482273921601151658557060926089582982358591642792187252120633706145506813927440416358590031903112797861363114659270944844204165723313385001762443867631881604188225999713296082470194496451837423184422329543313262193861874983213850223841366581199808533071555863402775007882405995281790829285565558252970843854007875056580464256180397572975449865722287773726358682046926033665081221882527096729696782162842926570213545053129818681461356919891264044515072901709600112151793006747701236037049157603960142175455467401041875874002640890566562229762595440673894060216102626352157986441627840104423332186164799752546929779019564094774315375135217508997619245942653614678259114749911492162586249506057959479964893632795967511691347378857560928956510842302210705244442328568952761537933567536722736644736259561918003698465018459951586216101507747388539389960771014004037732212862797776724665251698738370364970539127547730557972470492549461571547686254360484069123450215750700633243895216844081281052018794709803837700671477493950170630995850884518441106518780792069900803509447524281102362419873530934880220402658452287105578517216569990511728088844374772157751342080844703840800020909579722232603595870731254583183546498376501172268044376671291538830944212975143502857777125699980143659598144380066071559852324943026664915927997644344805932490046234249067641170545082600095094667197331241647761888133566516557318650190375598356320613425185041673207015504193361162325445280057686911748405447251164771016063050753358988198498130814057521140612041819219262677403444400473652664276300822197260022253797923443339958207117541043876881508217382633222118033667510841375253832499748634156077104785199956291514703825955815091111604010777854699955243662521879469844091263847617629237319447090017099560105595497466565390680112350849161006918563033497854151874375506833906767792784845585843757348976254216526938832024383929120146965785833566713821505296451882468009206533851728829919090960952559710722268028989141797089715763204944403709938145929831515260158016643029342096045375057174537518352973376111057413016148809541844831562284594619124015115121889869990972404555025523878364412344312376639554822592435756080310233863464109610753901850706444220810469504142363872570454284634635089966531019460498644946502440845526436116177752620944350987223894701688138861432895243807303251087057588995487263353393604280124272994404754934306433606559278024683243062516322333571479130700158241224864004954500378503814209942876726734047347159121712452680301607643631651938253807348180700428424588488944984218299903130107280989209101452247437334445548613364318987843472843362292962963974713992953162418547259328293157540857332531669299882936161240453870346909228157287862309431256336146097467535065479316946066865110116666372185401990017293932706020063422583540905285271916439288451127658797768095040723623991993074093913142684278494510575812664313357029767680150739687870258864629045875288102933319472308054925559341383928618979016071325122422576976254274468043560794383141091512172463009947027719116521860524762483782199227816384103103104847333743702066418113910977601593681881808210377672440743259271296184947846062851806177385135599188941776469352384538184694616707513791462460979589277980118722372252616078168054766072353916249310663938296929157758584528878538730630741896031798691241827748348227574732611259601491443880618940948696460517527719747176114064970962024642574248413747178639005931795310228446130601451110483658135605065843810391704746087318958638646623773191969460915524770318410255440186852748241714569276123756677703899794536456991767552346524949615673805238049132282958517425970558610560494737591009554459480528953398255529289435899407292032421660694770508232927230379939369047683691729488479655110724642784426669933277786531973622226167117011426671629156670397235913722835844100429927408772334203764860861255635433115268971876316611720032904126812029541646223333837302348547458872350355808422053933724651986885991334216843372025850850897261416717672932401897454812335074093274435615470620064210253645239594157648248877812254902927521375342421888905214836281190284099595202948999162778792067056159593736544201340707655857134353556291884603519034366082314400962488510950112498815053407746116484526291280915908455004541938452836926043191561781493744718766577618964220431871659475364541973874823895060136887239039312739044589385325910558306942755306601978097601263170936356038897533279080186600374852107480880366602788921983016043729327916127043331308416507911868735046432454121114645236341253800982023642559713607653999899397509778488494268199856181887805314404267231851898353494660845941210718404864156526768172947976352317523638279850282551990791272420396452785483546332913621605906912841844671145662093614410745043160274257812277561264792795345768394138057260124344988927403122183567471711504375761462753060438662991348325583216935344805934501325927926732043038032725077257437970318379009696760786689883521658576740014770329241321714300197963294350219735340778414875422690761944936378826749836592795302566910070057077422316928809327040005012288801081394168522659610435475361573612881071502448434515802356059368388962021293232640940962737045013164743892700858101792266150894185458608203970665246935007184920009948219484807619879073102097782112623363901385424705065467679036065663161825892497251742911086918442813345953443070150173514634478323329666219313549290667576194277044759843764804009295910867542255007485252975308396209765860431852254047425288858406999444456398686886387464058628556840785023445128421340528573755845792504471650280506354328735123979082784249026475445026994179756544758889294181153850520885158311850592658774571559799114135923168431134563302528622877577478102426141253036486385038420781518021898939912639703271933558434676742627969766305554543227938146020902775054533375805463110379098401527520703763495294980678845948655157875379322792599783812516026651171425710115644222564961228444800559888344390361017343862552503358673536270097605742027508432434320639270197058501928671527842375686098228008183156261271335157600917471555431815445829862761761275817826444168284077408585469464864988702095847871789055366430705872755447475328194684709610892693155375583572741708277404045923804331129218453115555752096443665073701538158265599026507392739739852817532277194433286790247203557323681478844491658529489548043164607553845241739119507853426603956821718277312630958544194896064126487768528911634563542465792996301665351941382574771060103880536355801337619921302519125536816837736494541829679196011268837871645284899631676357672339481786685425847106967185363408076876324114435800637289463691276240073636540683060375674277831397711803059924040899306491829505960941401886952370461033139797757529293507365882070764310378118008413427500651365077241585126568818257781018852070036965008985355358405000370097885539846751507895006401487547163721456101415752172097199189122634779999532831144414190483968591913620762325250001981376706230887674538564611949645681536338045228420533862337545857136219153778023021375577460630716272325954713548632395365219923316317435851926652598307535244542160077833157606493122247252858251494964782953406526397411347774994793446265398444748320695324512184546716283087218742286670727233086913800201211225835658506061183246367979503373820900207030756903228191916179471598789590349693352699587556370014866015819052212722553675146962956526846171368699178486160697347136041747068094645222977272783340170462560275527909352908898061418473413358941397917444709428894098436514999765206208750222849488808445020696775689046343666910863182822588325761590726247911249150690608632543690920184865284948070843649390141728557554519552032107462086184859285734587961140596937480410452130968986366541352337089089600311006819201014820240990811416968486812643696980376958212832488914122721429639443077875025946376244409395838603224108719538632747123292301649647394660683358707840234944143204274540806708066415979371584595919932787005218616002809537925481784261874798087040571486564052111231517172218940566530357867489694136121469739068817372307185520467474353359921522543213056597624950189023886201756120340838734969643708516719801280348247579795467885433383987434016354365309850190574086972100807663092260393102189413420084360586879927019195297572061036261922404655414744867120494032774182419772919816676548766203444558853024907838131882974208518957930121159134829080350706573462693767347253386350967424819120983877364192274511259304695057845756118531596897202929147849306725436539865335280150460289849975117666909154812417365454274690409377668597211658159230005325923546617477293005516281931191233857697308713478582257275883327556234410816906198726268538513048596695996065628085327124680599640083063411355098576133375284574261909883909317497866396631872358581302537689786888689566797301845551213630991630736226800122587322898973865043204847096602657355639906179376837479457465180502889359110972377525611075471729779992539049731217901425413827107605005717959757738554258254772079749891481966937725936137722994171127580633435522922587823800728872499989226049226982165584284524416129391515665282446484933471967213475521612195514272811110060553108511644460082677279065427465959416897921242594664515670324149526988827351274659448213098269681989927328909736373868564006596491244239855276767513731186852736589662495980202306432184608868909417336891735329250766321639265931854343432443062815620346550610309207063921537001626606021247651249199033122440866420999891161323157879543437186172743994312662054032323861566461287325715560848946504879891489017287590103339573154306194445878607967621507057433699432399795959263500124952403528683024779851857996518825691185771514760240537125683542432357545156236998225343012463076476571651283487775532800465836661748350983221393795399845063016988616945671309488560555674341171230443857905618731464398770827422039510229441815662362189060939760699114563358103466068661979626050001628382792034591967614881915609066689937492475437508609659424527230127362829561144616223198089368306033283885996949459806686147069000407849461312613815468674888967105339640393768256837634315779140205382146959436919699496678648504259235817367513360484598465308735276338293070779673756813880376759832363701770017243333031944347819867728278620681684468967571406117660940923879918442593218712995788555965360401113954524289906581745866684775656458261640752396932483857490767694015137430022646594061180554299778013426420390901915349415699463770236722739202617315593394930563098803441107783554271684153996479562942252571628176767362078100515410777849271926981742837514393744194274521757500745667720383040452111433037158700863156468655315046561052054391792422301724048477215698547548148172073487733145590081110518546138082266196927032276423802976497472174421345106349156610081341749471921540127389909238074814555757739656223534486427390705892589500849420484751246983585788965122710074040090439595338725283726649565492613215912924253746159308053119257453267657324739969155615549930319399186917368096743974851209256155616801623507098917152119301928275593979776008262565404535541931570672330141269070886291797725960891665342538597498637830818595987866164462192795189501645665969706966889088356243215629031088025329516345418971569117834007832029489745690276211897508411776540576730407128715678833177536219867369034603751854290499305772975007436811863921755894390638739947491668701665843911275658955115508558945458646955305138716961673282987724713196665960170346451493595376945257820636514712982263837633476439567566530866528889718790389040270612176815922597351024774692733686521013631610559985371949860061256912512192336760746901724676202527332116674187767266459373742272890975407082703331618903593542680354749467513044828108950097961482524725991300791095484403755015919118503635819960517351694865413802468586540510801121078541715047819673121944897875899749174662882582282687446484524408973789075768888183767516649694651388442753198622849769555325644933744749654571852638410029916663272470875079994630480044894925980721890178258830160051018596986826373186650417363161834223004535970482649146048615259407902948496180614602674827143227538210947806347854789521256002015246624952698624927325685703430740436047879701677200358544862560295151761186286628366941063636997355786274485457839818892512337452266930238136511353303180515300914441675726962188287285914387612117764498754478894040071138515226890342190246043174587268338312204608766244909551001214336008022139344724719797818241418465601030881438870475603395160091474748361825109324397112642005130584958819440009680205830004244407692666514088145296221034299538561574491576098194974356444511076970832904017537940314602364654336021896873089299348037433361099856299258561409143693012358700047876611914815989828745682421014257632143648705974673804753780650137478937707657526528120830605981427485684178437173292670379018343338094348172697940605518609235452443747457604250728800674120462222152670744937450594422399482523972201621099064980500855850980164589736588365456003791865648864996151702930443820975198087313271093518314658050922084122476592023069041098251066857313065863688988451227633410943606323776440665965912776211172062729429806535784188501968187633745701061289051992375814964672348463632862191508590088425887371145917973998610181015233568191407087475704287462393754151767083078177689155253025448031675338917875611022091836595932016588183189229187353498219003613371625514039889318567340260541313287643862205014395659322804852462354480291228126728055119339068502907763196070498541229862776137120193454371814700963694114135724168184771596957655179200171109305042197339812877279719079069818818562038149995507901980298709706481991416444817737324341703534953652989244559166427086980209274417218740667384720178937992997322199080625062291937609494245745674378394806198837347789528810632772183603744694921932386376332441552325237412375631323706317234760207677741751419215792463581018878044357756657523056167368798280573984833798754128030781145424403242574800946338159493865200857031353476990188018967437572534631209741393870642702063046396434312514324989629538821806154894896445713592027915568904236321525901777929065456588571345765665371408123871638368444998767798625517402947782647673803033359400144740196161488842491776095345599141337358322754857091922337299727075518785992094120155601270483067600321570356410445303008266093491730801964193450991620346681109485315671592445871808688024087516456097438322638748496381600010425005553724250062149397099912583302876996943987726198313532703481077403187631709781226129045385595263632714474949783057437145058332000801463309226061019326634336430054343747983511557098637754170561227833022866267499250820915961516730756491999747562539737641170120102461475196902163908001987059864930098284488233703956791745775453214197605090110702956081286393227281379833005718443403758989971799338954617179799139669915189446452008016146994700513365602958893489974679213562382508787671443152779627683350224878523413412709597749868486615316957718164658224473680050515085032023797538969109986557178484685445508703330252530124425157958784162614813286229238747787954582295961838425842675809357185082026256208333675820702201346352428336622746815180682958422184446014188786416343215680511956068321391204951169319531009614474062847776634201547392338563331315692857819353526472870494653086795089585564259106152567556831947807878286359376534664889785064596431571546989139028839670344313844013935979766834749973333787139056337907312510375576596058834635355261971032468042703056089115834640238407899383678920109522599243199650561946074495252620007714481227927924816153275983655318549247615260630001545114379620382885018153270034340234521054936423183824648591216213683567842615428546535555279719685371858149472155538798668346777826168213270882660097266867565625234860452040100485498817633765768785585578465883850359183323481206754214856669996144931667100749758386481207300160917744544495369255407104323566113589729187150374483073126177512395189458482485993478963050016194459181449905094230762472147987773791126438749671375702689955866175650982671281969057610364079191512500214396527916778142309709368348837656650123119078544645695100022313338491497306061755008690572723497032665110542877609903128726859798179298471965755608673076227945896577646344446985301062426721045156102890803445193641187715629283322840145552066970967671585292927837500025530916484232768134637284474905793498967304351536047297795243579867254512159410080226205753402267471063626247890717593911722403439865110300303296674614136958693650977928979121343865098758976370622410971285478922986085384394204253298949356723662746089407260615354068615787565267801777307380816467575646106984570890831686515017486318942301232003228725372993280507827221244424824144869668978209579492971747346879651759690297695937837790154196186414569545717265276925957690563325080529780065074916289694310969150662036150619764097356196197701549144827143975626757801553709888036976479126965617964716691398584923332860262290052464231580984288614727841125691768728865426359434161930582722189612999092506177742499646109695596439626882249219679214150535309062044675838965074413366559810985475334230812531146270957047204361046131136386203210270840031758784270953630174691888333360621420939541592266379177639903498915723126853299283093631705093039421688339992095092738695382815121401247525177986325162919660885448086644587033819515908793179681929224661217524880560562670261566621427467392513391873592774534128269509426063173794847300992714858625335601992838536635221826436408700819247805120341683843275382672363009001613737295505060195823338973496116723760871772352320485655394867051992829884160088101374281444229971723725971821102533231780352928182673710935948189644273589646797189742050603704754530415246147069890377192590108710150392002280668742017149215677153999427652166924387840210259477444335895557662422738629676123744280142748718736445913006620618858244068251748319277332658030354967160385811922815413199028642929359537417650411468640437372254684622773295871204170947441001350441948001154856141173304379088187313847976399942731261526040772207596697728407577296286784470530277468034356859253171858991052974094832742918169750746818292455195717184898804032495375211490164970170006803858654412803117123591146893111616990061835996316287918461310173647694755103095493108045761336668799770147683279271705646089098333903350321620013505651322404910306172636529314355163781233483217779050625161861709013612115015845499224072446002606812928580355832617212573306530873555070849421679229468655885467287858687506743966941578047374509445160546155383806630150795155749225872788209545692600857226122699053935183352989633996337021702095698720078658235985279228829161988986338657209779025767257817646816873092301828261616018073374973004196503341466960506271534057644676194011650295309132106168694466003140599528359579153237590720831166505002965809310223065732959177636996087572683481614229452115461304955773982391541419847101302041117994028246868454683934418274269527928270607787999713133763603015838835383738598539513947287622999336251458336775711119412523270545087648807775674532387895600802630017553127838384145659457281336572291388165450643760424179498088594394724006369215218785932040837116752224398546239625996263004389444432955869587630872370040673264391457954045579655825690244202035308386789905944015673245563940004836951221949604282003841485242005331852177389666927929417801287192948758714737727572083606372634757418696100044779842464972369315262336509068849163593041590768780917155872522467500706746894491156562547288673573375805687875827990353874169992109212883755246559090463650067702421745263983092931412041592173539189578795858165660720391253542524116112393535772033150792453854374517905293473851754701229429723691048881598078558030959814806511251919555810756441952022402496599550318290286693352172132328329580392431045818286463108936186778301465559700189375954046857517433721859523610483341799322212575589807244825163873931806302156414412161714749514378428505476563259276207669149338034046247608138088288296082062727072004903442551818074816946000107482119738674818504277309162633907354313556404087855136637784063712768393086813493860067641488492428380573740642033579139306197798663183711190027362569434079404113596341527089322307298686832786593463705086261862496961882055720723035625994936859193535395014130863752212221861305401504833503488447688586258481110865277082566653718449103735478028403786000290783761426223660249761145544235364049790287219403682044058291386418634346429014528276661697713188735421578422289028533830732997658864337267662812748864937001538783448949773623234949568580587968512299671769159339769974456114915268631471690715988190988193890661388740774933233926024118150846869247410270434089058196049580184330395638627200193282313078054271942655507896884255626817603079126858149201917508757546939993785467481087692837955018841290058601705030874852156932131366316797332341562284769045874641024924556192956687532426456419353346669010736497660893111288302739216210990754186770565602541461355090903477449119023818080742754970378420836030475600530023195581342433429238048543885658725233861815999633347077389419711100780845308079388955469567999146385167403107037014942627160757126797927664217731934115775206295754398140691290885468883197084467910622926779149679037728927241914036120249699058519927467100890154877334371293160892529201521155377578814775902585802532587330069985225313760295799206755226164356615504362928830524317524207012324950375437272661789763075089602139936235143099196340626081828484703907706543309001530551795272766040354389286653612849398841652331197917821320097831497011514708406469187567478382706715439989971808308780148554607320906603520591361796888115956177900433610835333804995391336069774924832335675806232374636854377273776502013459975052465226472606781853315883489003927716817059045368903044292935273588885229293067454261175828412439687884282701374745194398617149922626823736603663706066188025098879610834842368815387305507589604807957285131157948993238565182497753420173797160777516477276731278826745548300088720802260229519978317714234265673550301985873745387267432141853566232716554624995740352146890793425223299584668863567785970235382005487343498283551921905746941913587296833491371640675881938590400109338547446417120225276688899839193829709227385274096849628555405393360964954162158722467570570207932831656987711772348908203456836532614130220157640779530061233604806609872335287216832122714369011978887868256195917563543181132704876368484589866544102953966862524605393702345052951350780766016262408371571148180751908452168316007615967441337786014234958012373315571728907158130875414264349082703483509737346948623117412738605022982052663853337330726144518481834881706780678133969433283719004746965181009839474459204270796435798788656654299927442288747664877025967560377651910695553208734015106698912778788388649288343614994484321312454541338267010006223716150005292669665806657187190935524027097288901467246609346274233666479172384061754173083854346734051159737159193856909013070326827466153373919759718277138129601318775126957734976702417252860594174000488281479919978826372082518057887454330164743359647136201125121273563654895333126476233200621802474756227801656891435524525725697809897525717710740231728408352756088210437503249706746318034705201151354652896021639527897062919340595839832572447588343781996253245481852468041095158510123610970811171264153012215985978336711021979262575449504957815832043745662485684778345488943324599233342991499175723005875713636796970022054708797284695992504556173132317605758243559725232731875299971677871089659839842830080704418972013057737220812742717183750542792131141505978886409571942977643719944306014046821769911134578582696003167651357800427149130032080475542265045661413794072217126866444892372565179685971377950738640730845717725526965055311874166170581091315001698375795354782149287009019735517978496178234898898814846718155381211090289505629511016097866757117307018809715297935447296747430103565327429354679201909934140844518157166990544007856614885417873868870225936072756235004040220632892524994589247690188454551119375410573791427967050503109730330238644846547061391280193056506134879745202600520406593060727273082363383458724758573472038172694841710437250409187314903516716714463417615913730558243974264784342086336903045157037729091799349523912331661633980269601121950481545723901547907846024666414279458281938030065784849804599342564649406570342403076966431639511573828400085001738814092593378544373570295974328915036148486427977736329185576828801618415136265507946486700928108125603193392070555775216107532054962651289631408527014355457356434618226665150416887405405827805123263569168399020008887251630075642276755178465312261567599564380253028611930301067834967304981072455254140166526081154461047279480317101961772509346523293784418491894512614162851249158456222307864437720621074927251119376943832364275316466727088277422532340313452159865195918210298468792349788821336101727457468237822956607987268769188437842536108191366773017523740080480066460402021451980434434388209037453896248212313332380511692371324423982391786760984994565312083498475246367991554397781625869548572526263714268119887289029348657228462656180455491303079095649116640813144374311387395640830454237195299254311272412585587569067148169386021870281526783890312042516002680887549861717208274242628142410644326602285717812403229730231463029233134196041760594785081943378295745068480286373876731536953095392883005792198268764051887609257775237943730625724283009683157002590927058852142912488687158251100058346873247706261145010916180020150906210846689980878344250740768961320622005384892410422245151784596037887471516577653330059941715622337532039139783176712125184586034873300946938411230454888362282615165881164671918810926737668467404117057612431775695638942511256351581488920967218834308827662320692792734123521661607995540032987571727496118929812077050014910371006480696303000279470106513779436741590381593858612346290601399461555109815290359189672804457483347862512294078881964007432576234962984005786242195295529674070517636458218537556842784987188143310575701294405652215871208789482890734327993089905422751187784610950481570840911547182481682454235165855911677503033926201044485465056198488726442084689198867404983317490616506018096758163364569587296446625683326619537000416881916601804106626938450320721140652435374278741565963033396355603175536079158344224260382452458929245621625728624799431894522672101841509379410693316463964666183160610097193150787174455789089489977378484264369803589156331141164380620931357941920791712444995448596372294110683363328393090027253589234254322784533579373818727009730404847832699077103129702168093056839210096958929596449788337836953693000259875099801345275850732205793065977365841905333426120860152035687556260045861131205838507991269804749387252826328096734418975954973982142265355082264582652322860093800990824634714548016310701586276973657294923328777324499588090122933808438284984191251175017930038886803828487191649740698955945306231805187174229118036175327177990829958288221973329809161575946666658464190635812255483673202013093757012275095941519994756204443845811611253541318465755001322954948887595815421687672374813709908180423291831972126611084869077046528221390695060640118635917037495584936187595692648094669384741015689124930317184523182983068155419605935472918007707279446188007341527804626118872946484037077735944421561490970151600512268884336617617728919488375935892137951817103398885831672672081895612706345611090842380632839958869155395793165372785941329080958143284952423736986724368611263717354199567895646432374693888291148588359732614597509461763985413613465580733323585092537207226333429243945291263731520445867365546692253968550059851106819551448564048181338669026690255144606420879578240205996366300647395430482578715397211414486086085365456125172640171492227659221473334023620158041438076751063839813118191014198053137449601925879908336345304801019845745640152501246909846629569122684753355789796296963994942762690743431155966666328453163797774294862223786865701610394528934921743394028390834061989721950271033786582035462721283557914985556081663257037643671670963845875929878670776422674258542991789123412933922836147755831427733924662294405023734722967752894790345989133836254034456024958210397898344712196280582089564643197799743091114924152179283003775369342199826446833080812984305378057352602332855820449348883895193372331360835631367290529354763085125572894821413652177840331697633166183173758768511736064322543923757422024490564210456443084617045384565774905516731961950870126347193832464148231055836674920876470168102734939236203120167197026632509843178393231769420434661407013699756122636778939412483331555326661016741289010186648553072926932880492275479866010813254177583347801814190917101640871654278504257583823605581772471591720600149688083861543776832226027531270323116346432520464877083172007707734535999825805220852094877106451301574645339120919885972320006093095981280499819332819418753204754838976075722527322722084134279873430847554651924074988286671643378141279139354525290038927136858509938074973263468299230914047409216287466581841858195779146661798995311679284462120438404013445870861259320785570679056496228835639609107483684171232914572182654364987707088188338911110288521291011681101460587047430358653353404221888543711124669532801686480595810685358280490948870653067553051220934150264811740170979386672053424076235130380337101176023899149079004828532209335534074511093846389669957818158194127252040180236466097496712310367058395137749900188132153624433320017746940696988858385959463678701167166883870402981094559246443775235251923986219537694326022201157478790978681451298539015798113162565007097431557671886503723889039039172181260968205415767894994163028890019791092322197602176578042779286757316339990732689326947107524418287426453456263787912586184140610342080225847514426163414370780367836110521370012363998432785709818077374704612534244625946031399431290697926359727711894730581927961221972067752358780124184503247373953305721765420693935545425471446372010859038046747252791823739293371805325860227016062307825586691557174889343634396039323063946913012737446878628815051674861226371852558683222920308230774879408027842349310000817264037834154626578853753066492957097138023943255106710257202253190496305744609865525057332858678585394812059327842203857807179412247675373273562020876922642230916187497552568456505425171734291612629663034804496836266731171078473682517776092286873200575545106862202004734812937510336746721603731739017075161248670797052475852914835103234507187863660795193232428724788541132141636868761353076110265888508608730513765252660964773562256594883723656230533139095119773731936167347758417589299907334172163700726890473021435677689733407452216745173139334785523476032083238430681310267056895899495380652334956675879970912047633232677573771406093096960761795670203670133858409320843878381244642060419570269602217399853880645413630826627987339500213651326409530379725379742125302158228599410932534964223175157502645381338092545530502718335955411583605825332117876381534395695690480046420008342373940544004713375967037302970927711416023287734685938147940687095226205992303980424608258145616074634738703050310607351368356953095078869285664209922425249635964023386885310871465909247465048763410541879302603156257674409467888563057160462527938413129094391658049516525597769711322955600941590906874003923906576414351090236511935968577715417642772865676031668959653010849308691011445836727997013695667840754924479718217004923752291372921060554126457840259788980283700056339099806935116351411716046158528122663126129055587541897627870156126728229624500797215605943126928157377734201709503491768949197440819892620006154563585833695221928373279750036089557072319401380800042434862863460929753853548737772064832866677839086812691578203272724608266757967501465905563827565131575614518228435109981003915614259780389394732211046009293313990801806245557580233370213865777578756026942449935501933021230278013463207382746597384908240130572265286757673823216643513042485088068516670929584152127788467012931712204631702695476591647315690772153649764994736332287984342540857524955343290699155597290048358546814726011769425400934424413666371957222403795957347014133272963723319550133330659540674465038506171411472685453569329969148606867000909114208147912389463662107539242403500549036272767227219898662283811950973003795304758588890846880847866080512755455945798013672275461749071707100374283902145164052384064770509443969217308388521370175611739912602514823874615227187510221378030659362951562868293454213565000221768637643083277363397219293369952113958240225967324042506415845780867665516989412802397961104100590329945821158850683628881964042768062332318224877457622264731265259653614822579759826779623385013888490759422111248414182135780500532515955679998008225327210269961533509150129999049095010990975780995565063396538746564923682408144637753025009137693756793866028218961812742738141033256815373704775823304569826403579573389314310421714879069813928734119428628520240615190500447729237043416117785294838906759779277305362098114672878646863038554466852090387198691821775781735277327693631017296495578252767499104498331062810649407423828639559998157161722136607247994329832150685120325613422586752781901467090510350778991234828821015401826587733110831545821284204861398694652098673495542616703940273298851895188236317489785829062241070733852508855719182690678788449759446936880614000721576391401267509945997461101452378818078484720864214025441688905761832846038999163406170865161247629754778429774894425425694356266078183232503194895291056339008286021540127618469057929310802394166956565893418461926902327500253167469982227714818468699003292724879562923707286771369034365823490095826445247532997362083812268931962292782193944846131601106842812554846681072884686105356039371034019642584491338621576729453682119140022826033930320745161560121561672089988935169439212215062729672911339374524332389422587719432184083086883794884246914621046044998616463543454982235670697253378559336565755667804186116984685035704932298761125005876024566883344366934876033922853380233855750711741432072270370248633443919812684351206145520103375733414686948086881113120478180850421906665767946406956788598770069358531349820317822330127661652172030100718090867322183869215429099673729047651783987738865056254032087005163688929537752777348143753599177639056965003639917967292297556157865595935771742847232378006806493033340987952094789044463813955475140258547690945376387405840092919251149050134447039470517258516431266982300017966839060185262218758196938552648971955705653286202484492941217835096130422991552517016945548980327185259896399221494945707563292851490744286903258254810534173807299637649523880374506759960084794884546244896135196118427819060900771757931977216757148669829766417694652811343183426357743808649493280870907097085877158621675623818055936132750904050831035614179696077451091521584135680560817212310555005193755922791610034878822502105149757327351566205569095238506501298645460150858467421870999707879341003630437317503879469204074406512877800124296008692617895846087056906971279191650888615575840165157177392900984705042771477541769160955508037141891074721412020678969409498628666290065003936753956606563337140318784273916374759196472343715674353486119797357515731651992802859436785067915064021663298802763782184239773217586258395839236054644859269774364794443764557441875974737823892286164942088232434661975281756592560859125892488098529140435730804991156875684232589914381326025754624563876342784082026518218866247265363196200364262063414196348128241451824406126967724112348603081556016396456797827660465193080326540845498358782257173011074988832504024406604374683429954310135414650434012389569413263585794125345218120920937965382521025890501348499085467732332541090089129537292862051763413109148377938500104734063361679842165579688536727616277533291343926952773176716190026652666268584743452208337124347449005911123476738808661341817201523090022574795622745528062917200121554809523349758407253944389718179415179395105364043054459061190300471453694399707283955649150510462573047961229144418925627694665880266932619734003207958138789201327881548787341122778383419071108667346957790647752116031180042812674769972921731891574005485279497606427652625356323394882209375561150001471502104429317639121807620054271185856387474328811548657716004446752324703082427530679221708725615188285946857474698936390036078829773172071910427097173652034108007093062068586788321921888042065240978194211929137098305913893608262490453654293108567045293751176791728562732230631625248435482117833131509076885571835841056738461909225268759877375669439985536854706299457440888814779741699233735087708582896400858258167990021554777951515277116149483139946391431084803111922382438959489774767572027957592449935897411409828984229131849585482988324040785558803593135276949976481344662391480094943892907338596433967133834174040813523488931013278840088026224069249788173808665705105962030059473277809372090355358831543103968500540991995819794676412567491071934580091257595617059296021041843352885468205481762876008873838017114455443389064635251478599338042273470794086305348377315936623759218292329008796878551763391240007670518671845560984554015554362755528931375428077486300932076816474470152207387661940087287553281517192434193734149693766175041012896264910348263693602939839112677195543930548128521568898664073386498652579022566262569170363894244794104037969928240251960578451664707980126906087083317402395965903993290666935796267279067595367368029573483665317702429845782027104446622526535662267029814408208963157842810630043131656291029356457001985378351649748260452551847777661042367240644741000766392872942967965012530682093120339562151399178488143651442340438432255097180417291436532009116592182243780206902375140532784822570723230435816031766698986610775720197964084483810097275046829077818726535380754926674877693210746778379648231180332898258245252988264573628691850700676279008405922844638021410595397223206719614131000003055836645528038580932720225394997185122632898925976219446697755711538531527900307835200623558334688335740694634744586437183454240291224627616170638976559393463305741979481473551995805657434339594434244036838534939655965526537458067489509794403841017464772153326343726394898137356843344066657266188439650353632539442195044795934937831716891827378803797687763369838652080438367758115713765379186291879870833340336107874593345674409379340568165631886842517270503809141619653761546864328009534940382974646568860962619160872840267058601485995410280249763395039335932364430686574644876160179016167079660392979735374637648302393024798841659184663991679640074246992003188498761080520869608414080541357926394142978509616996456604717911284685090334903961613023138633201083892366933203593569894589930780152875885997074295969104671588990997147802171723755669862762074605620682894491108558092617529299354407827068172651462966054285031296347754041134747274173132841200170140147379792108183690038706001716585791367051176187839375002922288884499658053385573654201090711038334209013809826782490853582141451908078136599886943801513345168329513338966848500082566734841895794711990983146042417631349777261429071734943283129148425715954623027355228956064057519621619405255042077434162060040114524416521317653221446595717159684640874486409806923347853347088714179397242011987787611506968988483054040798685165618564413049298858677358777016262771321962571973830943597826553756701905286251534458313754115578783869389696754518911884580522490404671749710658713599588175184055810706664009244476956855598952840836576556794550265925246865960722050588390822523237987076545949931186800121282812056932786306464368083719688924308892729213150966455063256938589906378492164097138330772321411295619877478260792126378557776749874046976463093650320358992970700044543300238182511088339937372564768269265577678378910607128170198606769165277373600806697424507381011328995981428835000589070513001327414164667273954055691273608502678325507055334546912866520917234314006242473712581499849243940105451824727025348111188843909310859745454408125242617623142485511973518575777900043421044454443987655356346218672093004028602127772142977518217558642321179340545828345947623868259712012866959331163085709560462903511926642650916966975201190425657969174181567070299971790274373491110226270848787291875925174620680467327113113374213957792155144115912716134732252187974544946807531670513081619455815939574199618287885860974426415849845204849402149493914913393440776764858642779709637994296371509139222652837965540586149881498108115581694436905543961781885634755852669645815284768902924310790912233344555362565795253154335267571583304069033580154691889028382177211776958399721849323296065555527415757865359975669462265781589018876436160949481094825184808753168804311136490967159968564295636738880243923894641233764774198259883061410614811066545347060984755596591418042061335598152782180834625651309525235657966316171342371534266025805542556542149421961359399254558735606313722131006875391517977157930385616185215997350690095092633459832950344135068598386223649659019394132367895964254555890872778443379105155601446209062129830251647769651694227191214461237991370388225652706180405827796942501405473283756660874446751812763262417147672227996983491567271107576742982458497384146623387566623913763166376639040458043089298789283088556619879252343508542414578560100800418573327076953330020709794592921750408379751385967715804863802564877881879066343950534257546176835302892536747488587360573770807788254636376918462976847956546288724252619309317217198121684158406377501821174734916334157044996164354405762164873816845505752961060017873842427711186584512044857011291219096351812160410543147178126514096167131927691112270746834843551464153200167437570576874555904572562934766922488630356021727862646844438955723361649520352717757435488393608449767915389539705728353306016461842849589431276103849342415589076689889872948782221000559913610322892161382844060809917729332374178357387655004136204085672793307892250099238606676535011709794276976689520925012131303529678376364770554244738122022038142193269224371782963962135447792156541014396244041540331558222504633638866152542234359598862007754556253508415866234827683514413336975277542383184106332024418588742596985622550373643871247197848060418577361467485416819521901797219166350409772121427154831270380743787303443861315014703831627040477441843526967734113157915751520295117519021328455524393142339501739695533334643768686110863114438747967637592577423939710723222400463860909991372293216436216739580506715696171939540557993205775815004218693450561954847565968115681500227006714222393820367903579634758009591148278890434728804195853819360952187172131930951254506054840658638797096740290124956319377780200927633000173330016866281232449404101890113607259186122320718159533184498295307214915637660528424211444494940003053816723853689167325409114619436199687595165496060711945548899858849265994904812539342013546015352846614198898811818486797702631715582665218988239916920156784064261438035639389974840773256570287228215268665710504252298774200818951062578640132788296687036163805428039085156885608027295921114373435626494943659367879564604981853399655082282924890646575254212179082820799902135554336623187851451507216225510783956166669893138815405247005446680065845922260035541353842820558612522496500255653005306604734436275691239092734100661962307404762856900228525405800675140203342459648419178825132503618518741749863961117905849580450744450572675474447231260680385807675263701186876435393663481604270132070250489348491454961048619659193775631104552932283647199884921561390590574845702553801670921792963482676912896047464432411673430968818121313527584226362945761307205093037812020339397326599539872844295847875378254169972474516147882173748425185414885876802563465032308667364023895932663951612098119758002710828527867987317946335370355114552332530192186494623602144165816108701363631930486260881997501282730791839037177370333047009655280774927027600688443117971550030823850334913301906596247922883768347381366189156347258248361718241400121214028186305173882951242956661547768006766954119043479588340216578977617716751937786842829728056763680130358881307611407401393762735055173809582410725393213325456934855396703747034888931706275333191653617482285350712655263103954040242808019602944748103610898902624288907980208217716551298338311980170641963370929419108621538453733558409068806972873678524018624653252686250146129597712257698993743850132786306633569388119346705469515962255948176525193370081424368154725071964731644768827892957352752980735629545210101936195548815121067520061653868178230165295037188457106255730711649676475015653670897225955120358550222323570238158750025313697351580970877607873429820537149424575770714901970362019524713787062411500280734742591868883852515459546870378667687045707585436226339605692205069570107867536731538350970084345852910032135008510702539034933203364297882261389335334385612152162855672747028423734597892362078369270451903830208167623101366776581193964090796118919096046347847934369122321101464393663379292085138106808054482091534944968327140960237961526332468803346731285643389916747020971578103148123585184264016744777405796098285027661686417743866463576752596507346891046699091133111475446897885743005173288712438468725768947557643267028095745432343446910731039682993507755616788011512217055704944345740035263587139283048338990457343674238796049288126646247149922160112165599443157637598818392539715893086836401356714687522514463740028919950389054112056623738135731577000752558567181035174402144824012343494763265301359196507435006519987437811619498390236836934918619699120802151217752699978921800146705501208396085875889200697288918494683137359198436972174948296097060256801695167507569334328653855035684497399860513030787205832625471054539376903887095247337714125691953758994988894205962982566032345909595846333170407954418748323889502945814880845067934827572493729659837767326756800673125465251050555113836004105358805894168781553721022296242944411313993548691020928401353801818162637979771921207778819321291052990268147605398848623507416568904510341363901383770598456589792927126945417563731686833348909363027547354830951365657996437661401654504515283859580323865897761127313563728527538073891833670025338480813313138926676055564546977021507408125795084612193080910721423422113696514239806305835853570603318997586000872056574091168658437235707361924182723513761843699424482580755515209383024120355763404016357408216846995053393007955230305170060922465583165193722322997232999498889619811452227013394020671531617299411227616577111983917397693365212743316240864880016514380854072442858532652024500505763952916922553826399202950613560451213913553913143824704381724069996649331313361043838611984208202473127174351447759627527172333830412164252986971728462336695896007548373686248988409787483044946919904432170451601691370032889882576936667858744960151487775630415043018441503455136099161418149474179867975670360506355570597292963427237032150789201878678823326918066132325605404012973163813760581650995895013247433385752605073524552343117250620903400774427802601815984770513125562961897947172040332741269248740324457426766422503914821289247951691191592913191074572660630590445338747137406787349525116213561474680847985073550758705354280123776363800087901740428936092667305343375022586016369197958889836856654026298360448800314406889271537359552689769768414563776361227772864802683020631177558966731058592398372714600265860731771578522728333458033922991425760146640280902410441919758091983588009362971920383296015764739548925085579903169594113127941950779284918220918389629807906046073064241973823361129986640956465653182178508832457039408359715218913884399975559454942276098442075231381750540693082785217497090353917379756577317319129872385839961726894744459026245198900237570498404732744065450591243335162561353765161534443415872802405795870247227920982711358654387432165178676557041789394696671369967488652401864696994171983849329031909370555557795044334796950889299202463764726695887899388247148648422750793644712424637945214931760630786128760364033284315388070046089609001930612757592357047826655406750490795847276400928816194266534577512623576938974246227031239115279336594976328530012586554796833421570884511562582271800563640849141142885335386810864031271857865424977923327469716292536597221963009246614263444306513941328469680888608017580679809125012971027113082217857272109777893324439929347574362290108006067002076051772635739759118519206306243283935110346725472605779449538011426718927150067187320526257039090876891581573295880050777770586624169680564506314915373543300872814199736868793738394897745233114577211341027881380877927656869530120966102754254587648077971839326455677059760978860175227394949087544831308515895395726465869642356747014153370496145880070788629415486179214334843679974618310854015786918823306297855984355466039961406420844098872826362601979665193084757399362204673850215481244725909364440239240784134352692340674478025282914405769162049880660309516436782666425623131536441454249770435527197457758396375930653010345615557826660315963314680601673410104486058640274583430514842938380769677531548858459952288399385440117701322901696870987987957498222147522854542060081200866782238461956776127317172287316435960270766183750314465388730787225356544657750339539948765205298957679219145826254446427723458697847853527831422337577943760518646348549620725165085578501286733264257680040671992888768992395937348294438719415520959517675173619747422170472586053719417555814144472951398680997025909234389356602661366057988222215160303277959416351961485462305357966764583270136605757889690161100066762658106127910467069719894770621340351022763524241185646938219515050582443635099863686209191120583416371734225445922696702453049895826798224249359544303003382091367706376379104841826243722695472321677942333412792903046795618379092177489853954572251366359195255562957803982622083787264891870533018182644910188775709037349190868103985159216419206627346488326926161488720521470705993324647413729258129791549485125702701447511362232365804023095225234259585283157885761144484254735337313391014907644276981161739158395035305603005178039199563815692167858510031534262941145083114623785475428830619364157906825627455763923664376162078610039704128523490522971502120155546902483073647792408125793468278961036231211296421974994213471713008673449452509291301202172506614415440556857662651841512068924228120583427842772578063939183569798387819307846146655525148987601347431032641510500868039469796602557496260354492955178189835991404277262476124260565269063417371692174909822043337648371303667703802981034328340648611196698599801870941626803658657483821804040822248174048095563072916489482069289388259192133980584058009057604337883808866172472145529487373280274701553096446342501175466417750047515419746200199436780045693062088085875350818683405387570193997308306789670301552731142523313003953224877906066788814483918834952619780498772991056919745291988224420810972458657364962702829821886824326196874958244436332103666153869786744725336908646784138699447502858577709563996477522510369660067981537999623491149978312789942740872128832725361338891042676898268494120160463213548082524998043745210606083821067305188011595262520124377569524650840793648333996034262591847553762891075863364728906166068755790142302660998086574044373576778991357598731629533000029091177398012946145575725457556810565632881799162018968966858243820844010016942750442480695756256049461139400980308195309370507351680177928471280053608966294833097599335543332424942033844938306891141170237362702482362096362259409802575245497454851397045787935592654653205719204977247428296733416325597018489264365703752633606741268065679524587545122314893647762344519655179649005367449962768338875752189965276016917696287039064014118676325276001867050080343720028743259043180946238129229552176211691207829916964436534032064709605631632556650071642169347573311241673901520953842339892133954516836694067507267994115719646363241274876123556477824026897939839288621846610541398280054099459977363515293577207783077440232064752573791396969834947943698240739289164973859331836797385739686608396593982677448275186668727529960547776261803457596120303086399474338677930872464735590660493282500961469531672972106687312766318041932105112224841517623473043583360361864237311404242345680161027992631979666604389514829150105897970693447648835318536550656237145165659650457944702421079751144891167455185888414188335947678851178316571748238414684233365923078152555425871435644248369535528539483811384844387607017292723128274773551435102679417432843817958565864003492665802651788505273365237944001731347307845400506343782748566604657411285519055620810585971748607981375394057496804032668781403136641708720205832309125141664232916243925745641844267123511907031025953415478009924480570286637784193644710088423245054088650887121765395411043362939770354927300096815427123111442325164209157984381298814662575740851667049444624251998043474555245944472789014714487370298117538552465906902359746761676924946927077614469074328770061146264898787319320077887825665588030576793056797557136926134424594204679510829277757925828634780227070818237920064772369902454581064832422528961435040824676237036004395130101494864337309394592209929574862109654379906089208779591503636592412435599275892891462801293075198734213114198555566597672348914102087394466921362193343994212439735431061739444768087810544666356142157599760239964488508838188297118884056042358134214648507655784568328816237299203436500735515256506703910944573404548295498424727465596501296279077541409088174110536424453802719209727097005181226273631330968585501932886079368647422427168129929066485021248364859568725473580926181550500639797134589234994358124322414310659531592019650544434641213877423573175669359280007387538774489409405757162912160042946378637887843018348056763776521319398140779208436793503498960833389376779443692403289525391998428142615101144042506285305184159887995167980261490988173655691942661111606727066073091613844870423856274247337839608903818022196782238103381597399900508725935028989087281230373983176499887977424576500598247480283420275747171387881576752680185666630254332737342999384251152409466435339299476058617350165224346561906034619033420316185330815770089822491749709587654944780695771180710305690786588763911281240043394948246092695421731693729669166030526813056746481338036142766626244418627797042101340031920603697216366322805596051310259103576669045177841153964567418327087274288939682033718414270059183193375689798957237212957413264234006169373822791381236494886223086072282648796393750222843391109635203846537573356068701822487329555401406824198058989028098841028342358604209184726978058188736470752761433929168767059151452224982703096499243382374053036690969908438930205060604074301599472669295585224672261936263953019643821226971532120224792100486481862769508882631654079641842715040268444934657672438591092417899862996498875233722056494189578983812060796623657091547827351505118737295164038401009039720925471884974482134764970901595382501902781789532030644863326007405899172246264455588728459098083140768851150111552293608866260885524778438353369648129482894386086981806646924609116593751446074116475012953863975888960787083178138808743543276833223815979660303964350029678121609245869008003803117318907703226207992775029094043791102014464755356779520063539047448208762666627587997857205509030976718272867269665918046858887213311894662588805247648908534448180545706633462861064221256002191861868663292842461288647881292483996413647000650256326828249633594809223985243114234062262157633675254230940165847118021089045278725578501199288333866644607748862058997399815307415961631440782183595235678317148750246803636178036151097670048950309653423427396440237423825149062141871646296992482321717905478734519913035815375052404421803663932132481565845631050637364436355827832477266265261779004922111096363292770376950417431301697069355135129075508003385042169525369540431347665706343986698595102146444363743337964903702605712392223414006035815541759300122322000099367680692516754920656275524013667830160675121343254887909016910299074448427828474355187825332132697873597183096760300161490428539136071547272784068737021794716118778304883083007473117962536061488664819332547807648564750323093456916053280855553373390558699052661519034153626519788032274830397252562490747867773398067466061602684807199214603219743081596390566773672158468590197730875411908213555466232109969972274465848876814558996361880008363369831493357270719947241131381044835703833628608516419590756328084935263503480213880150823184496642437245448348653803578182077838198306975761298137543217741849158565065734077429951361158080643812463263599681728889235051052851086803897509778259431084947887339435517834262935948130617997214095837762399940775667783754446018974624368391272419944037697259766846326032387443879244797524653463231430977678421705702939708017445821099923412188606408479668998362487672873366744870942075699050705411418470200188938445792732818882204020450589820832650720498341276429197387417820004515291599308694599186106565986053107652446824308102412283101519439734998738071445993386488466903394031271290541424200532156466150428888829856331738675395713720382838864891887972052861457282272026723304735550504788008830299143368150234202032468571348743966850003541372160231802171964810762753403933360228133011514029122651694101425061909518407183644325455994507337267959909589330797022899489574494739124686652699004642755408659219383300405095393873010549674153040635255025398552906788974521965772222230697312342249822549814934258620283299419903458375060198166945538347305838358971894254238942199677012756678038362627345238329275830323836053222551638535109984932319730831313749811836995454442141562265000634841681867143483583547797182251623339660904778979083411654275405743785697899734825574118686826428264078504445858747054795569771885136616421173299193231739773861485067022685924924318002994100828093888856754596050893846609676229844541501448821009087110066735148444493421258355602433398798918502303719564781778983584308143883937552092426255563875251093303156880509268465834397571003306752664769228003321689222397629212645734410817895089754934419054008898275312176788510173985773259786087161034648170876120024448933880266789811021754224890700304971868857265486552457904994651578255572098523383371608815163076057434820352833411822604913117431407466249961965994161145866286893655276252382699801240988371251203851301467192794113219848865831053731320498344794259787426895094235361904345035334120225320037696081963749844856104254574437877741889327810670511761688870930237274694237207943129273243313749441100802735805114983132280770382364806085614756238690065668323917576738781956592289970661608111836892538533878385467111619710873942552931021258063484844844822188589281638866102804344332913511705051170741793186839818711201762717298472189134664668680843127707047425458514525591610350511278138759126474741427265854727131286405737598889725456710457547969249007036063026417723428606406905965250770821757752003196718867561163553301082674971571802525402737387485819685921620842586456112246863536714681701717847658743932626903811020715070787272085301343953656625846320860921375877822984760075184887776339706082196762520001908901685039048849930952786128667072284726639430842525775580850301281114541233902812746061308098082848544898175366609184154500259670684971740718379484692253631107327243574082569141315330212044631527503980374121673237809298664967915029750388450157501294312148571201716245946769656989055502438292722331116193337323768057177398507511473383643712078211017564874923939413480927496439608163771026782929249560556288245983633012173613528898473182522951998351088637062164079507822911233373315931813167691180020002050719996531583090548848115598751260916314134196154210129930726952493400123375731804601744717217796512249891456276416935632792188879014719443718022829750783607106617893182324417281113766261701267558934376396580830579259916486527271788122883669834739136475680045320877051403810450437004543182588935479583970426949166726533730233659329845710412922834880729669144615435856243559721175781220383967139022621703701457735298607317377355734472959979114410959113809813490347138083356656322368533331861684754950248017134203444074857875559468605345680560021357954690773134214441413594159185477656969567124443210535079545993593498723668540007434441859039825898768226099596285098242203875877523925230625446242480912640302963340552584849460853078821620660824394465567830603009118764096708729178443055574442875798769175452044031715915944357747156937224267816288202488775741569999583665047204447787849179879288118051982289369813699729645883857368404732885366506520877674690842838337685021900364519104980495033666674469851319492123315595531789562566332792615100764463011217966286298247899773411211894218455029930953535848001388228191539889008606895074290789958660597940865061025868529503679492752787148508901490361365671847183165723381112212118575939827296708944978979377229398930796952755706684201702372017074510884223080428383400084675684958410374994369063377429541822868129705972566150335302879731416802902744956375520841549638194732247960002644537581183128590975310147402247670950275731453870904742247739098066406113017947787133007630768296763714007530570008737667877394887699027351695608021380289353240091081292424634717440678565000893136180352688700637574544080275558306990682988835750530933366506175794875921298059214247097644308331088646411492639799396837763054072479796505588215985449010333246336054400947464787667913061772520166510227762701901760926467013678013189081900794939122730661209204261417823137527976100307841073861106001994928385444811929903754749950167465968596588265991213379660655773760408732867053929830278070023870029254074323625739419512334916346930538321174089622352491518926888938723994142685667840764256533011065085568074201331848923150660969104557124470935506464472114698390761238326048172901395947404019444121698843811523857853674847123084592174176617988418401341683977837018402073011001431152047273914963131357727420377481935627175174257283290459374707076634688989364727290443680052216177415394352871861107676717065624443498083386250319701473855501683905113005562863933828556500937526375458042917976103361155683260188966128055067474657311703532355249221352223237164028745773517653465426811198344615086398387159507924054015176386530439116248320168686890811814672018383545704421473763155845532516912804039425229163336806964076730579091824480306803793062708902137531515066142812158891892118629215894656556783462415774858957890051418383042589772621710783389834271310727450954676556874263217174265690599695471493275018353254535467918591919306988043155149013028170664872606558006289326798380995506342173138765927478998880681629824165105937259211380080452834662539370102342901015790143867297933572400360174427034546546288690409806340313076387432284751113448824287615065787314703677106163438193550094698563034004674941694448187447657737977782092668770950636793052550682754533733198969697866638033551412476631654668983269726223109013886826283097744326117135570295463270226381113352355365870827626984894131047311783477791896425878436544742984074536972141956051078775739982494463150577746414071765319032423630962267856758296118308936996400148495255728849953531136616345062351203617050869575128507115468710755351622397996618574395663615240387113184993389986685851788658512608533068744271671753506832215274254711758477806720947743609634945342547708334282210934667885642094934022140417001133927194880078944798456896213150614588811380938414031135741035146673838408331569874517821344887369241859893152490527850224954631675965313906186681241957096052386102606251053251685248776486445336590368754261117432065833512025308378401330357728307497473291277280569934840287208853183552166646976730999898756069351385706016841860257095436972174740266596980994631970697884607548625860573187360582921903821834867120068959796909694913503749582022377242768767890931156461878110268533900413216821954633180398104756596091213965991893593057665170174662503050491365446709232020934800220131219504425729073632240182127869221802668758220141282903095903679858108298471509599022378996848833512833004121798070488426246449656181367812561847059789310983595829384203329252182702471777646460723226543710349396983247131183459181460765428173620130536931675659182000994424794772265969830123881545238586847982963848867413833288863863437767749277718629170157739294622708426752616349883358769550927267615317161336645211084785106781167234195714206754229408197939138109818187649505814852031534321984152912098712983898057410213809443443733980930358704896155503180651539116640562785802901888290332794941958354746599634459909685239907253858758007054863425437855657812031913965766846993465036079239306823796507589028552708285409840380204269499500648530248591488769017533706979189174507982637314632805945457091473414897991026703182312418483249405178152430805964905331971137872375702180094502716066984696671904745119960837060787623588630357049832050059126787742379236314719156990722196954072934633319744899256201408811238910759896891286345136764910858244719734340652790962969109503416556076525516540464430327358145509075369526815280308257832309682889399773442536813291017169597012322227878456984073074925421349348636428175973255504837190186790294557164897947913093804479502381043194052612497233684569473798792223033816546653542146997980695471299338820514797153359665466782590261520895473085391586770240431091793836887742572038558105069180091726311999646917892489339053399649827492600447815968866292082682608875258769648558840416928129835231476561203058435682879463254733210532933423779234332238256054484602967280050921919593976146022735209257686486445089575727679061891767992258705978761205628729578895173044757206456792153609201227343759766255962388502961077050442669257562654812271720150085202964846793441617618410529635240091085791439681072194357887882302864212902936743609940825721203833745320257005821965177986502545893079398527201391572429420722896956317346571685847468146907470520162523250673483121929413413340755609408363833377255906303617595017212656081839217020817752334452844672542770424244338689898826461247660774577727719933397058734705577515021177354698503701528396508342006794276911102316826365890410575745352950887116111511678643629680648505871554518633255036589064146466090275650641305768571688369376435280984982327374507895744569292398213570901908995182869868059490195298459743624462023647523621794668674949469978812402733079105309787222833273048248015682635020853882142732519587479071431461033700454230213751454523431758739754799895806344628768077721938882565448425063722713519583449870677201521872517991618527325802770659561921418195175071308680297881308301750624634589087753366085266552028083816601326009037836987321827583633835974701312934395668239501612166075349437120628870636079135809914510186467561762816532261038947058856664256286135927400628160470134115733043689643190118013249333659020709376751975046956189131708817486875336491318238739539531699545148753957942442637933120836941886748301737939173375306457492049965281668184854568940874684099946681507566217612710186678153817459407771462978792027534426785149347145876122889610488809933595543402792767956428723454064845385421418157778872555615243328507337079401729457051259409539434022673923538430353666475811698530051269231323991831670064647507258316690945729268186415228513699151510617165107962727379470993759194344343720556254346885807697546296527618313986315124836344307228306945257557589550801484099370120716548128931674546781276511516553389084323602053959245360978766086346220211906273129983584905645629613360383921975820501271396192098423836237714255404091951351062939849428081776495543853734848476082025254747013512989666454812295060364630995063246557395683434271105765296975243455629065210187820729849047816697034326741018697878507425304906493400071809583105098753378654202784422415018909491707166654199964548777079033800008608590148836591308370051414397668317201192906081497850518983741710442474051283997087125955999571525226596075944763151022913518884699467976113435448256906941083062303589865635282681385508103112361107794255576082884676796814545910482162470922794829455991097396440027373156756684817592983223518784710761502054410168469598050017819349175435358551851691263871140275926595546759995214794732875899044431073078262791839032402403907999366698948501334880393251284045771476432895319721912706838179245060560609860552303850809741797155454038180260848576069462127373914500088378376789798976108204697124266808169724328301208464170012589122998784388238480389200100792426980323611430063699440719384191645023023860005439287807865877649984409607802793531602814059937404634976525557407678157427574626479448292355488044598788697618050417926372062115029778373846748591159819701136467183170346282602157547730644957119108937821672688734371741490245950909581406510347112520817155218135391260631791158439012487686645602280071639187483072576548170099334345471162660343357229792557534228584359304037302329029654335698391019808166678261167491243894517897368860724251164544471733167701027012055803883031159906650753688132238156676783560396796267191722526698939739026661854309534601228065331832502896852509512465735983287997267447893823776766455598909087920057047030114357367878201840730342762193268845781712833511982254302963894938647988020252887253265849165229343393019955471648045791872616294756380537635093911438855287662785112976316315908759545111306974129370821554125756756656454586878007296868709132640534770950348749143025028815680054181297394708322925591094868888992946302260752133979477664983410305311279958148596831669537316027862729860440690711977809462582233369874736456126472358251596845703996424145557706852340902623136352138101447794771476759971259595328443285692970093392462968708671949703174151908397238153814039692095111588919482171351126642910837398347154300812378492901884359115527361198993241647056176468581182068390859615866737192676601880264631564712540178847287136752176597416554743345251471566593140936960157952453941108121392097182171066711438609705843336667486627556809163652370129840505391559697157031922139992184382750455809561533221758686468179256477768206394320706759895046907451090548874155586687834151088819557075125727648047940640170232978721503945436483303529748332735399716591222234827931379778660416412863362257573467692767926091885561819787801705467461045150054947349391324300022413735288533189020112913249720372456222776237759720585875724573008782145145658471181717466831905195720591321959912349514201059315851672635086753895552933908409517821600540906108228416367659630241956654842740336145239815255442336207530077097360016038783278133017689203698477509003687622387969176125964786167478785729965184789490088042312620874351199992747218214522520455440414328221348852934881220437276836843319241391372890103255073323796021989459777504594521444107137055964467863322748098890670976481331381608202029425797867968173270329210241167962998875827145836383841698937633686870937557849442764449537132103170732989146767929051643072788110343105012759798321559361632007395113085428111998359483864232255395582340801974554728995159969254826152179531706524775779282262034805215419450030911865393593070479389170689202561074605495008958815839779837076666733236419922523474881732653045633364926507292970435346647664115598440306651392370129445345343158663636880572692132672104218855039032168543671801104315729527082758074246507880426215137388941317988701844634308507522906607736422217292003182629542564827239495941909884069274273710422600374208845008880347221052838886345569765005587150739043583546864356579100774316061435012695973519454241235798991536404980564242622075209635610269414546317003682340582100784889882518784287393718510847326432700227001694112065303157309010975637410992154270283846684374764854206388695034728687078408011823949020196202555144047290849985146122043698705893653783829131626728550155444738590649604920175107415960596440996225385376011121925307766299243925877661096730649983572581882361432080207002555586782641075821565007688857285101583762539379624235504022839645644322706468951545186654930843825458487051011945415707002615045594647338538322091660552322713446411282335162544597000292244469998576020447998991982145030532236456384219929100736605368614004983474124283955758808648384931157180999611640956327368783696085024157229960076152967108981408127352393173482468283177505357596564410455367253366142296209533256606265992662430571495648353152092419286487400220128363141162645656289719122743828896162422836571618818330129823994735634904051676979008572347021283430223528865895191524142946256457565942800049716948323652923803408209675345591837102329344113151258052605422549822447183424615603194442000067070748565273604165781987842091446700006559160673589650438485813698128298752641397642710655825639912198260803110301396162591515205607756263442310520784451182146903677994562855146799144877211631553313073134897521341662099641865295916879523559350894265744183401910948462943065085284400203805162218176484989064478359953982253362153605791185859885197085919260759766180803417406057632302258707264658789172009346649440275446957861490356539773395433707145438418590052435854392917641088405799404334227290184251379074145438936139935784842474183461003815215050979074185602808248041564093175901418656623636557584207439235518873099707287851404541971802426545569051539350970252090314754132139996876104220182253791909168488996624929077540681212567633005520235005593585060640896985444486071599415689199664934388640771126992066445195969175762224437131225289938590689159106534851734523285966118370840562168891005461348564829689862729961878027222220115231471663013999037453372877568994248903534647549983073281901928287222761176370818459577628464056366317837875785038868055050791927702289792452686895776142687812229378654520533978758536746318037450090902035274515818550624112611731565182487012161633461724930598773604592608079332673624852713529546782400258313935927372819852156033764170293364840387259590467080148263177823526022978277790360458009501466701235003302135512536631266394050029975327472710002344215428267720852696488983161511474974307038338429447393130648578725352567459750869050772007164435724353982898145199994659779070023045942322292462586524461741307356675066450797762218632378656210798182218621736206042732325729802088232779632635783737230270778271283570469840449961187659220967950046302762014690318499483734611772100073521953439100283936103748018884943517593534940758164483751413051825190690804139933166487854966098443737026414006655964584125496437182519240911957422804724171671625554608489560580029195453853219073993060552511840319608246599407545936874614823063537726781996110333019947597367457666517285881091120985373323905688795813391195086421066975074469529190693072744691946256542348302018079888349497980985273342324452605417894956278600640487663204804668103148114465901392614357802210045995561051330074048131415706740341855994496459480999763746316932690673239672986327915904479811003421432287891109160379349200135684143709857159122566712054261369983659307249217351892124557873084648653296220565926542701847210121325642972454941084077099656119045651548175607707261585637519178417071102563825628450637947674256776474035418109866532396294946821823936082713563555424808947403490903943632930815699161312239950935573771242823544983124406752324064798695949579828557494700246182381265843408753253442990190946920990574427935951538426243417173007947921063371355393558806540419745383704747981172856169800977183635110988364060653041055425504918529815106756842615070190759057386967536917176003307717594130269942699626549384182599639280012340398137659593245563542931515120410940893542630455762977874061615635924386909256764088606406626135750490198796150712660322379843934827530405086867351443272501596601009121800614807975002973350840547317082303914778112628100307312964699952483452088037154699531659763264761476429238921205219846266759029382836910575754939968303473001194003254783861031389563279600765863644490792026391523048758056288745480309466648938874468116914787923114236956971021693321657534558411484232707813516953474833790156607033631235600604512882611699197021174475993034582093571031648147178933120935762298505967206081806906917696608551252459833591439139597278782112378382158435994585372430858633878775627187629029222277623221978189891860585781695676137583386240499847987062055750472435051486575628408208105922186488999917036584278213513478418718832631214074982028781776929951683156917185541121339228680625941117575082784733622230372326522409019253250937709200434466155605746341701704679245806595460807757296310726432020349527953975799303413073425975916746668805754304185680622719756586284992403176536088450224121888114674491399599411073039277983691764881722414148556182397316011919421441812776776494530734654025162002307587389343546565689580893994808284336960643125664232664185239619801423016330298684557612233985847503514070820139827912174056324179926023072610289379954647184049028924499121774836624669987072035083634798535833290103218602076777218037564878779197905336264138435177182547698760897774774446885344451340608164096031362144497385040030705103162115037176148911645099773341020051020635799466850645072616966956788926918835720910961430940311111815837459237754925360898364214176849889203006063987577290721903373504188025754822326702481724632211850229376403798950170950709209418512996175853876998823725600222347237290647962113135469070798625259576690568063153975375506388022047221227408547203992583827064591081945691953087429546351406098253386864235076513136968680697524528730706391245754852256908048793135093278690675698431166840481100845338490028010889434077242829560332944255884338883831128172852234577449922635042319820931811052482140046922707269256823353657927866751573438602839343787366840999215258872177307434412858353668492703545987755088225752010878809929070284622105374420585292222744020861366459877858927136928662411656224867177976890867707504676406873251916050276796480415029047347298135617169260089416085077845961711531108934720782190921043231393929884927211183936233431847695266639404677099447435570350172170114803020020040061363749451339328812482886060747996878892179964020954432502362552253060693509878570810680230587067488789516111097856572163633124904147019164443108872318069440993289132665685652866602714518906494062445051853161081452703848914669693522899523571253226006533274102062203584503788824583458363349825940689590744726825520733742638248809215472021120812019828392433916725208111717979139539149421545993396955262092720385525740233268006058965914247428023040619505980091753321619947491815480641307485096680493301992448268990831188262344469008966589437828185014480712731758295325537132840218684342159256466207149656119436157753117437787453207029126357248735293288853267466078910225560082550283455481792724189899495307473765099224954609553564939224999304438967845231181093376303015672437244561321293877645410280005432239925329559993680590593203427937259156933859397662416177462689642871927955617282107340531238963063144206922964449016449104157284536237592001434682598724395241257886841757966432168340054242893733469599925314455514643074242092886534965961983069757470328427830848256792196617685885585145909215174953697451532837079181779088971943374303377487949789959167276386544127861169879032325153908653790879146787657245331173794688172318749734195047232242283678053051687191176973897130908116943026840767951501289408875680836055103446507755882829540477837302770229397351577534303307799674675501246554301367714638009436846848967516871776121727487648717922718990084973951297725652198611462313186671144555792519962779078417827627427586694281039775820918322730139788661218566038761883071383205874556663220706666570886059640494534662633878487889973787913913641431549781958092733844787390512734056658348376224791363592133123213152980329971081045950097519612586518022161317256973232147819371927981093528920024988806338735040746278409246075901298291216878355604682818913153573040063870723675600402156968015598395287252499506322204609783893893060560946989671929628848245588890560721115146907785039091487827585558582691923451338543360904737779362548078863303677299583816930525543712487456983225727291739358198665217994524666039643335523850215149355095390697487634205866994486824884044044389145098266849815184344481810319274308504695537070647275615695329763177410978209405566828766720513136895804764766343240258952144802097483204324686327129139825576720969620828369633982025390650256869570162292600456532463150156699323162927258654862792194924880911070221074005900451337927411246964860557075214207956131699039579590461839827940974454121901952854647344497213860814218447269598539005919105189630066863430444140703569064942737668515400156961458358308408614756619645082952401297243347805043720388391113365756771297057152030212053362967118308529433283946079375667464781712433200876725041789734956275307193472744003750090100677873279862190905916979861312504906414251479488973019930934996184659676296977776819581138676708166667954439691978678181685018657043598536534523294299134370439520917602335705134137392258512590835015917740844231971370037123154606912801352824750300430354457246341635819166253814278713768460448288051396383431664676047732647252047670273390872763157042834631222770400519777581031279012078341753763261604466134947999829424088458945587278524798093776351720328926156411160920308087049624273065916671481472045918394533400731470670571866013636513886424298077844778541852334793401162066282612148093391947601446955243334220774282362573422474479977524682618961869321590238461137499634326537941148728199755081808386403245277221579443515333825477394628923935803286507298191436473374295208453430974869170013107834521696001434347150164626826002977683029403799980729425770982827491303611736644524694656446952021926910332542501982239978603560384415109849931172512230416344030568925411471545636567895828369862338888708836959490942903312390107267191108897946200393795793551475396799756527156661001072528702462450394172635044435074919293902138080074541164134891369450086809292299225108169686135027688647201515067430741222462692782148647346808516269059633762487751795536925176749230647653512075152631566806921100548131625121199204125430446660913477690931908622483170520974427820696722632679974355650729378769670509486412023559567815769266858443611751492034617124320817564959998167153600563535143872307807503197151215463747705340688369927337090033211342402461702234621453148902590122813567118822350452420968451183996609687927413146269753463465331813747110559146200683688114302321069280270220222240559532835608112497487279012584216602125575419152010177756735381777046921435305706769556928175403702822054397663974762609378408580854724128589047685007708776553868845480638985029867389278376837792850081408953691077861468796635313630109037686189741878310942707149959011080752772838037522969231079536338689086441531613594952845125301396662793355983692952863267151276680150295589439811813094620672612422461701703874125421187629176830232875642340074727903001093495149329384739851469667991069692503676628062330294554846768401593709253101990392942135572196086866767280675096189898551630660288428256473946183780817941037497053009365622044654642884827200641779923419106985494483952316914323124199487950344648040073879730480513846598149767709673753685056898159860980112135572430940883902753797195847495223451404607061408292112871059906549181289879221341196091629953046723513545675651905033275578902497978050875310717251570212794225835193146935969300973004850945448999963392425872821447691600875065462670899618137550406223498935695305578269765857263808671585150528650740955797605182484544622775459104673343119074797311528393515273242673938319278591923335698324511928306845395592267931983755588796973190345535500893641588465258871386585879273351761409392999440249739600288844139293802807114441071446519747934195456209330881814237635120311502288076525877333471444207714079018136646128280828082364467237844929409850020056631098183384071733349664349315323100624317618386517208552943692000823496084235883969051456451249160038537447404825640261022764727184928947351136411566282807056241205343021435441949928216445874951690239691440627510212604555394570653642601729276092071376008862542582919131489311440700142163845322853898240393400154900353618307980484193419598581016706597241712984612371025018159753314964833924159296488710984107130556169446565325252072839176322270548581388951219076787980215671488894132615858742365508197739168594216329266788438588210482468738452420311982801568411803113090184632491712658718357386854593730475015788631020600200561025072229601630859534185870370759252832760843188807263224190469769634576998380646877113189476961402158405944099117724265505672086128140368930057016185863600309106830762542090959428087319678455699354752581368409424323962527349113665621061818972459462495725475156655236118827184519864852767780140604916837184494397568947428677194716146806561783640647524957245466265825020075096475961819412635050677208858863195914491504501332221538917329691690853763187101344663269700367768804477978247793636053262211988597211117092423298994264246613056973276627892304091703967164171606184000097901418907544497261741600065115832171229547114189951655175500651279199114466709033341218556061327774112063161551519028654394755112068079984040394774276200670005097148956433654964384306774883411268168517130878313011718474209186323314723793034559166829310885307429548336696020154131157999110579706326564580849335474699507959186266664245843323517648357295006529238520050779763234257509081468427316809012640039450913280101279999722787243594380552566535743592172296439642751478147999959795681790705637181392905156588739362925123066895885195046944914991421464245833501004695499108527715059103230608763961827777371362650871470755506814664661250642194279025019646830709186470567985093830099084211331641206840809282913682804809833578837737223024390684473402982232954929304485991080152643874717978972915827481294068573673065467360390168288980730079547234470369565044092896047352986579521977698828267899570819161833630967618898666077912946162497714456500981748645129354165428531407864261257955517151302730673841080424003302405680484117806841740385706129003682812826644837617703321649085441991996779159231392749237389532793028297161672017795883705266577962518707656213438865813769425175908500293473092734917651401234541599660198372818171868181341760523033982029775938669701735680013566674917358524786104547292813826567395302862764644146523960942154675960619779948597369128795258566371662034044177430249485357202976479696763203724536989074093331511396160384256796723692810643477283076189774908374130070910550758898701729186040607744382503795626031855148360976120160813929224748872024801762354489764019646375586610346299451113649705041838350745228922673319349938041360647788182381099616421634566478049120186809533029545529387821075022512977999574854507527457749653268439646965430464779055068477878190039269959331955129388400154668277065412001184933879306754698151897337397164786485288328200991389981686404007565002470233020548186420878186009257482225381999671940114307957254400872784148837753981141469398515301263317824681293614714924079709337375296780709221369975728423481688772869019553326422437538033867415181669725842809596347560216397174441391575969929801864647155994415576898870609598135923066694340838299986344160519962805385447156147652042808247717155072070993935587861560060753001999540348799726330748049001623577590802602368580002662498577003824171869980724474086299770350837446858400548835720800405791855935213838970646849297703601406515560348760570508866290241130460305283398923019785595116729660567735548154496531672137716104879150913019767519518443078966276555304162943506554475396072353363113567856164629476092385070860245450622085518140311013531487720123571477507044646632099373532075613570156444523313694819517771182516764577517108579373400260860689574565039519160162097620985238751870377907927173839889621670453394083937909942409511645434091010899360619477926463058760995359147447586334728048428505161425907443364719513811179826320446665771935576801885381299435217686118184966039202563889990245634830774606198675578675512309452692317519036656856156278176263591158145597858652295778759070374671829987221001429036990729391992739993780306373534108950899292931543609501724197284587482788103979332649116392581730092202583099944142691310116531460246087515256553955877133718411604758709855071551847272401745397935348550963444318606208912843777756444230349847301000755286065270364122847454868647110484586443306277454803118257707456249399735421375166273644319449366769049500442843832219268719030175867053544904907679629617823768947600350703603610829107563089487862693032903476447556530482561595526158000261694422733883855299083332719144766532816522164240752573586176928251424845636751651470375298964086227337835644384953071493837746492541054370399189641724368024888632734371159567916839483956218130968330544772509079047955955332894014722459175939991549096061139472810243065658902303255121886447158306073491554264458492068059943165161850723544480791515631171206726635691719971332496258180289496082170035375397357866293682609533000347346399167729874965411132107955757076365886236286757428266951012815041228609932972660696866790131772651812228644786953114119909313051925928149943488385973166047874289586542678974264842529140073381245314423143610653330018243688595519431672788187730552483172872941215637655396829465492103126650421082545270053423351157718121740283326591998157783466775059557462904257387525976966440175094633737651973050289000602529441042561632498438155265682002595168530324609130999649919524329348900056353999257623718731806080094944159578425912769140416118258638218930336558038169255900655501348103793553052429510969288996897822661908217204250570631285155775305093411749029432847420154914292801618662490056521737323739224714858956853959565083815486262300739996477825361368496804442705781723125446548505106954981518914431874604375446915004146633451429906077777623779079156854851973022048530249593500269220387711598090932893519807430004711772649242373210466692065502822352566041622986633948772243480639151444551963450001218994913222952928560464482819193715602853153850986704820639247957711156633182944047753333835977644572442364647187095633261569185818024782858713636766575659737655586846510951752469611952957416214947646835331879898316447648214795558840558304543575572041412206675898834399105472759586853987283029836687557318744383955713300684784014732391863348656038532056432999706750173204318901854257992044755434285172915842259034489876679083803958324650478444159245749901766002917898192572279931363423749309301766675172905336907059287724890719278376880668582188185161697772637357821715241738998365078688466095056021576785593289000981981571872438973601930501962974581583261188945199408079498095910558829734187883377654460030519928381445419942083883230951637912736076852456005321509883251244705761781352982196261910234634183359439794664979879915271750411039561168098587284141402818107090884855346300023334202820509026334462186485814137185571897782848015168045080485677614460113331409535332152336439647731453797660843535471184505104564205996812919400445761744452586547961100465064590899758985645755355345221609360196031721682613361292685336838292378138604227461734475327461115861946405694245810341332685260274779148051305323895823490263558296479085557719651212671473684838608144958404910792377426782000346090365614923041129186074247744636511637869607099238077881117395319314366577556255421307352977149879269578860837459054282398414144199655044448093743384737006181355838473817904918366984399490525953703282144775202853296368767087251534321994575174323303654650250176726236151410764300333637869828513667497016575343492106803901833857739340546266294686604485865743525977970800881630313533628486944645191035590003169472671554100147980621781102512260551569352261054863236083732468539932549433620066660572237547415349038195067754158429464200759771329737392538074409223301351623248398486672879737315765350592543488517098728227072995688399086070273598698246802531825030450706118401951768302360598118296297061187265191374437025308003154473494270168566955644270267744893146740303877649373773015495001308293290379205403666360836996598340307917607136041525268734867682985204091582330779860535895065709938062554154416902558408384417908783962941529474308893213877724644779044856337178023936509182105269675013389623685096721147983080183735164847166073317406996880365675953266663005599519358786811981045045774934825291486015437186870504806515662502429641660709486597644172537205855100702240414480196734886035993346124360743063526336755204709018686246827534129532270536507673259242271091498390326513069910685391480267545551225425329475572724072874357673140183503203451439235048773447873032524601073848400386914703480803507714352214575972330603548063131232345224063356715687982575622938462890435682906833173404637601231461821694033683521361262269279508555143527607345116652287191149908865667039944408225051560674621064622572819502012588900650777096407246268341027043025254909686245645127703982602140544554093376662586432370808001347680306544120851411448190257153367931498842731815239081904336451759689736636039739139045703318768559529259302813272973445924675149637642446006445495853569494020708066593963924481575283602994666256605627290969027691934006575289651322264590561055059630824798890048223206182659693733691568186766554416965066709822322883805488814982978808419762410343509125780984091120487573480636735297891142049532308786442395339619368506109087464805449291540884061899164946900871489887453839150556440963159415405340758904016698061815568682735326576788025161264515600171965814669827688204882331236210876658871932868748258169296146984233994043651331345903789239209879764823303986752776103730505005102509481671889034200709437152000199257102869505742363009386244835120940344397500078725143302826175209939232876253639621337252117883893807463116191375103182973270374705700513048160066525577460140028309810454184888775904771031700908611332443799172341977593150705989972824514315109423505411397161408215060620849410430321050874120033197951824687567248178429706986152581803633774198071321953986089852751146050832904638653217186902337645192372928745965073120975267839516261114877142106467114280406216785037418505015685841547433032014739172613977955742314027386244279549833690131142667764463167144223264392978739648038951464594737650195646920367097595960473643939700523306439683967813593691015092844134395136345181780812252051581839167424456911456151842587282262623719781457153612082892859493998392732736259881570033875069646691464853600428819123664723239783269944895426353370328940708104954613325811919407389336908312622222726797272407125740444193864137224364600254544286060595352609040790517672785217848705630020048636843272633698929925824252077634449036381635799433366753036723928997041359502921739815514779109510215194817666977254023987909139123971620421854028051545087333284177020018040068475778582138572766838182307100474530051391396677163413068463897048822111173303378910466857005061163383655177103309523778583736825885815614935903563443966150516176590583900608404202217849488096389877420611198725963414898148948506825374962201616891513323054301007427458678957430038479942421850021889563720587805595184997484217674686436754366974898021278706380823824600721921746719624493183770024211760123105795611430502484877244528072108273786082539309225754656097582324439119167067608085135386408818749785147348267618351720483858469436038554926045976825290085186009358001807770046716289524983822768191692329225379391421869985507988860726796086228128332201767712179488642077789832797777516978133312320996379656033668616648656105473364629013837455451443564896247764082483144643391018502440644719485257201388768783001044773269582108772352720011060104834709309009905985182462181844254330355628085500835604020877568453838977453124860585281502817716833015767132806878723910952577003465916790096739003022508020586619171695237691101221124711423105409355585285364713635174987243693505693347386157479976312929589652673333737518884880260028202935627645773153068259103709647082975379137283995792480518660539166266766495924419547487289666202184012039462250113418807994191031111252284446710245805169070962315526636316238981458151315338361555729751185707199621121887179853813141932427455444428014240904511440338066153648098915029169391286612571098760615695915429226644017479247623690722455099000827968950474885923052712633465876388945303889598688469639484112197659054784339165139686542967613115258696599076495705713642999796878453854959780056133597452909832656018084549587918215591796460229648472337937277130987151905815608840537118867378961576333093805278876005507857040418754070706343386841124508280537712490430944200267457040226963974459179115408883805883618346714636480359515543747023783240994718452477222249710165112537990168885481162063318827147026310780463800744380747984998482835696718493854915636926640090156457999671012732530103983759414866786254912561406453604256551192306080845624180475556218916903725696577441446809415106189078619511286287188012829828132261994575453874928354369257066849586041153514396488935412250692038480905440260772916778020925115945125591809976630012780203760652701830541525572033197431799992980277471137430569555516598228416789426846497352305544032045717102406183423628335754178784087107025483317333967912960117064002522838631988489498936457072104544315067769603345162867098270090048336372407517639440020678428075533057417796046933739603895306690909154254752365503268676557605404138042625587306363748225507992077648497250496965928113657585653556074359708461580603787881805412846437868770597888431265645137991805129059944781642282586962465576146884761489357741842892412480517091674434970081106850365776594155733633610985718674346117326562320258308529067639761447485269548249292041982760065565792572072791151889031697738637960891631006175312017432834714156318470125327795489224369672713014408965863460308968545565660787844391887088536742393101075168264686929404076320324765824765398454703372980023857268163674643085486198644790154116070725371422422177567345978696330160035897932986390502752206560225705228772731156191237387030091517320227481032743074574791949463525525335899456981079842310698895292888915923082271650495436898807032367194774078673741427569767641421388869860754171334692590086476211289496307901367874694926725869175885430166426908932981695029809422182903779360933803540783983006498077661832253444461057194772546950370528341663819633948267830356313069788921826745592828950857785546309993520493048167989615381078522554319567500046671857354380044726905540838279030954815799248432587678874791660158747882431909596561410810255219145119718256154020623858888761876191472774971522687577351818240228091725236464498702951282253231108950312217885901078701282958152246843765996326331217716984129248466896638883054177628726078414096518095281220022783857495661258693512672993133611117275966489515537236266248134538683567136861927394244225706248606827107881010344908387800188402221479860376937798081323384936987027748682900700835009374293044111490552792425777939857426454329993194410157888154479394438723132334942138414301522414381225846908530608657026443117800413920245899041562520280060022405970044721342821843256141650505740666514972173050924298893979243496451097202697389073754503301973110478397881569166483931016923867192773580523385097337670736485012940826941131241788388450519277935592315938192109053418928849426766044697589664534282019497473269083929555773867840222432796978871454370156641988966182459896751660972880693912781208572989773681259711895045010990131736328097636343389015886452497132029031765146017514039778092685210975326899238198574239464190650850605813896662339471681406188423866626942543385708328110610382301177527239388008311275151506845004152152995064729968169818113268845132766381651616362660578348186864474996147540979924282831378168349118658131834565389664426141403882877278272628081085867784753212614160362884905790570130205453769977230914237748035468472817347022834854629659176605778430378857519853918081647782384314351405961837925658350373181113343130018737512928685760842962381333057145981146501480901632559285079470330095815776821113242792076917601832240364444390114188817082986347601466452998435590585997507887024152580688524205291800019546709566047464122803210529594063361505999770010770889550364838889576361205571340359179873589371244656293347369185633653232696475024718595856143392892384347463825677322669275927300613063453230472322608886725617036176029254572494102363101563910568952709073876280221900548113189855257340277166687771661447258875001517592583269053711881330510091778095998367544507612744008810955838892378596336702163481931012244729757173859085081849511522463210541265466374915459134765486964843309073412550564003798522692683011409754289922373438279638011175087827978118820870202282211900917750805613375408572733931092063630456142304156311991572310344271519751292655128451298926105778612756692105997470396959532551598497653058066604797793029345432636073149218241813017640302521202406432804822559475417656486941148595741686361155730321222258531154060114008195664080655364063210767342847294492725930604150791879592555194061367681957942652763377758262048573267057632952623179684579485271920708712774668406928248434439384151935576292371321756410627044131683701947401496897351296274939932835639587963673499860894538259547064729380714870290050459508042963035554839082433708807125887927620264454326380451344245765257423444543052758915572928027165196662155066817495543905494049666443674821259267225818282093904232559847135662714160817921554488347175397014335820711390307772416791370744803397699826600993412828816625118653204138377027197220235597077543730507376756099737653545568182578646736147409847380613270167383196303297798691820684272104711654171851253973579675503861715109993257276527700595616636783461819821212753920329033593703229883214547351664852829306820653585372148880347406889824153601382952836820975595096260795354637054630679178650046936738234974259624988601813049543785487830842755255211472277732458572026153906214794595773824414228068627338120583254723260478426347427118480851612451528080315784850502623716770939598938084171674788592349920389739102839333135612938497645248407301245828151384178586991741571218552350611308998720726294284775357415785918196944300924000551154372670929482343625697496796611833382300289530906885890670817336470082543671321678783330246549457746235822171042734076358146945029015669166216072995296198128941753491471895867495681620939989650532767628359387813448664062310549481350075969759781358119401830996255325698299075959465782395156197640262880131691298526187612787519153552611768352598500458698651966479136729884336537769338988666410728267029994625818692395418733501488853440914477972148893950085035338743991662001476995013387819547351166375747437094017524509449693904411800602584254700123236545328114156630066233120129206732450950137530225084577359852258610945140944205112632989040789935139142464002301859148123087767530312894081780195980895191208617104103446159863146402880939766424191499698279531220519351642790075392675028258173578946129682955948871853204232993451040082017308298337220031883931566564098030099491345011809602308417411561708052355964712462097921194597519548189490680443603602393748872052404058846820092132751227152108379962064220667178554070982135874034718486818524662210225139107288701340174111626877780625746708329991568807167136009860169946047016899492721289518772040401142498580650442505915654268464608668078739129547499959067670574574220077388358918299617895773387841559712150849534276087007216523201987359210119638532982441946468585218293762626614263388952610086455723437281995247336543605161669494314210046311252545519607855175990381262981983787072126868226812355678426871651354816223671861240922221597827907491521209411600291156551429152531942089480233009144315123536146103380253198229748981793792804791446867881676369975181573247467171994469808150778611255954194348343590630118669292416294212966111389995145472645431149430400690923141061941256810467926502283827944728439262544414968587820721855966701257187643602469851603788995694697178788896070892665655280447326147064066879766437499938745099654963347826627103106590821774617269242408949382247355792308228659021059678532538905456156329403463482952109033588185482125080109159741318236372437005381591542445098495535413384942059713774610267117385558965751653132948277542644379491603289263986756724417225246256815402602123089579161404644585110597190397369642678928180146728716995956326633376819174402090479419310640497115055555070219068732611503630390411191482451722699878772139257758205160011160989800852133555944358919361185731601540211537130848265744233707167679215165183663708960935208148771905262955867949940837063858751495035412225460351135809414603705851856169653612284417128131764877619660305272174656022568647523760110553523545777927847459468131314103948255056655129729308834511869550280177755785085890479137050088779388725287491038730165136910156582307756921558587305172528744473819911983308541006822494981003699168306852577375596315067992922321195172544295320979954932242925202702463968891314072801674072851490902378108353931478803183855934009988067665316053745680063670733734967858595121927025882663145046454982399430032521554867268734208206964247776217898624216497172399227614773366883383676227642135948409556896934724049710675664797969963320908212584675415404128146757874029633870312873722055295928134376449665357890968821910635967524106806851139331648772204490293086133143941531980428722534005890390651078867747430919375967333520551475302222416430584974413543918100457978184210905610316306574090380205320310950332556224468754188669583164806853250272803592896771240884429237771389315434694861267821368074963707692060890199865961154795423020592860631277834423710708219254270640107601431558191001614565733613545159758437415661082912061909736488330525003282151066418517537009706358686481093799234884989490269328269421633396290569106099084986018952537949908799507119602304961806332843024258598267872871009170257637899501573099983977660500558768773521117178436695144155270774721227230101854970038688779027854146518477021293043136364954595759285132569371324707945973548610324917489812688193009235865467681987952502811505430319387919069848190671938179668808442255562129153670319162422678737449710146382371888860179895368573739769886451423500775521154157315213949307387161297293449293413523486116350425425557692656045193858792555833558692167980843116996288223918341126771461231427486235365552707802584526351047126340552507463185013870737604199178010479716048601299828957859162248416581425481709806588612270474735799188715487130511064951618674154859988296651838355059267914292887732732581815860879704580522801912064020417754923008671766891404075005092600991278057359372918958077525946184018606138907235110743952283429833907832017090334796436093380298800803350871917341121757514732849205806434867751747804262767881128608062466410339120639889526066844500030859421673064971873854462770852473424177695086424842185866558543520901148518299801412708486029644499395048326434549584796592930399758300586241152201027417233298050095706033332367603337400957984782130313368778445917484356687678902559380340889355780764820365632885627336473269938002849652491773125268597439432020675559593921188059918894990477875523570188025070395579316032745286090245393598123783764239033097072594679047648650768505835457750411425235691712854265203773539210899164933188117287979819393665555558746636519882242322749280694934852725348327413013634832593814398776957205925961242001360613786515173221581884249178012596138962473645099560594889988423399377498500288111510598076883089711623889371785927544430686695333817326357108044377287628270599220584180290028161766153851901747953274475141153006298690918558296354655083039967077536649459031799252786286712767089982099694180641790690064728881122363450494585221950646861378016984611002207628311619607979058320688578804857851150583224707381327973118187559195229096086655068572746124077795080897234836580886151408237784638575707457047655248473662964138535719332923653962494863297036310765333610857957627304572975696910063592500379565305929545196666098389890319061758849432144763608675784405372567213482885346088568588913067443533648261403179609780879907414159316559324222672379086622091995458549264898031895052755537347677315036212370413264606608933682919122737360358615049019899107733909157948533350511784709699833468057426056864152981803335483133124316118665676640648490768890596760153223756188735564542498110324225454158945108720984748332654663882825041314584882545717877576469822070692382133207735481173675358185325537427498114998449110621466650898162923513926494114996953012474108196859962438323886711748434599357735734529285117419565750160486487444537757354145240162878256937695157109270413423121710210750377321486153604207238659273577518944785763034937315198731182665560337236341769229597382284100128582986607447276813507866630471381413639279659970149298017912147689177982976805034659175029421535869999544997261939826896241092262083430665608218745295584939088047396194012091238886243226834219518448684390240840918309812203415005313330288807916240053043597211369716549184851864932174165995474693419888418821521083930150768488190008057782261849408318330489975355582654413774655016090174575243548665104964162334122118347398114435457875177848024838829843519079365529218751769987748302375971899278558418959662760617173773847914683627334268527338300636884782690729238744173714338168498700634481932377088040772859001570124435892183679868862603205095444497061720816077514526191698822800174372719606018338299860751787967299467959143876509779096614902421089504075968490641394369728594892096104619193123185583296512874416583031746489897546686502652137573657058113912778148168601715890517616030637079954268994567730820031287233254534279053227916718051320061569444489987559384744823118084175192008048225104552736676131988160924930213337271513099644978172803833548995357610885327661206875701973359614651867717589083551848844352209212032703552731356833391431094550880295508218723606168327878497810016929508287987547484269661491998567644943817190147186507635509223654927301949121315910259849046991018963696685320329365516671110532555046260784897603552168986220948537051518131207638893521930988525986547337001666705364444936000949882017655423593564307371444391312571577828367488330033301740857308611907194546109602154593101258298463167377615060717281630210962280949628255930504169861149044082066823358529473193809359163490071741998388030778253752887321936341198594565283193400796153813715041887682457813276322526029973229540734053500262131224862041686616656207247279743223317621892616001035303892246284911793900166496836631377856797562322880160920661454739948507729633838936701236258242096741405749097325633445037019644982535936156076263303136637510439728879867792450612168332013079780610985409256806625795032646005470509498587642591047700042067591740033761822471089042692483289854964211138104538110946877604695196522881829368562128480703725278639064712670276695858007455511542536461864592894458224770669299829001051612180718637066413753446646460065214936462467342387027156883328963133433047993786561946554349793192276397968896225316351411789472801450138907393653172938285142020868143532425981128375997278188971721006679976007121645590452849790689655563679364166528690586755531730315427149644425114649771950023751559757232510411097343972310115193628200893729183018619989663935515346559396259633552339301275078756273178455467049426486537482115257508721729436570568668104752994391267239659917267047010497084092440299539163282390013061720060384137426268640389271206279091415514621549351303739817696732908223370833846538619482872010948281043454333028025895741503705713899826425381384030223539697945767674106115179847857169863809952209621463098537542674117211932718916583980142291024429721995246513327926362013914011150784849446447330822934435039167516040325222785740406930254290176711376403282083956189854864411791541030180273582065733901589676776094703127638024459582908225659299281563934236891026359008191364336474751880694532286277781194282937404330742631497452648350140450849894883467526447150277242518139659649534931444908570723113272099433004756105437247876708533870263899382938626214724554973376700999024557829918797212599189262418881063149743642065306957231296275795563670802608778990143089729133117598037296443979689079758489884926755569450671367491161144711043367198521759109879224174570258675512651840469233122163331339367109490346598089822541132817578278415369521537176481238300821160432266694704150056137243473991818770655449630341482080694903097043605574527232184805022597359867821897062408216928361399426258282318067143551453463146410287090991073463353219364093462236780382074421455608032102883933458945479296821273632731288833092562091555289998325377737778428593348209072029254232450238878162151691021618599973599404652063416166727188586450654448369224802577287069931145651433266277595382606560253403339248412092332176370557002372024202916170587942208453476761628492653871162264437824588496000802791825450613870901175972524730982760461148590707674036969559658874238160497967919974937652923159119632157364600910792017874645947263670420225531129187762983184135478658527721391726603749054134010785115473039638305691326998126466076858373236264619236443336304766561698963621614792795453055749706138293127827684718653781071685817444666871565957735680920439008023116243803305930136994347438689536321098483161048424488785816640256302125344685199780799802937120808493693728479729778605811440818684267127963973406721103821249633737619285164311843316844181712021750680406391816053726309082998474657127482921497819015488881640378698875360178161701253117079081091121531006366679876558819794410809763643812758080770814032950211871487784347089661277699907074637175365786428689503382536143140567964198667557084695739978757583891035043286710087598805047873254200266328261389404342513453076672243344090500758117103730839141501973617248487007854813999629580142312292574809368665507387124323585634077063670520289939425833521024093520233396151985361801295727365315816616109610471926127613589147306490584419687970946472546762404953195716762396116622862616742367348777453558939103007159595857652627761160363505708998496132386342417607316301390005742312859858118849814453337496979812219130571448392471069257111579045465110197419923949477409328121708348937751475601163570809547783698657928147524142168180876080348311368275468219101653228295500085094124317876078852784357577833813529774711054186198794245075656547106934255890328677163708696530528648778924316967162055177694014483441324360232930545302549961784522529228572329530448555108160529911470368684958470233765608410223194204421415495231016284299770917058283183071779126132499214175366066776993129936209323753763181680377982204208699351474696576440160718022453193306684121552509371171465902540607683676515904582796268608434605946613404617794460990305426522379229939539663343623799448220512242486475661919997678370363215666018104560176903588299487752994578051512957249525571210851562473755064246083272410758068795148811520684531891284089170500675836041413037817121400315763398410200379060837217081783101538564415622609814502998534904422803353718593310793027431978519195022091826052800798712723516860704850830381881624207773968566350746080528068536655522875458138375081840477075818191392559441105564787050903854285404584394286296926031834591168605352029377186582795594896834118108761863027841183107542583053072655526307457041929861134403258348754166223379355248611062286719419095486213686173501932961493735581253799110267311548264874789625970952923195314584377291402463018139637622634286122377634886858720762766203108594747463845614185647456395597969859473758926876906394482421555595396019322020648994186749680923840187585155428674476263669402759054704923731888075729719026181315143816746959976128591492564173536736117676205913474548985622702996787723723788243395708292464283439848303745808450920435427600344559522604777687451022417132654981815036228886340353994767845811316801247604745301670284580388128538954972718047079418856730045487599244715821247070868777372094160024179888996985561974928737355715636131758699740623978334383387190674717572447580711249771337019152594802609951606166484621254008655318377997443846340887227445492623648504411686419368135152013680867807639002966549580272599664579485664363794976785407188240286445727151646293172216734941881189248507155397850779244555505792033247197109753743076764877321123397661983062532608695941197175605090810683202206139330635488249710845707479705221372483404749217922586521935298670655689847211301641866546545294051498017318757951681095395628525416854971848975744137355068673027281001522633085330729022342235386615958203276542925336527743507608484580297855731299163184765241850602754681693285857453356896919620115841895976279763946280215986532071230094147729216535569205733898635876026719481862753391297089984579386040726938300459614902265837626684933500916974977321880026995574495631402206601131676283634848783426212767440154365083798974700322323921040837170693119086915371195685526015918617737619992633907866745176771797653936923323937786536048474617518310614964586914074483293924079137143456145304958279609587679878559937562585926030201105034584382180527266496381538275682517963730841736982842503457160139293294277356848258757141339684852775771297345520929163402568320588497173964918518054780172201581993937713473781018698180451329553179409866373807514105740160600298096274477433579428983018487045057938525869275794951296461549108493713439108986749168797633466076552813075637035844367400134671515169702409060453279347126541292142507824587416278931722606493336058640897062774636809306096705654464354764742529030049524551269907712848477338893371197432211461843227138833999509785804999763118130520342323034848499045904985555417083272613708483963104176078810693359289109535850587239952345204414293291324247582900690987117912241135032890072950460416268430850572005373508852177836811404913740710882524171427583061415986774614349157623182305322450044635335293394052588067905396296008568666486332158383438453493902575280351614672123552049465167916642022382328281762728010425917742086932540082110826221190839964577250807658466151827735117316697343499650597983232991692817018286381204188836708463597954782110296474700877791248291451263983097311571753083569862861018317039446597558646615340932941349217785125272813445752051545314077345491634061871322028961152639534306995421543415643601470517343281549233571330151634891166062672214761793653774188198037033029873817485270077402522987270401142428403458582174406267994201289818074858947671853931046987181326982538436744473577568445746630031432422301067082868654654246171284152539959735859824192967398381240047674961856825667754015394942457661688354650314014127580592164226262133421848270034863280052583967074699086161304480550665893153122877501042656019586856322105400652504536082391690656221440096257327772530751804764517943488107231444526156848873033783902818483325680312826142786793468292882495053440865501359920998151865378659347279896395812779495349964007180841917958785392380757016768899372219608858518874551793192861716617559695650615477114509725986465929759377242207128611095531491369013683692947210605357423250186653085251437096553518334520039343876718405076824213654864362022704961421927470020624711292128031082043235907281365501630057256381547292784045510382913667661727415235436660763354021801314516851300161891297392909407390790536734594988048540585610669118621752566954570306130729873785070189228534291333838274812082485972938889529255868926491607152258392047843931154366640465871031355460916266863119240394401322790902024394665302067849765741557485691844363566534669823400297245989024291475204166772890503778710847781498939956372408210274150368755450032223637053740511881383614679538880830357605337677946010186047414969337317708495304113236683140120325065583311442339009413835662236388443698131539337294960021770311597164866570335353967210336627531187710486496347267058878484804245441664451344931441783159244226962034860179094444107569041628622930737632704324614309523200429591413808884523477896874467301567487591605468021292002307657020988743327109671415844514158928903729009116507459345158577729642458140577015569298532715860106918737374655999688060566950701121756601294815632536377631971930575266192366256775388466782559987086428689546033792254253201032046893537240426798625196429929510179597135324191328914896976334609710047165556786787651988353070224180035089694157166506607215251703986129760104317689825316836851253349698864493683979800164178557186099474795184716428881800673188196792901498257608795878717912177623559774526624896833373396843380868192959389604650409276240671862522219608239373171883102883806900268917704173081664634298254869659456057340319275053488910582967322809902198825587453516916134867130151251966073389769998613406263091913865206756550679288809359352036239322555582709291122446428159338765941601469266014370491531870373931208029447791069776825774869415266187218575620414882070140200922403161357697457325888943997016111910942293936307561615116190219920278308037558831689974921708313059186204302928997494158693598499746183435825221665594910254858867395893992424930609421729963893821701308111733573863733715124859655496531821412471279385455454986847905501721732240373088527413107207584669682402998564769887615909752084955123177378796557773947597516789121420129731278798277874845501704479014169881926190586400957309050953234410151092491022464861776415095618736697070770593005102153320200595147696888346357586358735552628701524429152040043526894476589800583425685806828734990202515591265801912506219790236119568309811857085083346644464192150310927441660062850403052702655656077796966497109450598858703916877372411812731414859180433293486697490159631052729779179849444883978933746818220689163206673178015163757136724282573377371670587038313657460112937679156075989690510746614729533037613142439995898756420964340919783834428289709412773895820516836227649534930853856405324728018675797314262882150452106083632868814042371402403579551663166832715004116728985256060330405598330945802077289479304623928221835865202921988430030665234063868477025106771704023785126489999981863643209362025565257351914886028185983625785174840181143428506846427070681472917430196635461920938483781223970716449291109605292363742280069485740832754105445722322631379803814133209050312202126887184342108270181319507820772564269342713690914540749421829952705851229091081251752686568203738296301703749053255887517489209125612500814572705966439391644757132429544087812829002520555015319912295405388344303538289287695902982011956648522225741356916362219312419612112946591423075026339189895847627942207829296771541688935972787127817144461839903488872638807699368904815503535999587589345259107713579729382354756886280937830290745492455456621071183669672096102680146555444310922296833373493487820818495634506025520369968382729425308495819427000790249808334296705871560604345063718734135182874264143673309402734281947803589328125546680495032760888468514993735141576324009993076061571334101234326037689761949435726247046587679598854923581054739554189055277717057887206403805217166500085016325084439981050335932381520083406572662145100878429989369722836996118885523739555868495708669913090091000040094419448337293671337146547558127320562815994658869933226021979472103144000658894543563812175562481923078146317808760698206925205132940130250324446648913670782132127115791816306409122757613432218127235297754423674410170162586873459189572052870744670433892815313071488195264510389645591816072224795314100215103127730890300774690694221659688480386405943422430988000080992516835182419183837761936296539574743965367754310710686042298823220528560417058075527941490991300498055187962211266548836964982765965165641877107499022524909785950451783222673344744325171621552151881276179585117861364710468528237600127691797726360868844974391399544623574040970471430807310416816993577846472959567868719769415865195878356757058270110327447705843769390699287140514723482112305149658144784634774834967985744787548211200074988437593964600434444989668770423619531225011224075391727474999988800109514427663328697571566506786655019347933063405447316027579800708456414310275622194870954150769017847882454261702353814611603224522619011104181414717204183078977585196646624866138717673498565413277699110740524505059572413140776334212040745849979386347611342383434651452090810826996859615239580149577501310696066268022001275346922841555383255052220394054045117897253918890029906659595331609838873183123864424650722328290785916440202063407110428725401809539304391120607636007123061930336472275830247883479086177609060839265297999114125567966811737161862564935365482685860927878697750242204467464216563572654642782750047758447591116785221549099757568626683152695101489474846515356604169157121443952595018546688742719813386704340510555776473923672585599160688366187344319520120281534475940736506098888804628502625160847671284794682620862779122366330540268559664761060079325089205276581685549729160995212942714614000949457259380517127328389420881462903933100997257664885870184965585099131892888693314468414622521469867331599432153389078492795348115993838170454990054697509304423333114297253331798779006820979253984962807955303418748126213441181771040293098979071536504265068083914042273992101240878170768509068375622592381278340946774752650591632853321704622597998329042469505512349839343508516147530971344616428315568719649512933162277057053460813941624850489684894402429171872481955108676195601866384799279218893971189862386228086098360728975839177772028252247601049565889542248998496395159839243351391038535022572019895205400997795028863959569989554737401142821250922611101256446075145088632326657238924758529681320354366965055822232864141739214688047167074637680845546529950576971557870319579740535381556989091183207670422842253668106963144602138283917143198801876536393347587426884573239188376516205728220917194947226942424277291368115381797919418415430790662294533820568337770301498053877678533519782846836459637988085035217304084563483202067710187771114729224511141476840569324167744116336761888199143326817667671697730181339512829346434990622173995277262288741021787948954019838646773242473094634946624057711855896936987898830312911086572709493619476338556055483929967105353258395952078965057976535221265675553560406830263363171845506105711189345482537837198372424775835645965935905607008185466453829321551227099753183811861334935335262372348767642411906113085393739311436139685999766310676958017916603948841441394222680593184529921682401253136026196774750102906511205791332506179483624373792824571286483022143806368742780428616284968628271709110951725939791905510867624563063304290867699603163903346477655775457438872221684468320629211263310827026431899355434281071451726759246253064085304277636402050816408205108558350200851130597623543294963580698122778625058575868065017323981852846299872991381641172123174045958013206403471583089277038869210320420808057523206487338819112689053175714364735344087448120547876526945798710575640932644994006910792245800540752761114896805203162895951447098468071312892818380768320201429093961032464541178199295393193059834925739215652615628963513035977744253764079428769331513499023742208599037500183146245191641578966774606520851616280000952213728865746894649853984271893202032130139339028302409369938001269540396661009507596178763023100482867241630023479372096082436822177645319501785016638005737158492504271958655235366633999559910146944737846010534305275962276783299250121110201423240471138381529656548165783626774299218560083508680821169132877649899126824873280824315739054101311960721581702210060462397495384301223212169122849976368981497625867546065047044831594993416570195434795938898660984521081060372187138903406332846910766950894144317939447652068855208754776607910367926071053569256597691276989378678403805660194432387763943620579352863710649782194362577266902370678369557385191309784438526858860818965442145563450530056578197348692611277809122553864578316824060776255264699250135661231066503441499631901274692013204313829831709041854556733795565732635630479632526720464411309426328053093036580393288859043125512308936724706724134192526330245899802522513325030866258478290833710726412745588874270614063388210902495554031325183063241857125090759592968121607046589372292501951245007274865667853408502116306782503537048981341065382522746683408000598094890510441188699270853766825117873378127994109410487031984949214498650860084804504595042435614695400218157981910286855136701916245628122549241977316845078048029694237298005902390138997278061637553340485325614164018204375955019554770082503910496261538687026221915504334577598033977623311206015403078322110178823730982901006819536574912309348452153388902402192721060314021297645247373503917583106526623516165807906924700948946568501255814551096256642460033240181079714502284775043721691322945212547419287740315874038568197525438918911812324741744127436121230158459919461254697906187665213628449170602552368039120296187383142652681713295331908779657784798715073907353718315747036155836232981047427295774588077267257468998694676388980632597562437158317554195686549007670859554310294923174336075482414423340724836126547426774392812996350484771332845468353169138249482654824695847947148035532561038277196422615009966986174122874699392448785500016670855452763168102413021418114632144238334736711146520394042950061082717838550867085440224061442047913920462300995838702561814898905422866085801433273434485584351225278338099493457124257029946089667194858334434895155475353068972380515225319895449925771801499816689124287410229701795025597241491964324170537535548735932842322886324349830184821592971271137787038398125652716895145199185718841585709713501317015050075236905199228385208779522537966445461665565495355166696669069131625203651676785690004605052614253725099651214859433097130536300835010385326331337928095918678972654192177852536009696469617000127207661249109780268048669085880904749523102444343171824761287806754017112272267757839486102099199386996425519005303259504062471663729662675560866140969199283486233665619128634870906308098643984152905294612656360349570020089537040838081323538171463988883515860644691985732469801505466816140830297243827245888186437896771287673709305651339061571174264399362031818457540956693031983681611871331923441576276372059549668621763172604470653802793999164625846669523490832249538649156356734784012548392692721888916597739840772226730234889717872611422252484918467281242394682575362766384701884443245856431779666462793292140811995326383420159897236702173457350238549763629762735838955199973844138057182587325933399819260819112498715252023128470525029185107247821658157834946182178212163133382012068721132244935781552325666645481930570814431451177907358404121596017867898849230399285353553478767307049493562331054634530165774641277293689883267054624890805515384059019187593538490012789261214974264755908519922210575171632060076492535450312731804552507043189433171165476580761545673457375715004380817128822248480026902896077753126393574640905500326214767218728293071677633540948867043805945430955616083538054457980613461788380900513387254622036303927325939256381384732708755515838816607393372201909843411128285129927419744322844690839240731566528357748051838006200246659058109777072553089818908170184301599530574840687559030337059329283004744999223627087057215904845202641133101510039793318542591931987877829770422015749665369645874187674729442449287619049145755060737043901711724743529823002802278948635575379418029735717506307863270286498362624866196030853406097413810937507924696593131442396487005346081427685829154050962918701814096772059401482814723150297305681951162580374724816549131660733270107699602451712542334477663454621815986254211747713059499108978816431145066926238807184733751278645091330406099725404622060952176000921802899988200809783112092501734015257092231961531159979393868791811515965859479484308158313903058821348094596886596566578992156331294645744550598266784590695651383229781569097705919850914034605580968093903438469693114399976774032185757269316947526864182306549618214499964266873157706266483852278313564208109407490263662155745275209622977319215347289723303507987612868407550059601641072346064564475502339098084486057202180935433463520654242859737301845841316908485048665514761594712823229765614544013704615268739277467299251488137402631392748605699776997442785414570101440088127827773256992243346804493119093463714456566958729910487826626073009003084156226469199363313818213833362336776441384702224141655344388453017398643940616523361767063380802653537362552473661421696097838365246339404525217961798194042771321919050980620007624751430016039060732458301616240999667533512646150084119492199027954540894537923657740201969631847754305207320585919611337477918548089799547076804280688858228363208090963481759350822308295697901098759195093051143312806352326224050058159701839543874143143207589829454856158596205966465286353782896297120865089069238256278647867221940741343394196324846407775197879909717462958165913462170774054820878459413840435600709007083938279792972250495202669476930994367409760847103158881606935804815007563197291275820870199309248942825299299855798244000850701761284215353722429310606915992717381626620794381520358177452284837579826955643885482636635423016938756531513574629368531035221428616467106533485867720194596725924739867904486184109686890613098809315366874206136228120034318058647005988747636682492508546056447247172059275212359431524921594106668087241955369755765803407047474459036923227619256641716936852062490345384069277825222226843423569704774101175208786411181349533692777800269282329056709064299167279391691111555664833916366998611561219144960228274718546023124483874597010048679666199053083907452231893141252351956820760762040609420394916087579032095828066681031965343202489446007398672842324234338613658402390419748586632175415888951971628537168780639083511553217627136877619733733623237231364878101416218113712635186731273661617380968108842638131569650232356646756767914379948639623591413387919633500888028417266133621072092524365237384127734639456425695540633746303698949565608250856787888545001567810125514016939787407246208885312430123410053260033855126135166828013640167359430239243571939698355323535466575384472952735770369569205755036135066416504630770348831591885780954565795294675356715543243451901345700514791856827469243073647141588179618791258803103692708317303625530314236531068905455298129512294079014578073186455597665447536228324265681539294156202933054140128245164293562787261318467476148140520003750527793525210724009801189974313396005323774691482882708724784841588123828999551937489724270579685568777946526012957717482297908899358228932342889473854338733465440143524862401999493468784240740600047434638100566653727499852289418116166105357706656623680521294552116338787688992683983516465320024424676659767348416337646686306552314214867643674065475333777408762981351242748138319692022532053100977891138626845601448354073355659226753221288667118717072343316855377276646990454885032751168590014225610379089775097622318442157523922021564857920435110542026418618549814664421587946146238879167757086696568065887394823758299685188366424584775981608342014901532576185960129676431678636212488570233858203392579505953196774627196430513249839151781486742765688878330109261122173790529301550613673756869095542571258262256250722479267366717834195973117061091262869840137211983895121891940552728532217397957295900291843251214540959330766816541504787700347999753062845075023757739984977187212187884256440806165250081267052937623371558314289492806920586277513246877706264763459068365002713386475005416134659149839495320473159364898240114628014170350484849018042906887372919680206621409494657124397024874808775866861361238464022962640367072468806276523626305579286325596191865700217286624523789088648268724265609069839864079492877359011514647151627281276249153086935575746980763989269889868375618512741580282907269535905946066121425549253562781147868001055619376190214983065563570470526953133517287992015096990424509192624732290178300034397901064116493131162589255160981809634300646491567848874180233210117777924089206602330254926173082675285802341885157406225903488082999197276257234603410229070689636002628976028372095634661646543599366681365690717802735831345659341400845352555766572630258711973345281225700988496056790903608737869181985081996957119361026288962443926108835476316843394974213901920817054411371584688054769433127009817626543029505668828405692833986453197014435325487090710299988055075255715009922335683638877302492051147922911763337721629317047624984208237866901720340007271455986865170918689560859107452315426833331397736478319408360916709372342173899791719176601370922685364560636613907953002562673743829778419821602674103287569678725758261474501335403409946502742038993627606562683292453685616234924128980960147763335399932215503214935612702580775289455639322037534213338219973213279605308606201334532115883163880574224541089529811433986638039256972095800106543357697344412716929232931730962289920220713781487089761908471012322864119096877476277970881579785057714700917197028195997818529832994804780417284429984754619562394041113890862941467388896141738656817961199195890573616011364794984681591219367241558798310986140552432560263197128734169259118774969491028906632585921807056861537519989942779167915459656814843882386745396689933069559452621872426640743269667415785155432107693878785639336647244125097680490604160317001642273665504890145267326264907935487829048367879399040577306873740255970459988810395033127262251115608196736035412119584453188008186287042911876081527092829715255991207744468425229502634626799085802805405857955296699171286672737837981061984890685089319352746412948653963619015435218248011517598925760161593718291523860758585047576765239169011823868499614466287505778774424055347975442741365881330870933726366877555335536011241172185004690913903462016505909775885066065890438507676759674737565240109811963719439757404650852527768257895691202005248299810084579379030848475813280285109683841877454192212627015165975961932273538132370727777420764337153061449124050911691371911621795567620290703201841411476571923689794232132400391438037980967474134357569476076985929541421737231649269517023318595218348892492918721657981513390108256249819492445624792443192166636316049637120352149598784926478324870346708815761052132672562977012552897934362012804981941328280337758147295446440875445215292143551504986741830990198953293010852056258269269870213792674016561750382719468607651631526751368024763668437432734928270691261990008155549788182043279997291601530166244410255658064828936511097355325605901816673047227971916622142060623457489512814895075956355315310006677841697959655696526288885063494815511850256739378555782054440164348914106972901169340754527319614760581092443852171899505080511122259279144943321500766115214587138321157551648302242550806439245858458524947157765263425330521739365261631239547313939693959756779386433876369328358009258275461913509465897782512233259606148880871577349603617228648023188143667546938298881412949201244087959724238222024189273188878136471666765973670344510152488252354320362957711120752449009335718161277908075362185418087485310029369949321750668512474491109120361121054163505842402490331753942875119390898063763784808571118678906248511916241545983841271789419585970765561630872211933953792028967771735610407882002233473512239469638937806982781135659176047461398857767162810213829317078970920832297862881747726707050248433260918948615992230817460488544312504324816006469495730776807380791703329657281280869719674713268656084040423260755242318752270353828746374670019959849277859269138547463705741819887387739015042184139933746043615013284765766493017738394369928297827295213057284867260747149354635483557599738510882905766687153520678297692811615731347558122632567395949006708969436590433855845002375965781577358364853370543832534953898747100707912228833765848768019016886982321473237846567928220970706152177954527916806069757335269827515817101158450918955094701987529333052613486327162065388267442252171436093404068955441069055260941205003700984221713306593131148722752069113116475163529176009166466796271713840454204888507416270028891158435675129654340309232198827470024217429872861040372352021651506332208297319385174753911984096799777641352287519837383239930504694250037314547851063432839270908512521556063612748475872418237308753200633390670113226364844856947543813513971575036146241149577681409737010468686401594166262195151957485240184759539288215963051425616102735009880074325224115579227690054217981168260141856198794671105513225531489515112194011798578917516748530744489784369439256130691893259520291570628459455664968918901380945397842217868039922051263028322916576564920943558594144391269049871417399020830718947413230065225084047211418432088508704340504804184741326917128586578251269150371956089038997095489709635212102540580378489288881858203915699386948275507253083865318965146476445453490836533626200443562132882387500757694420587013420829221944084603832216186504536871327357353450035551655389697580803780994905793245865770142352881641631346490184650985972859741725128806152266474913382171113201534894798761400471230355659239213858266505665432199137018881115464919470272284216141528801736059313511098694789411051179257214339519707360344997725970473991425680475351036255558614105034211887436280653066464446368932298812661998571957754739481231251153508183884616839681436979893535318043913517933116468705474540063866227507024787284886550859363902010411489259571135966574282847229684036495141761281607923902381522982926381267704904369871664617095236511990491842092973018334229594058151719327209084550480544388485088506936744243734651706009554124383166910405064605479614895210006101203659204604310103859952785196344412049294166455825213387103832463956658635796599806555330590644735341393207669846763022523323373204853941577615631359225145405033175562639602323476469905516292939474422353186124308116544068615978283680302847122799950937041267086088506417167214741306734292100867307125194831564385289803635369073085364214876179298918880878404576985920787535877663474150457876920967162643039955025491952632755950405167070147825109582824675013348117160105041353659590868748921834968993264091650883798250027814551206267287055018073349797659779910030156217656779313214903856661229754488763069298416849793788335479053828252216075709283642654205523433966581838191195401386921742235439536635116317746701267842062162765346336264379830089919832821506240611857587518091066510517387499891048195275171823901972945270450256829230395942184203783684017810958917669956970119428522189574381693999341031275635952532538861173802208442976489880563590180342308363763331270358543030525956737570626841209077183124824003579391441317819416645784450223466061247722388069013924031555817507937838163172858719944583053003069978342769745323939217731053905731049913421398719270571150060648515928102251314559617105237754066924088179787729224423268625319246037654624039930504107629751071520436262662807663808048342211869261619737889533853360875223404586183253051715957892352064463972566478085583097028201863518511050562739581982535579579765399238680716189056215451318947474043347231128199815344204572199998101197480294350062821495557156148645048995404320364681683141904414000289695746123559035304348319579516362095719149982583318624124411844311622459874153051180083813602872759257531983699907956314425952648300382813367871198906955126319202866693847601979194354440442809279977056780912763222448790578473589315252806137919413520738792481223735429483072035840029814027155852389590339729446907565669404882178394949401616626674871690058327842472500419370764281394085291041665264515922690284022883562440350158375087128905391236147275975486267740868167297740827570104870801429079072653332916873950016733547788477046846133408985942077800061984777158803832480957995988278155181831371097286890833223575318718504776289654273431430370188791236684380601966578747290594893905345802676116490382816034255472556592979559959366485202919986494145406324346847987172697190668331847790123058140923522379803573766868773575230390528122639726371802702755532565439403695606089279212957818685471504362263402806573421938170179465198021801848508387727283334187696407478971428619734595713521838290371265061827648585844811528923958826037290502728668253179118469090957181634692996066291242093443859293626912943077157768234637027089721232986960092886317970103241338840233305873697455640516470013385464715996211614689100149349346376204729036177005527898444398295824461861487258027348230230713469462165278788330048996964609989288222568982789347462405787579473144537579487409844404266077658733243874492029609967981488235603229728935780025149930026595687185959046105122983669421393529849327615873941315701743347768026882288708133567750829300544108904124309578094238493870877669502328948718255384755466600991945142912538201343905768576544196059153507478253532179923954475107799745648519060434108286423234667258662981797737903355515449426085439453409620665443062160076632012927032879333840794016865709690089801455229334203214159539787006799324764551557324347728428914641333178226441150928470884250648742933804748571327509334902107369902626516021258923536465778396204882998752752001452461084471519390166028420283085386816941507592879216638143935440166199682119000189229238885316315524667578011725157485580720532151227936205556426943095510044223154249011605580711058003745429774243881737640329899361342156863272830093956240367222197462577850703588734222637223876889262426812124840485202570148126166989242412625717179316024952577019418788902926271888800568050149110621002933145586894073911715688103563262460430374684028743175282715937023894709478571249129020118609532004063679666769153410817359740837142267389356063006571301444142689434347470226405301205062449884260355642371405610869031141874017531144122796750217195998898948307774950041550622113079614785032761849922551932204191360414057837440376580518071687954136703706360909835318939392821396768905706449592434494749890386114881046447791105842641975931326576996001973534668840509712064074344262507614152910504161505081818257521905787346629726275706980283907001587689283005825260519940950529265402622263223177149889029086308564908922187126982129961296923354605198016326039335854512073506715864657082241563643534526749653041371307167147796576602077266946155195395778217597393768443492156702879256732515082301073688061749680627466779453384705729323650210032818987650336979210283498550264493700535122798833642334516942204511873854977423443274504407781332647715745275949174277556990695368147505042194843594581251918815273892670830289173779851511223947222206777754169724791921505886274619999921829515021126411551686874300237065885347514522536240310560864734321135093652469225863604252810495848208217878041579083283324574106024907066375736063115947449070452674476964731572852697339964931061274120625896409826117022089452911134416797058482456526692412899169157776741516283080229691391349553507181090626505561536234476394493396210904705410931713130374844449992818610034362103258033941678228229947983849661094212420674533153951990121123713109742998066815026079330654936492823334789907959881924990001514936179754269719583445105427099071108926127111311925723224910452709299935126776370967907593016418530464565200827711289134747831496031227421690432099069833614927096187982793822760081844382533933125936771957711982719252793878074328192623778303358760205074193302175146193879595722666602077119613537777319810274175464677065402248910105099589538893096963061452818471585032172999717242966432170296297111111404535545673522856963647109813723122370446718165641256201473614174568046310465486911014688464137554479389599759489160025901040415023319990077326471501494583993143365496149537164304393135983772739779340391929251631104626247620971496256946432567869901466071972457885532770304619792388792600098853297313260369548072902212215566650396021096490939716398427848703250459570823668826691839847143859098201194411562420676126162861458439468110455996754267938427461709423182501482423696756281633866368474168944410943119630432095554868167111240195534293917295660558620927058188276493554348944431831831553136245331569028284804192563098711298706615485420469896839043933485309761588101031189150321541871093720863833809893156073452088706618494416122917229368925110123622007186613114759300227528252339474713036569361752533452210274199481041405726030711438675223352536146151947928410299370477262559997841681917302125754797849347140500657325056528447086179139041523039493756535111036187390344070638484680455192849751212006963931405425543830900330935464864885104852335875864106103765231515239877658384986590655617105330228439744630498991040943986435067574948950602259357692327254803811115717155925385770569310479733645667181835439382472147270535117943295045470713290697528667522696557839744942128575222486623731983583085761961368351272013957983229071857519141957708996609372027399417538529829059208469238846036334946138431518684951536811311471004613724499626114902941786777533227407517860274200193686786035087466851018570259280310227224094938501426175312968177749293166042845372868715508886095477878299347666956294564583632243179119170470183736042045705167863742225777435694361589399366341988164096176780121312364013810863888019376309260481774394412424003225321636441678413884878945405216405269143469154992174384047498018148266848269749929053526024225261693705401155268049691796861210178738482976482740632305773765814494589997549363367591663011906236785343642800219753052856044499038418533493768779436096805387869068853076588674722879632099669961559661377029076832485574394084436201764450134342555691166944535964849090467513360209621567316684818356009262914796211447511430458702942675348731995673910273544276244144142135223923945505618916350463287843762289379177884184924948862816963398679335381162375499568728936468473905207153187519354609002245997986983744162043953262565609645713595117177930429306778574393778374567650984195598786939126792465859305977661666404050067118473412548410047564205243237182627481980389859439396536303289451410815528512267476070276203324797100140980081751062886461143333587308956322201661726826202178408546529407515048793143050835043821514028012971673938699148781997085756281531497838787123497057150533822954487614502601473558480810665683758894981364825602925191779289139737829437002220653901081939203484880618863642342564262705325710778362171824705514257525660098087980178155380395425940123075166549413735466232237582989949124621651536503726384849316092084333459959713679646601570365541735635643976585457517626618201624677754785372491391236438586144383708689691370428576971120391983569358843476807686887883004562503145930195485676826729092633097745223011637578181675396743958050018597483041356086061782095463221123570966263261969355723276115160613161570806389984011337580777668142429106934283062976855127183633364136712810260393062042478213690829496461675810823784615631886169406330572228033787305455425137404417427515789657602362171962424902373097255926180346234047280388602065248541960721820868700392360866150873753496015885698461184775495822676172933289202397549133898536407346351202877851251104745626349161947214734489128166054672984559688844245495578165863448381206131954626585746930690740943543071445634692690045487587054135882970373698534276559521342131869310114192930469859351754874238951886545206211945523293657501369836349665142171257122635471840485858838316246714102119003886658379463965417527547769606580038301874549871540240071121398592857190111767684810927328378409697870828227309323629993959824913885241596091301181447210007599519654493150262068176432432860180135430267698920424887733758068459852415344562751341508712011876488861104413696562275765650565636572999247594381744107332632917497491041295209557720362860678134182473803551703683499142363035918946454040756302158640896932908337627821056807464078874990393431583733734101897972992010532089478447324669472576493429210708163750636237249992850506248880981555909220883348710520167511593048015799498977656207218660228493282001209957086081452485957691714935200563807060275400805774090093897935445612983083722329512448465994113112854730495885612440266075455546091194852746672098148212735768524231543898358401747682950440235158634557355866175151354672667410021266305059760202892043426058530276337557837638667635002279253734487488832714138458444029504192774323435821361338965946849427108256729040970038059648636000700147927082920371534926568115534191190558017607786993225241805484238282268586726668282973898374343669011620451670730787552134800042365037889622629765677431268418541219125872925125337465359927278042552426480700622177339166034050752041069154344721667628093601797075324350887167305287958119408720160126725936676757891063023884570811981906092297848518504464970329563696090026020636699657203194831057208008341818311543485540414353255192976791606371170201328395706719347368132268193929929303519409174344035358270924668596961706093532997330447797102563304460259851218518379991681189908265336221727539186241898802796014268707157027222360158060162557507382298102166979892032453822879006247511277739389635177872645419141918992977456034478054018979174757001631226442646382714163440690721255493469340021926685372291277736634790038317609390210011102860551786737058099355378912982833085271924147657631667911033247511074312470574679416286946943972403430463580990949184152019255423799607531699328747828603155480914792749245328609277262975910925326487055330467436724906390417869305166419960102022659299077050259427121279953312057312334092540615911609993038156149807829581886821793183555950971309237332112938297700208347520566682303812367537365777052568701460799447995929833645432423031587092932599320662308174140670950037286690549868879060488423082987725614071413568736281679605110878437466104298852261805665191981356838512508367353659942560630236205088327826847657593822556137198587061508733050106934346653225855089795204089752442117122630770241821277227543143936579114706394853378096361670719350285848974526562833502173267725157242604825221339373069045960931079274385492197388613574031760750614509160428421391592132160930321317909784038364665609251156948296254439665966649182680492709693231007604633664030411744456232989029664496451163812366809671709358054528684212802702418805237933893035616151853725317503951907880263515330573689993607447728603047647693750642337019401941560908780256554071052317116297027329342685796206542629590081389939785426086251935451072024373350884307919601948912944760813633465595376921267842793770661750590544005603688550530861488261386253656069589367967041529894385209273391053584270612662249791251676186520123708246985131207592750308741746946273275101643276560166421105515807247791193639298456546694408923392848726649517799284010038625981829660744590480101251033821009784526180743175840475670023950260883181906275673513192977360580037660688571672632291258539241447906025431974098471474573780530052101951754128319397066415444492458107843246922340838241069405574078453738101461443236819824050597860244961843304831443309590837506728932833152118583042444580114465426901123301839018561944686342010537212307714714550151367378110407448564685725507486965041464241540762305625435609288955129272049855132779346036920604080362530084906581838277534302219795288355967667987121453875845942365920003108266170892759696611247067017892610940241158317575167154221489780680963753795452851639997974917578798805781210353971783280534638142802781030670309127373398978065893976395477122196247258019116496874561546740606753186102158440815745183248928107856421679508438767494276763363994753110335329404517688038105111819479761501232663224930551706529116571817525286446581726294342217729144889421193837209975476119073116635657526053845082600773673982939597697985060687998431537911551681908493642950155423901492957025117400225426199529553474521652911378406876525194559264495521448867124371499828219400796591406076355479398249989457868676370210237559037625700706233111054435105163613695049325203024763083491149601672766060876262757738264965867772504488352513594809002725449994155854469944426405665050277259772118591972257988523894848597276423371978207355658403181631426884385093333781852815611187131231908018172710066109548990524006728936140878345840657097868774641494565755095990669356876381632071450759742243604447476595601293096165807244698189696336227192378858250470570828535582931427545101491880423313409953209695669719261538173468549964744367326951301266895608290488581799735562520585023945605031070935179720598988324461965002817690940551787679800743482410464212502033674485147921961684775752007818790492409933569970751436401383321743192162653503023725135007957933796607188836367641200313009375490207209057563210320304093083464909645205866359229008211479839013566196536456769474397201650189712529895616160079926021921889788844408649690491492184187505245592169884600639800824594499872610923053151937861818130295696344854588858711059999534590467771846005455567811125444839569775827916687471929572572685801166650416392833158386003692331902781656136842202593499641349037842925153372214988493103973168618012662077832652580972190320608241705332116358396172648003514139202543994961211018704645693762579168199473207682192506825578256993960731239522441300369831776819100512797997960838296761627578969578162212270106871350756380812322459913826650538359197380764592422440881184195824957479183250434716237648691650479338995530510672216818306138923836951936934115579199685394292974555557435974892190888025835860058487195600979835334778053816525312760393963424066446049809808543641578078936772549559364843837446210789308021976106711451657469012358435076855220539610531027084953815182864234763474098059175167590666501739145356242497747857108436537282422968155727454485598670449069619340877466808764302596487471342526558476871609543665237984899919399890970064782175313122678098457997935096969002309657917505827573095678108263148356550357377985973368848334271474635211628795284686394715890912362465134913056242900702376171197489832823532573890577310592408800600523358176687342291686455374231691902351036901834263205868424788008132065332434925383095185547860776285935211854432071694709248915903933106126310137775213325384509211954880283216958904776472616599284279093316364306965810739099671440190154803442115903012151124082692055176675474910974309348367858945452372250868360766936326062522667508944328972906917583793191155365130311609867594458355786388240655148913703795330139464311736624362252017790813617504716373540268974293755548013782827135041070378314213378454778931699885986458660441770011602373434430794308797991413022857221565009972384996759408001017785070524411703150340440069396693024377501638980163644049111160806186459290119473094609299722090524673941358623193718743046024386297915923540991410419813678301843365121832896833526869997628706457227165247112215911844299006732373782670094993130491811727880358218118298669943715933597278616856701057219659221263525665380962466314697696921222867821530288847665952677770311008456851249156163899353019788698506820414600941801419948965157244258723678410906335863696175556928720135723856414271545163074308461131288080417662164386322754426926061466367713134782661226699033499161376510014515762113853806083248981476738720485606240041384879969203512215973971433749247726768612161703914522103518323242526115980870685158420674021482316647716892797897268752727256627415686638861992329066029150359597900997538131445230308865550328967371739090399705113950087713632772631200748865118509834427622609361436865817526279220749762676920308648876720368515017577977328387214525382084655710345898639750107472704462823994880117156337681264471622854205431495750736922084337782907399146738829908613898994327108182303994965528118521899830473632523737243641776259555728421107111116487286838067676088235915064325073897209698258851328575099728113067199403102876870280193368449697753407331830361131603411963660672128835707651060071187446750803459581457094093244809917748499795051727055577258672354544861504040557489476567546825431230290743654084474515826510122865156278284721935776481585054880943451822892438798615994829362768861741544677823245497587425194266722138937512368078321497884657416119012569503107631037569376036482408607034527131868500805866302295830996394566707164843704850423708606003472804863766742765264962257017436363255033301153677055426228529548742712004252278705054861279824658350623389582193051682373294903961316446094176211042358798092313198521770542071335651508596166563227970285722245788853602589080024769503726520524391310602039399393360511114592415165054836420820913029422294095329579323877784017828963671395469899846708896128340909196801845147791987944857154843295625245204137386809468819062675393822336077920720357110326542154993965161294672160599047725475522288534878653051761730639987995917356077362280190719482982604142386575628557153007491211495036892075388988491690931103023959765626094658445956266528748769150641593019575686633255154821227968740547390454296824065423677803659081128629339406511659664207869301724537741818362622719320179218541364009937436572165221790869952480688992239512852676713712013791152969815198513443933540647856026009962649787405268949809772477978476160172245181211890711542404235520885963974078312846158439244083185518391252727453431621548441483983172137924660714732125763217153623321394556618786087265570057292324752609060383576492723829586640621196453527316625199188870646943145774783759873040640544244020579628578274565026545342921564518821767875327699778110129256312935783217201159513089356968502563613788891217941218790255592892696825948692648347363324254131678131931350807082186313116311557077754621154926677412069879451920245431412893731993869496504239894727689380311045268278091013183466053129187889003902045309584606981187287505938626551029339180579397189161172248082873406936524504717853060036467198027903750857451834703482653499906802523765459568623411032429004083794721471695278767814714855853958875384762657373705991924238303196470008878790793101968274236598188399920578062319401342314749502275759534180574863505644258467988453435248324096856156872888903152269738608712840876156855626601507578355686508758652462572576543016652126166172785794836121161016324794860480021138019097649078217776364576900599655993352445732074853376084829012395244668218448469927029429065825516344488466784654231075183984351424021284666595935933958389195494170776362391617553307066702864412312432376771249931729694765321135858799939778684034283184113985184917368481342315312689158679152231409828715689282531533318578018705298914030469512459655029104765576003172898754455734256554687735919207631605314231976687551205118945772864654382544431076618639408243762110918470015445279938406242613770796120993658015706748421862236894687886372460208800569107250408953660183341066014293225853640932968212738176536423408595741848626502180039700416532251548649451569926856204254574898299193842556871599653217653056861199461937729977075710979314668298474054168157636195797504972848846404084362120429368113959950248351158905927050792593693975128324994217361132494687810556942099770175515824061561634825831617912366296899639168514073985502032033166790116083486350534297033515936528833428599979667533826678233289507901138945244084796054102430529551126069208949053662075875062898625395989988986757316039676396249523346635270240223609692121058414937444864417238969367395483925335172755938052679429444327723833378025743875813848027734530524160754363752312724439775113088944016436151798958904210136811921936563678366487483122351221482301182334141650038206618932716337012276805074146205678391051769474043845639121952924418838783489923628502980094702975697847268454832155817340028158338586599728272348215541847885446821207833825228640296888447418225796868873654181658163287945778749729821095633642379027946692405069591716717085209231062994808204723188199115869045400791852053028808318622965074242318302329520324784778600820298629813879957336487975983964092038333585027214803471876352726224870286737374088518585488414899943519902008385073240220892523517160814886073595808309169897781141634056399749526790677639509682602218439485288077449411145602484999113546520927301149242170487177235405804408487311932645384231652075857988003975840987938373001760226123327331199285387421965883231544771347676150140841072595942802569141402036444970992549217598142558681303275965204834676274937592436995659724298638300868548135263819912927126409815163058206298841626401385189470252013219508514216486604722678608835149195139809813494234265759918745426678473578133325709364556524838785102104056345469575344699144426134867083695613778369158311025418996066485622762338015024372866533633909546432799205054849467451703114593373602746296937088428994274817040738570687385174594240966918209578274532420831935843926538476838930285824532155307700830699195855032301782722977205453033116795961179238447362488331934376702564695323281712810221447528420341097401234477832946792172325958830874771471785829585752692744038377939957832905149433617063954881222508639849982516850721200540331333877883264957994550679246326613310193964989751125983827192493018694706157035322186770498885671419817187325112604193015880012450604408407409900234239145866694317945530248430309025095695251123332229640876592675657473045499883093764923054144541566903502728887451745570839925642309727908686986475876246806865013066486002633273982924185008345761255348326670630548167631709619810295551842551583423260872294150563634578366581485335630948819095729381128961279492749844961392933297178545146311390524068914561331895951821458676642536726894882808756140286737079175702045981593750176404087988260592858227258119363179764204051379536592401875696282716627034692515277514591335409150354677836737422766361886614644197576786173470316672982317836188478878547817179506382321726778875682516604655255862381194728963730510709363183149598016973228847152497838964305277518171189693821104990741505038063248949732219815007064859053537307658017403180773032066421317983197512561776600097189512610174549599017034956686338150814528600674953209454787457095050904831950998909975715502902598644731943246479981665740738777919404017299722325333769618455028656824850332341979510977347535311968475224464325070588161301029300651285161030992257044142060674593073523213869049075944713591785784923315240464893735822838635496462324770893182765670713732100569304051358458176229751473254740458121572641137668852451152556860220608073651184647021557067142136189790120840212683729244266698148775008795015771324557956936672401152283062313889861055492875208390323145949205402231342710239935464983303121258356603934054324896970653556323535708397802681297306887893889384926179487427887256043910266381266407707076549426499781321869227680571183390061752490578760849164222620991473227831759573402283944513034341575608983703985474607666762575645084376847937250562596602760567623914740996536354167877363698281854210471896489948006753131518763979734839638214873569219228357655612858250902233869569750414278196938012811041119461065027956231536056825874549248744469850105789280830739116430567386317517064952515630550041455819515008974875544755675457394693627301049216311724751256865077598250401729041054914164970453490253955470509671670873727580268311947599217198376928190111881880136109661895539122737594773339891054081242750009115572138946032077091077708765905643583556379059612639013791628916609005078809006765108098462016495313634971393536108919572539848560315006111980769541218716367149306804796312973992654780796881413706152976409464138211501378161342505289501037564717444232538289489538828586573975089748335795205398930480413046928168947609098885961226683140467007914449811542009014475419479031619382589345859659510107521430726669818229133120073393833264790066882896320028922621954163242892277505385505332756714627688726820714771102879586442749299696204617666389481667909529212853419193021675454915751145834369283951953239007811885107441232510518083030149462699503687545424708834592637628810258690334051240502626022931951433086204136302725538210906565400028553954718539255196226851941997454269833497013820409600781081165624176856273440511617655527369801135582064459352722367500219751216997668289504784494007446997023708990393245541277564492003663556412948330468167242288948379897077685343210860449826324728493714059353740694684436156313117304277859998187907407893244141875791672644197001326638480606266970898831724303469271278740475339125028412638295050926623130767107856011599938070914878256819161042382651017590437880567514464593053873216813743752324356474464700517846559675772708302354388302585029799174029776820287109924186740522500374087507406249541784582379282830948982242375139522354389404589297344703732672017733734757763602400110919152336242184859769183941097303275266791508603736944139394551229069255366666021892795055165375477227090213209052820821014265341407970444773388164581749127722660106960182574333689478254428692576244537466691878821026513357859378669241418518280417582229083369146310585525523275225540401454752301518011795808062395869056390794217964511152763435750097214740747926069226359641983093651938889677967949417321908481953213734249554597098780801628055926568273542973740140418763810935485357066845691473428794067113703606665404731705260127751962148218389591403269023472977875043839411599262621258170012287733120728176934328463711833020622049943188633882991103096703959036872059950857420001257390543747204064200396764178622125926927404330032476741561976977291876950855478605799888594807621374782498121753562753029393216490176975387761520779382750123234605066543487398109812474852033393431744410031564900912712763482292089893053158402500960451239043460047617908108077411095509223279301924229358635111312312288184763206749838755612962061449163882713558964523531843099547483536385505146829416677498648213562242508849773217404395789003041509767184261729093399556743852190939139541620198504182318155919273682564476264400332127547542502769272506972641589458071171112278231646274321977762701629371241558609331254928560311922556105270938286519185864847191159556812706277492847957702892552691993331879485877516429647802392983965178488645793921499620762251441382324782281158683610349142839037402505549529784523259934689248857986746977231072244703677214645724186048504938584075257210670938690377526799952457418812737233828157483325681602820772035902963537395127917467395875115570003996738296264091068053065837901728030886283902383541919422721899229421385011638267005056654835588931024117112288731465148579706218093996118196163181279109729899886162540030949991279933585150162308874067256683399050048126416743832422707563209678085355256005182113630360533619749858121974530196001786752841869196295126765734051136662631988984768774144251879540893964479016433190976132362087798104631301572537681020873961615551696232502144810778626174476447128888791104652110778777875956393478764295729900304228910914678351733121537678475113467893150475242679636835015595194992425435718803426190681377335847104062685283493721268207080355526397063676513358285547395753062814818924635097168574650549435406061842306305417342613121822078424555124781961224256346947597926019466586562116935178345595272618687505172631956388474474290781764582311743041220334245784030258345986904482945950029398956792944277087389918877400888415026372985717898215662828583934544460249170207801450788969683594505695681846654235366270659863981740206903676572548939735501016398570631371339117094067559725802284500602883184991562663192231751077088518857765211703470934828919388167367044523163846353389922649529968547346215384271169340221185091451198700120921566556289595860205766335238686949341725605564379982819794813190678638076199807647756077891181766841001018915244864882299402766030431802608136209798415226981594512493005583368191542649546277467984330831756286837012644878368090522972373905804122417208716229686354021032938768569601515624829773064338161935079516416146196396085214361008812323115885030497974404308354519406304573623088817953448862039654131292748012366228440751483549431085279840288647148234263999644058452894297894545978471908555032073206383279020102363851809980203424499974850211711447780970886317813105391532302266109385183478875448768603448078121288929643174920031997788302959175775398175565491481271267885155235895529532454378918311602155904478679923082237933857115394531001704654610682464923748742444652867036214834116582106370218828250143954242613050659940731506192524074412432410300671136383631687262082297321101231795758186483903467531324576562746196700668065741057488065333670873395556394019117991045921735670604590073557355887770448605369981884547294002108757201577219863090465570237088194556275003578550756634986354070208855743168792205858014134972043446167944418474408447310043829175496219262424593397578096586948103133072179135214836595666193732586342099629818036279472987366250057224780641577520754132740862155411490602080571652334591032865555856381967672706510426494131680217244138962981050398359287076025198840998264703638283003880843567321306443818272674539383389921148666901310029534919747291728416825321376453221785303894821110911635594560325679491079349851901492921478337514190315931829884762505313567445483905484262778928354184602936818298715516047822513379240750957515961420380351036346641322797802571336942231770439779739085842600573953059317779223108151186894933734496697457566759565016202882792754492198819828014775224333641918208527577807393689236520973907257818897098502251942489855664774491778843127136633322560617068751831414981291822840498458234130659621693294727913596787266285257302475796076456584579157258266030721083538257479033669674813147675127433605759880551400126158458666874958764278024354778317711931236036026183794735736792848343768657019916127499580701281374178462839735206055869108303091727370915102907183765750584156869012932416784508761329369634609085419052210039409610421326315629106401303956556250081597166589739182878781378756655527391985335810191683455526682870621932930312970076685587259832605951625541320981827892609689917216121772270346501905959961762707253344200488394040608407371157870010801916066968633261313282693693706604931939758536496029549121156082470167076579290790431592600639700335835663433124506827663614836985631660502554419627954004847673856263176238488120301616283126324013893650467315999209243071831991950450048058028446043720761807739278153330783463106021748766565291290145266540329001267893030380596050318453580782700993897766095029202122637058643307170262041946847685332494492129467112155873304541354716180132167325305567332460729671183352931586734699682025323118916319731317158048995223611515763118357136549380915651296248898270849248161769907742477532485289851262704476256623902519480746686126986455332001485972737719903551911479927822811949305596991847418912906686872599739524733233694446349984436070506581184670308306983948887490023458201167005503029527397137541634281660734900401785660939950188164474565626312557375783623787317079536731196857468310352368022263760794677245279875716763160727497105953277137922677677879198334875416058128447416591473857228800632421967489457085028770615939653733093529914793226639739477374810714607125145485719843145495223247167098047389338389990882112317851576164382131239150807446864362299313662064717503865051721705397732018234059238327144740270103919959325763164822594833985664356183640468291687671529547572004741196905423448367903021180261361962692353315332944464441139806302620715492292431673697151223608648364052012844001922134466094207020816973927159659250915881134066740749440082516576361031356575262712544192036259904603173942723443031545984014167397544861588031230145724758330118451956251590712172542596405674153234547471247538545155833664891890481079277495424151335034052008305720302918777651331936363088194892286107218537605262029933206358472611070680576457195229936293640814703416289615931541501751076892316989476160342042452035658671325817430648262836805222244817363349235492045571545231450265509083140774520993698522710423882152089350724143181319336078984381095223209064441463371321516347001089972145799866870608057227795508473236015566770794987357728587282065550808068291935896822651835036212084665476943799331536693004583857229507137682465459520607141621827669803438438207632697056978437020920565968362247169350362800251636478355386787425303740192953036339072048240839284232889330857208872312829252848979260534714731175038014245125124844511891988011171752147646767369946937383653182446288387676205605080310086875641482286187289001840101296088753464126718196531278543581021689124757273306768990599093913742404063785411754589760066498425703933380221219955699702395933040627354784122519511396083271005733849373758718975931629352664804345874483512632850520326807738696811047341786813668443799402069677086804399040584971932722422362590452618911391415231664739012409482352668802062904711876560719299575949495503505695707610991447561670934468507603405990891414031778473903898423271175799408971450874760935377417264930613865540646991044475426405228322623711723337124923916047392164135404045166842110874795778311949195382483772099579602857565363498221248377057593622082417850905727949741085270497782074070932515150614391909007993287112656485324439192644945619231970262762121207879974769803592652345690957157880377722414720255077172710983247481712795105466067981901449990543071478681013406953606243749459113611688176854809061614518743012205280774579465853365961897882804551476733499687318878890059922432421408283735810543199085980255537372525755518218364218998534054981235720858423166946126829599380125004989418200316191559910394738940492130692527233502336745255239797627537092040830752882924429281608632513266841740560066328640021290623437908236159320008035397381281755367743435148154630282460607054369927737356014367883693461697879383736568047024169899484968377578102726642860385673659342899714374901268220891998646093932050425203240419585319580436735532810742799648138370778099718978890010829931667522588576125201544771269609158599840993548602111003790342997119594496373833103143034926059985919175926090693015462800073816957139694898417656594750834097591789232297950975757805416356809054095074470177836559001445554248831713345717525808023278721877871058255277032847201100905767911295441558232415310907591188645674952066281636649892895467792490641439925179231660570430092109433772060579141027877186215684989337294402026274221638844233259983561180018231193431962763795546349027520349377948038117437243688545259702692622100280150306053238995715172489070641270047401084299422631357511843152755706367516123026254358788400302734922143845808597705587594160580583891197729770891215115491078292243772009041262474218367814987158067157437189475943938702174280070081176580197338792990645272118685613677695875179710161009207045187445621214084610433564667001318585171351680079862219049496659211972553304256831858530886039498974730100631717678616936444789010304049512018118415359715041435400797712213248762313913940289096786639808450228525456292293558806760036731455308162854317702331247665585072816375196023104175825944562001958364050845862240573564207567079123616723132832182700757404617020930790485380228417697713964040682047230863720457847502162655186764957795229305248107715886182675405189813118999347394659513393571916873160808084643696492866945455900457353128937316821010040112462959697673969286293784247855196637311304789107318509760796697906753463780444598487956029111162808225225002413835504819502364758500147710148613029779371013167795393403245728302974928347650947050603535078925969309425435437331452151594867626172731108766582125322867986723164780304476195542915270980403178780402840103298123097607381414722988288058220094373658517325457574068228422383569169390952986135305075308821746766436543637225630156462042975978317009591390132331631159800764683243098749078554396910911801466193265244875792535790819069982352931547734236961861337920732848967492817766228010103005569630240123920156276484909870581577586314034511151346443146980082683102633004954283267916337673168880067014456256558202362931125002440578404541474011667717957557711777208205933225995179731349470083506674089615846264294901895811025447685739500129365275280767572934330765655452138079380366320014766368904388061151668090606091070654265297591768028042260417454188956313726822807251119851135486839921106530345124031784114719599527679682846160076196007667186433887247212700894678798351621501144415547485107881397255072839510773102634562239101998243309309544087029689218040594464053860484444605267648093178335053219038809381008016729121524727237003842051071401694582968740744798333132280492156622411422187656547755907600459336988409656014608308681977379252382072488898845117893135002339117879754495171328053272513556159819784582331737709951640099398560649512151789693261172678903523715814498770914761021342244702807847453187092738105717537339121387288907788237133160555692556371741164880398349493383421804326721305880699544108279167197628988228348344161830930531187541617259651428008277503962264151259792345852906903210451262239368027349717076818789808597144219653152114561378733552247553258598264751701650956088450596548554220257024245285047397893189945060912119690865319102397688996325088006954049968885450179228752432738300171829632891985938209250759732216174652846906336350918347482232230891486883666089325032920972552051287985161642353401051607336806000224295624187505540697365959452360630847952132150753140985576576798841518684988960590428880180938833001137347907155941791426633724535859955322313375055763829330954126013995011080397492861507849791836363561760053480728778394904305678104349689815554295291261359993680804169223287596615364042754154186610267952561002105244805084866991173896152300385281969692003234413855091795488299068265817205040090642525042252798184354420394837788836542552298039672484695457667510577825175049022277340876794671551317937305156183618719222559568715203710008752197212684508117373730441335335220766764621851072137266423990224521728250480966569430127206252338156243884577070131825420056970866362607827162886903635333026038645540193582176798493183413390952211957678933406726036771577150661948981576263045391408220208323611333109596575824341535245740128286227916749217047454056610717931113156241628418824341708147149624839578552369559357743263219287987627818966134138251213281314660454948844488168887784593528786037639900167569435297659037572951703370015234632393170969133978631806058183313467359427825291860241570224409941707562865776943368546078298802746720779179207326193428039039252934958692348008538688980874898895265984639302239398957495056774620150134908688007335529642031556683588118548001467423764429802426932018354760751454573636202087474452998743662322400781463432227063399479119576832280516853808425797545899409925927193622084685272982824044825795841999929209451562211159416270533427102170792792001149278627689627523798647573160075747403134174831577683154985433482043100602779194152495547395316283541936405707002945157604354750994039378445940104655469643274148507639209501922302480057328425100068247502614550120664492078577798038184882543566768043134237722883797941209678228157501638328321210762565533520359817328376062077559664015885144296443435476309477313320215522290105696041473467345617952948960159239810517572165790100569100865949322574268103277413229406162359696510924433647315102036722962694263263276672931463727229182392834111242726325545555554232594150550731350136685718816723605732124885317777990346070383025518094572889824843994252975381201629670613795241339985191804293317439889499951715101042208172857680210286508533764537784795108229749982404318876850405799748155123801962054300594852909809934391288542634955031669641398438918741928755449463716776051868771815693601283242407099551040342077791488412209675273042790864804921694406813736727135135976069032087203746332041547245058646289044282058403971635062453590465829877696050883571806202177074565600273871172822677834723602434125032805057330995040283074205808678443074621678409509062337678129802572294757294887025506846885192595494401771555295522630939884558290899430916529282255074427701665626771361602082587489745502090595790340031503368167726677752106170939233591068432430898794294761882927035509628479073984606978943255427181942810397855794113234055672122468380423305693162424229671316891622911395724601178506444262463335041844307315371976475616817998920185960064818944778171964487880792616614935191536903367246191873239692982735755232371621584315315608048002015289936353566491487768626425265016403536976243908215397772266118374035298992818242011504947040540583415230438259438249278593384188853361193873576502683813753235390551765923795282896883325567912538422632802414702964090254897460437592596988593680423887021153308190585702785663984017061612294662508939934146813870557812623947549185522046616000014943622725475946494243546266649052790584186277183403881149110679979445821061646936733600187705061012985791317980255838901588567080263525299139687446877387161377842983619177403729210367233500125942727471894913076917877192100399353936108125071591326154823360504709205088997626653387941988977694765133817902917145949875612371277369507918209523765627671056151848719379011295063877744758708191263157990063316897638904185597145025795416027677301548623285721479541044255837957905551890825315134685423169275120670359113396888251594897382023391707075597732498369452533735176567416268936949858658682170171135229529485033692197352308193010596330712816843295268780712500595808385333775775936915400671889213904176407310473968840149594291734301417489624524319942685052316375168638138713860601311368879488563931254321734755292727970105300223092957613443391692890889110441891528224436412674033434977450356229821597045507270639626829709694646633547212298942675691498570962953464733735991134911924287029842007710618055803738714043068846274697957573848967980218809108527753154730102667540911089920774512437359891821629795574660542493922171599268456826191870719334096971961298475986781978729802200731574961666813771764010346545483090303950407571286943469750904624133740473732747067268301480576242376490234266108433115231614710091503576237207634454732351845908315470698477096440033433531220543322157730173084381543123626491425195991534886772807910641987876583396550813218188114131599625389854350293867086848806274295552412839999211541477005496999686046423264701877213663970255017967663230899899377415047517635183657528034553544850971015780346857306754083133425151981995852402588673695359817913471767877170840421194868688974149259219383883684247419343758800758190799745722982747730169781501552745078044789539737344153217478060219223721424428460836719615197127002060012068072301032563705409878323905037818862570558528322818043856571292388513925308090771297539164696355646780564767654101492934339021877796936148531261182755286352506237392124102910417200634850658888321098074914425028932648635768883860236118931499407664836242775228197810348621407733565402549920844415858876343453436394923469949111992342069773874323138521651244028495012296387718441859250977273730184821224197190934290290802551381410027205352460078966920257533182183222167642191895786073414746698737048677813885293499224950269056044872876592386854811145101746592370470604655005697825960584171041947043637936175439774880650752935356466392044848112030132799280852534880472797390312466328569240584560189025148874992603640749518909815294620577335760811918770762945548229486575005569911509571039821689947213572085689429845098711957775450267100326150962226927526082675412938218326108187258006499968118705250601777275019968502807476672973462833966661638462535160222637109518654536202524988991297612973729992644187136351855838462669615051387028052855304184359728581840326942543533610162130645527626243728871131661801093317589632075424285253557737201894654526056440920798541107038963443627052965546778069772242295143177289362120438211722753841810986505185343658687656429830685270066492905817297364213758695073928885420847091963418525681820320807001682291397833273679370622792243978518557485657961230944771616509653274571873392447180643993887779490034425272027352578849912438263589900206960731460689047919480460769585279450967255929418709441582837045279063181000761220757081796110211708740916789668734192868799840282512140144218030699816428060323932463772538895826098813911587262815987844023421172069502619233212842744786714155784443181875375024020809824798278864917306183573087270765815683695955994446837531506237439589977144049796480484698952079038890733338120859694743104551173273771552492952847079278588945631563752026348926173198038093751786519488631459179208494731823459181703989676993008858845580784914868323311987610611820902445034960822186815653622162387513332539170852675245201110661853909084941312756199633828622707895017089139321772374095393459845120601592908130068906738884675506009871903614428556411934808443815150113529255624951887937400963049474529711213846319290138406359026795807477813422861849182246407285688849345383080696741636851487829147282875500818667972759644832763633920391693566758699024691292118754370112341927209716493929174604583343724924143779927180495913049841627781371439815134563557260037762290533292572991687454236063662436057767026309021573138363530241419907785933636523194137594240433736914230591264719746552043249416537048859229674211497895448127657763175044557187170402190368407932242371462448447900303929889764876459353648250339303697055339893398836368803842113089199642183639803666256691124737263489377612166273028308674007505164408423719430982240979640672139978650393295792248914219472117251002361961295211910327879057288717192577399020109253153433459465786904819673070647908559932103781825892514390165951754630926865982441846335539448317810417814635036049449313216748823638668212718028229415124289318536702065790588513056199539183288938621648683359732093130879255519732394138052973680247833607652076851109231141161442455611363382475443445992758470113187352542855897878557661672481460454706006039906368555983626440081701120059897756928489561569913052883687251528845734460846488613945626091465393834203157968525733207903392117891521559730533170738333923597758446727159509037725073117968475768027751946790346658040014695903740338532943085475129226348044252118206609210669008913409274938708949428931543994747132951409284421862866617461659985993035562163260957050586005124995934266776600408152459081598999023844078562469505522384119181712714137680064577507942454071613316993122328236606320834637515946818235974840106274497783229604109915907740893159351995394744286000945676355557312925760425639916444523380265811285599259176352599113018566876265693069231682726550180922951713454024279847389182300563580766685455322692784391991156883573179341747440998145090424168704446512878176980410539865137237588927701079628261446541707874350703577578260106122472048197202002601993964045566862812736933141548151246267260003235553539121304245169146326839352665651758693246558006754154164660721832012767581729763414118786693817813754817066493290325757592315649865858701728790982484532710909500147244765288695111598815205953479301366215392023982975901202515323165283251293409676087450758030279458200575135248210179550659712989449454150587690091097695960968233385060667263035954063107239815021457115514481273465499257248732877008366963794825465718155704490286837459667320689679419573997972028660718048899689983539375827685298995436372796145724857493536391098540763325583436420312944134212476587869078189278506775396967319298154336341164822211719600773219749463819025369695679158860088585903853871313979585031143209872145555592650782958690441765013376802795759678028145266149855082282251867192797375820658117015335182452370732766483951629330144227015039826551034577723318571172343843081709598820999958533664300468296514259181761599220452562714588524422898750109695605637570459879761051987520948331169353522136881110191008107208933229974920104476239746608075940930810978488836660256560248299841320186631072239505134176061738497173270892948272950009534672777631838041398309954759111225720399308239813094201607166824563043606578539527629258343658488776510804967149448116628455951618341569889710492440603215628263581475125739451397694150813988261461722359315206643977432743848767931839493945643877691259239848023386031232191821153888017404152056273472455033321665585989801488016509500323346401696357421014866311435292969754325509366992200741165395688611882377146843866175205292916798123415472918864207333019528721450712215078105033406946220715336728605710662954548040406706623994977646382905602041177716472455320318444900735772838022048789687848115127087755245588010834253636229180352555074788138647950791494135333576292808376971840583544663324978549446365949541440535749523001448598867787203666174115086752122616460614909161702795775215528413434703726169112716043541648925135062466822113171309372024082326955870808490680189124354598990873400173672541539744649328681673609129759106951023752721298020199792185445155869810127100028262308267129602334774345082537349119994398685203244199432678469164515882103448640955244448883062834733559883424972571844791391327783265488781951198958243562590838033098928490395423978148796457410107435764569680822416660091620212355060970557795303644410255895396112565868689851768051076157478172072969321790829842383308096862439561093680647340841637576631699983807335742363023399280312961454256179407974745144880300904141574247124588595872523620517731145788124447676935688750304934047469260639468551482248114673470968123560707351205982060895684065663417209958619643426869703388377198456466341284991172536686798546333089086004632518661993294800247355394087488848666843454237141219858214902738324685620176718053624127407284303839695402771213105338055041201731691527633472013147973229657709394246422043628362893411657435160987684801854061931155760014365618382186661473264797555352227152652975618919634419743676460667035147920589142868349925961155175835585040707958694420545735759042771639457071336143029548920239921219161551513426342124659666770796603293648531630265719332401119663826646637790696258127611631166977255759369309663842246162660716822389002120802522814280326853031772350165912963541787709192848027337894135794372482721789159918728070563554634311536671053747880314254515636219928840013737271997323293665245727821575388894058576111787391446148587250928726455069628688315246495867088795008452274077371706503207180977410774620779002906196978152228144300807396230219542921101987395782100271166080511059009420142342286485398031052273523880108469949218786639166644094297004246616426631566519858634700161402897082502577773247071057349251938507419837899335945523263397570801826403417377433913729709191343087829215176031802090781984040198382132043826978934311166571484207495130030587883427100139818846168580529989672806788648308642182029389290323544976365064607930564575396861441121178722216655174069393206066796751761435508714034733022063788887319273796956119841927796287808600467076488541757115713983838983089671932352980765771664588371297474927640838545804448864982985720191552022124004362030780648951452031141318246709450782693747192891370166521661866443681243859802660525402568269960109188418044610264599395267783852976185321046355199615394723409851861592360483494405967435905751025969068515615942523429600048576836018967856272340355974721281899550549947526296808852151378430232231510340916547452928631459742568213849736398195643395356674726064766891900719184957335927566275398605188505356041266586063544875193646849555974332236455198024420484837040699888898556775169927823683851448905320944354256410926022262173092876513886069737473311241692084951762513036777149859320891741393343970126240746338781367214929671743865999882415227087484486814089376418742763771313973248599498915766355021645185303138583752767187753037126368123749302471060868985917642727428877000728245297118726831002158737179648137149610560735976611495763881186521742764070943332130503516861251688985081168448617096193460392079389332616612048740504225024148238681338866420867473369012529991287151343739370478891245915747371052764349724352945899879286223948560907296650592955356428152783148953901234964022828206335068764550649945549604398819153340185295537130649581327716687866728822506389420993085581338749072653976313379339667423230470287626895474680780184024988430740267868220372009998927825160198493560090035920139534423492092074806852343240216648651673779703624718364646784809107442514497305216559229089363358072192477878368251601055977691995657892343840645119631336725477761399204474635461446527355713637090698800739035113765103853648537541184254429836744127169883298597823796257489494407645363107508004375959465749796259807775716141159297573420733646030898691486087516735089924796593230968205898483848602310849929016361145263522440473115127811084644048181961201968273923238671109733594417371515993654055202911066217059116238364201766313811745014301690917903411826365167562435285421374827224696050833951929466884176189351097391395906769718466063346371625964952096200455052210125941957661937435449723618239932758349151841685483515129874082477913662821401748940096074014565111492288814050625374807615772503052557121975743295792533482490108269868459408323683347012354092586617869325518183216416636336914797572648910646480748641578653081080579874806731297083131076716934302351256479030772665168258901796124763566765577823242842578249550413560370803744977808331103244824497763164011137022328603256834818435794204004352966001150992078067930172626847241339682183250211686464947077942088114909258572292315401387132374144714748490646669382125392309121813897229838830735894381608190178050157276092644102610577786821844911103915710402880201026115546351427695092664064024765051751057392561706759036439632991559166029731604905086562152938323291110851099626523504691732992160449807464290244845003355907669119187040854789040779241276512479903016048092226802866151112965221232189564767769040876280452709468823935857720672199094216638579087354722549390458194063366227056891217412572493180105531092867802254388498010153014083902819097764081183348772379568521406445201025533989870208551306097973992327463332094004348330952268598015269773739512673997202276229913799162534543566632946283674698060084617912721452909988214360584293483152182075818675677568057187944412862066547833875162393179947013738999384704607086674427398741116715094874406468995203271554604382697087416316351071460098035472664406100140228386440686763259401086120674880498949072054920476887128103996526953902438165850315945795718111507895371085939512858169024458753201258710579043861507332892522291325577860496199972433792237045124990728964080769962447419349296034270798656138755352376567986366270026106465376681242888882325049572514596947050949387781783489704622215239923913064153657774641218483208386313749805275908907831844971288212807211401428459518510488360107991843929223422529808792638078967466628768058154941202683418396370327783722740448875168151244995912362923225911904484747630502302318734305448712349036767087039162367515095246425689004876028990120558896452925156999401248980302504321183927219463246848232785764280121050394153774636262906761768376961088738090769341948912587348446197906773878012033071757538148795865622926354881140722127344475316880072137232016634206675413694510587185425414535901791016219823134282904913649220663882796929478441442591065737617808605887141049746973222671554566391454795878842339040965490153653194671375763973179806363132681879706310157821397913570062048586454892349587525652899175541102946369538355628817077331532053219177997989349960773389141738838021988058900972501781798121406299917995021804217632187461332172014738030500455826443101181233178094666128412635537937425485609463451476566529394125011929028883080690026596560409979869438406007652402697209357521843647550345167452190202765753387134270389015226392857388044825219266146625594599834048489897153291358165133794131977381366708645447037912162469687379772579944869778829719475884504267344234136591166343974833581141453115897075525540079055849083817856742763256912841687642953011296681679463737285223208906903240092994176272367047712248649119706011337421270984801827494949342900379117007305679150727635333403892020633314505122222160842713888159522691696024169660319643793472716397606714906465450882564198708818903495396610407106645070778650114787369463276619051731831239451733532612303495658404641429056234712094222980436091027747114898697201770826209908014650536917935463328857261464314284912915558681972900452499100099865394824437650228619027194240837376688278373514830653434393681884217163102131652584928776800767666550992116137458377137599132610805003920676632403472883844394112560802506365104610484219327429615805974568526834323786137514615812510008738318848406326398377948401474880011993184136293020907688384991456938740487378132221117055464153954426609072418241512903280975901579097749395831756842652078214218694364039806031352639041639572392385783501069811406222377802687269462196608202667645545190429759753190369535863067988428806425674473347322288628784316645862297660456944928540286283153161290006001690998537695114907270281879102394800591757417271036280054628356320989317171982955732267093597206033624124769196355890058162323428294296798045524782705166620534147716018791288304023649621240988497538310654125179771675717826027056864185511251409988403800168028870764515207294140389265110750750019026977525203837368612247962223028869185671620162111808973835499237932067148709335001344745739388451947802225288163210233082830983842185951897032833258323785511026752923287589846735433441151871236920737280329472506169404155680161772073236924957998836710949806694373048393647367750247541846991154401946108239373711655857608844332548963991115353256086000603135195626398130053679961161929737201853951933775362005082595578698256492261441004549982803296462471509249241561485123172457856987813124096560492320329994770249673451681683311659037904039130546199728082473347343024303071720065140822821360271499057789335872813160497843854400093539068666436586745638851794858337984971983949374447025955876765016629174238371958028676349837180511624523656045515693343164226269387362949978128434462989252467425711651192374890414751553554020807027036271612249341734061709115431234702198539708479676546641502732407777941598578074785719245146078449028475642664300197586988759599686531157768790904657327458298871141363051236089247638579581997394437760902595213488294935837998013568908192169345464377163056525288646233954067808207003797378529901513772293801742789478797047353760597563894669553031382591056309178688088569379024388586029825917735488855753638386190340088089344798405209041870151485471570766173515119888327808112243754042374457010950421130986026707676321432229579028725553506454543204366683859454484981072569624911853876038769077707775380779241753130824839087580211798313843229320459545722258719732678732994807816351542560868337390394081337539832953029703219735643147737207902612202465624942525940373226273261057138554681438629320285132820397343810637651435493203036401596447668677529466749968300433980684165321148458979127933878827880620227124959290559307973614884506476262031544231301093825845201199356356083154467737470741301797304304207638181010258863371820156949791006817135728430701482077549195915251161596610479449184084038606417236278671584900234725277009892066296785128008484608571506073873715536768987246067184898607952476339549917277519116490106282694321345038538395159624704099805241949356956676932204348040526679909366662314750567309906585911205571287273042902092913490326829292916583535862710343708435606341289189960745445583496537451331874772693297755184176153321992054115975227413566451824152793526568159907161953903280859910897122810664547950675287004212663929254456892529628906011680310149169361621513745522450743926041695351118796290133635145570684547699316415656543249539901641110511726931440158767099416045655604394984048293875607282551005198689290881809666899690782447829598396348137494325686002616526006263931259451961418071044266334489011101097351393805640718942677921236708672597712417557192004677400688844679401425902110781966147240594540349577881872438337629170608615652609245267487200996686848517149566134326319361379178276476575221087688367369606945256711435124005405947157601490344526392247149200802601957220251188760690428903248839022994109766391266825545956204292947072467644527332096465045995786565372548643062105247620843860116976038265603912295507015106783053973582399262083106852002452228807103321541485856049842598902557628173886200849137085576966566003306436700122054864992940283984496463128264618208954238813366343041980133311739818232982534505761781363752982623219645779520567911414184290844069601988752688945231927879930808217140480745632109815563216644245958574317733761620580458930666637397534762139453739758250781090755023221120806658221976550175732224772189390335197432198251486493905077096605054204325927934130011541779160188985926745781024935216311836584011201384958576018977698183400404357624762137961063535436349755269467136584227427651868002579700614172972882663237844095615508700349942878327418090315251027786347775863222375803126075163649890495851884821308528141380795911155989168935721782697935054242682067896582279745496578611706904826275394606271029809132133145414041745929838893120162831666980590985335762566928751218900216619692829162706517690572396300014397589590293272136864331591566122743864388605125658836330763232384630038509652518123118288965900667499210024713666720599644579169235126843641414674082345480495569219656766874593866429094767353604728644281280894618645195226642504170811111524999128940517301256435995599858915750193428636954888458608789450375824117370134294008132026998053415404735492799754380719266847533664447034193295986122035474984129620885359454813080200962014834149004818009901955918078116339108965877321265158833845297087218851573339852689987854468732277132322364820411761372492134678081805813510989044810510866773701090161403956174549956270045985609546581046285118729400449482550842800257813427383656836006617206055444952491114067789051757748788838596448245979735882722395395315833063524864461569274824628704187735306926380215221842941603598908659548079904643861519848179322040061470542680137483773823863866955922090678617712798554448045139057330751729483332592954290130819750867029914863879484520799015292931981510052266407589248645422066987982201534544206501697632907898709050839060753529032569707718326296187500418228223744664598077778275951926495338450004336390462794700867020401881830038098243060434555765409626136389566729044305241064681244043855558433176720240966549990734902271914704862713308737935375227993184555189292073137407690011940924699935087576213990176655834079436660960321435630384353953482627554641137605113860421348551722654031937155848722452456481963294211076640046081712915361728006248588648835493890620486700504252783821964786496033590752602947487342331634308590731177133097732554261261851433470597235779674192386772493115093652247375461593169108106906508407390390888880115471510662879524997687634233798535865821909258179044033465737448586686909488626784333806211923770972323967487110216038983016459304549423702502542490275745412765577646975051715657573110421113149778225376792236634719393615180849814442008739974183627891752416225667405304856559642178650421822716788057222672701858824875539232827054124709188966742749555368610669295052059423289268995488295167632595267657358400658616632844790869926769969800280141084541720865020775223907638743055826431655726097834022087645790850911329918739180058785595289259848799588020565360096245656679552755630416918815209680249896547425311936466020645058024281955407620902338830232384564872920334798925695532703446762582854112670801153361605914201364568429841541391445576336000225711974488348425075559764570593679839260162002925287320670851590882402695670127776838123626735223469784400961322690106767693768457392601050939712774873689538556075043256441887218511031063819063235634272406411901825571425343299978328827709165425374846341843991638263742549644464868657515510309382768625036675633846093131770549975097214849607078576584040749054753409853865983034071019838548033650594404797920145108057270256123493517588519167107846179465364924603559260857125816472315290550917389057456027806039631250605957418075557521409594926411561348770294406331977067568133800037697764133028500223479381316904264692712133063123127874879139910881982859429684067104414251103644586162705914179569884913618300367853080905749669813459318000651071577908614613270004533924748151986762971719088598468029094064333387408913991034554807770252521519530512360621442635531623407956405002139616234932997081323201285293282536447304652393109497510504713659859439615422709549880956479514129290502608404542806459713616903958642998285995996862056433783176439480392028471999968294380157567921183646797176692338723744011092427270434783369462029336060810987903064954593715346123910647712576293402946312941792566773920156107703287474745993695143828378021608899634329116923338695937012308499677275989793574077568889025255689806397915072376290897689179843076240498507619308534640850743543373641275229726075536537817246078852529193753796963370285377843994597336358353747072465885551052957360460903128304058593271615666839307471719189799235597259059916953995880141405463432026167521009090177539763205205592456766493864228523765098602792070297858790172484863471569725056546232281427674368117764135728350600761040001591434547391921250826219604017286947722414532823162607157827368935770375981419942658707449265540870298440032248020209626137898318013857012523394873226262030712392702315294180817964940059379597083657448545453764105925973509029284988890493332486485747813789761491006766490485002528247146881137582663501573463384952325029642954533206928187902836326913931092750467332202339008684767460190456248286701249743582095764546558069677742538096414985860301119409151880372920600392811538378362434611280196565298662246673103438496007587115714526841738942402076708523965299894592182223254170096624016550292158443676142351204591889284046932977522776968447341164484066857492925657029578080445989470609317704679540019304849378657286144492415625475924304066245141547166059215526775505517375892132274235039557083280424880634050951783569860910723327921822357637257243738249764237900064827107079490275222212505747191615656208392061900142689771252056596149093952277108090214162372115373833268951111732860063969365246656173662704503967487469906930262781163107829864696303781159864109052247953814402541785237904279690125152206535868893775372934627983777961664709576288753935179709404276284146131041404100928136364398855837756718847083276375447148461133555449322594056794439882653553783347206477516121888613250209243853099690971463714177992238655746448675021759858853804928130185512373819930261458461545807455010675158199100056984135642768203847352403542470488834549559585799006113349511388392584798215114322648638422977298342348735139115986620087441502272457486134185535137022428372481024573574700782601260764409107902492665626992408007191338089584404388762495148065537209779962697899306628753098208851861844955546657549229140620036899009249785980304892951727206302147485704392427711188099075949231162176851794781809271827582961090802100711680706355887739062103439445817015661056974198346835447041289199762385396541397899797474678936590996711255952364011456907911604740166766902832042384663945596668372421697546576956459422076779671986429236783192508377838076815189294664327297530159484380008034185999566698876682717278953347293993484245092405283884667381288936761948105673158721565168078513419951954274333406956194774940807557952055551726208147324086737677664316025898601065787969904526795514841842498165713403390521215108270099548336550364482565467801484746189515217030031975225761518687960130915119084431918140487989406450951983514047111996232077004294154605515709932017932253483794620507344880113872552428329142878742648199617774978536522529603834038622083159199336712347099511416732437013330320715233212421696912918852686156499988834547013077370898915745565316690516341018938789106670627449793016210901832698367821850179508531997841493058300764016935895854674882968852841961998878767267916317094940665699053243953959644428204074932014745481101381288881703865969439230591785658158534194486019128295042602423882557406371107679304356521985702087401484189276994168345990331972056192357803423914476366439220855011211588735281816360577140512729902361806375146399081761539228118502819035406942425180620400823428144443585092792253533746788582601676607935005716220988053369042943207621235897931213595779951650595682335215179838711556416910011234158111141541040759814421678574571399132307404637433221350190633522113473185436889131367595355407550614398966070244303713547528211159185042446248991813315453263701762557265150273855792392737999016223147043981127407932876441148388298841375324357479545043817858670441442420887459866099240259675868284576890706610170856100342045649780997893593790556265719316966094539878892821711214185905720608369503095310631401731583863726596422652987010124477877253693611754197423308049312334877714010907129979375181671426818181990379153399401918842302596059680676774840839058001171298891247734813729569879232580199810015429457152371369405311630772134935765036467386933000183596782049875544946340834799315291455167800883329071105712414642971234755071946657818952325415771440530937148747032979045599887035686007874969680325158022799972459236160004580839332636750530558638165337984244254359689757545963186815320123267915962136828819118295641485960427633021377130114913612594044708564822570921391750360089187679252480376964649166028044201951747250647752709618856537956979643396487358269787517146062747573524989792073349954087725303610631686660205186425253293987995305708204384365877986451660310992975471029504515480056459167821087322661809090828596931938621776979337546660646257715402711885134269739390656710962300073537235206637072800368643565135533507146540725766906576945767451174232059782641466566269141614216972002391679398721242778927048938095842263879442473989073154754182541639233111093399738010946510126323472993186521644653530049161102749250395343912437539883473289966600007020024863534073199219716963621565485603563594217315235534561153022990411791411435945141311773194151636443432343828071533956944578203072136905164066841903675254720803238391510185504856605251052179915182572230523953716328834243083298353088622211837821795519662742220682870249362150391128156239270961162734443825973389118774548990633496918856725754753985856471784328810590540801132579278671000510004576506814053143624967312501788655476376444947078756482276039753670808979275126453689298594521939529622080782803486937773010212297076800275647224390518626708668422398126541883492724746557426070163342700632556814262938096720290289204022176422013501674859769949367400731506308037593013383241093143144166413166965373659094569399434079578636172842655838710785151896204583167585633494516098348959180473865400906099640681570009843401946293051807858325636924555832470596991924522894921017394310167310958407505556700832307813585040687784912518819991590040554879658502809690555050098671549735034504451115545674975327966584942641993496373317649414690747554115858823514198757974384287339609787662477016900673578547969745646022488271708503425992919982907500310926747821888825790994790111617609855414252540828036256231955481355416431105301383064228193088974246330251214585316241126992745434445575360357289051915668020144094592554573475573768500219589931621135820850177245577298770407620299969454177773817544001583686206489597217345426756381399310783972430497019044836217912348191267194653272315815503217474559218218310749398401350622515751579175520505478568888620607004801041653363772970888874425276702010581427461287524261012773233670753940241757445804505441738060672677501010264800842345878844284916540188797806985718149840917851154409830952476309493739989623950012984497898190713851454055079157099457286897132274911770185435126305210367459089863357906548372938456194811442969629239406376887278966933922793499628550359102520903415138376589719326819591805162821294793425259666261586041763329730215724447699493539257397696032849764661826047417450947835734533627593152227105027194900227493611990643604832189876799466930789861804153523583791756288501145061809626346398885792008677859687977380175594500821533969358577546765454576864460048197036868590223980679328890429380011301242143826495408203516928832772476507749358889501818094590578726290793149694235313706809155202802998019760747413251833784840132398039176845815687573522364376349006382268441285341427111690114060864989008901555015942982429561023757691964807815708382524998449037920522937053716675883795704249972656501823707293755035054158010129152542337951996045413422255809287172464865785625453987788690461946082771105093330012061714499457868465935391139698733980705872037536238105030378605280828636571358122489209245682087474964274409330697882916478707156889061522135947306284855302899209728310367052367287229236117316497968783809878984362878311009326037879789577594687938245728622158707247353497850569990335253970409147435074503290396291037013268416274811976803416354456540332639734173137253403303271709184693020470689781379462503869296369877362304008577418624035194171428724490641772399916548736118453122006804307272680570410294561243458249793035021925214462648073665838773336622507259063117363621037297913553838202283821858028775374154774437208715513509039277150706715922132488139063199519793217243318059191237523586331792971456259191791581440666905119173289785477934191561979510799202197071593630225138881632549281453139991046365588098332156097778880925091878021690912874420243030543089158471829957644900304085165303554836163887244765936430322199809512581515847297959674791105561854750719020713861682186668716063988981384882230125801510802895780102068826901405359569911975231307976533569035188481563596763324069466843446407173530941745073462742510960257367869139167392191547035589414032700908046530018801787198324404699351637123459839261395331153133304187474631913686996487862705857686261224784434232211072841114496627551582437455270552701738496872784842869590832971272455417863896117701433645795996149597118979631926487801600597444705180579193778299840356383500976747134886089578931957729946841797938318343395033231400597594002682337777558920821597200950651716409680171582036465045599386098624954018925870867898240098726474275673082276962546155993295599563675570648874048690093050534983875745504251508336898844497825632737359858203908186762268630550889695101401236046319794741921902127867905727540639238305296529880451207029621408484841071397080655788155328704045655097222349157223333302141024961905194604932264389612156387010158411414450440124459248622283883928453818252393909736881779285437971192942815720823665061444578759651422118136201359835762447115211760538635463784436028111772606216967014435441034363291942489961234221797601466776257489450066680470305794042708576528638438587374637800493797314105360602518955036105863307290129074353139447381228381094230677654196168282844961675167914160100251649847718663975354310781350897310456159277177331437403312102590471417949710929900316816271163811943656121916465917999446628301039654078907313837959136971566432178821274231783247561347584827127409626312783702312246755286172317553443000129066065239365330227058655216251096883761643550408559248874725033998613746858918752811255136098172389441968587789480103697226131764612146120275484855854523508977999156911805001615795633473154720097635754150359184138662186476834558400850372021680890230715196953966466310629994279226517943285920521561660255768761077773969586850046726047445390849887816533561305643445013510245043779407540727517294291504399295874497358724466020820464028240884410554796237087705675178139257464367891288407115355369537424175133727070231894315745970841994947471058255915534594263057223467080623470409188910342108132665891289058854925245605698532564744402632130941697869398530263906189758742150649418263554273833350766834206465361014852838712264602782726195186419703425717294780915495570484202649763757213195935628396938727227239126410527322114161849215278555229066641113097869443739224062666749688270258137656865637588886276642553421330377596749370509209466304391214799237003348897238961523964360678130333843284704758595622952259117482659103984401138660345233614168378566367503470215263829671235831647991262848123710970680085645475753418019281547257600058291178337117548897527543520978919677438537526849968036881826493909049053029299463549869798166774132259938187281907967111260911004259200654003826767245125899074989318576292689413796793091198790785751526697912516641147151129720378760777252263913674576252624302758843031983612887997703435959056103290024667144319162369227695201629395418494312106157035195059344146521886215436878645748269549533282692382618481295517431059354815123344096066183774310845566709713763150345806369056955601480051186661809076268551934171863324867906741342461002759688513170033954969210431938377872305840295526891660950579805882264321055056211714956171291603858551317433643712578668164932508894572637346898324789348808090638668283684069439609808068787034947447074066444905598400110687672954847329147917486429143995473082776177552493228146518401484216542347138706863506446553292864097564597038021430884603931125129283803842793979484187277722813199061721054673219519245647631587277501304152550120811492691207036009656047127548352999991453538454814110010537153825649141588001426309026463298774097712736164204522141535981252232278793605609011346746280463354194725241661148909928721280696174030172362057692276923532255648015709055360677386907227450346894884221697368340260292661834118454498611685054463834698351434626501702794749402290471206223408649095486491838581847313451401963538201558082181981792557725949509119929891498779962478565546123700760755086836414541799870979373207182842237250313003467440418007086910201372248574545280593116255074036060535649856789153829974991851872859493038431808833697540897749116416729251728230251062485666270491410607157336371046590805799782571524141642474625604411708781686471107165971866321955189381871178491530048651552461429971356840476615298799574799405968798231101836890295556917771484351166408690733143689410562636510641788704728773571728113334289216636533922199122945498185578210264702337566872423103115287606323966379821256808186047322348127472352658286476076526765246492091545210396510029746077341025537201138091080726805290421325095077990980445348342702715089902983577282372891521790326890528120462206571769348077568645048080242710216322725757894904306786822004889570785981126196628942292668349589553621676846171206382632638730866533654343174063138280720505025297886468538901112443359213862552532602460913395134424151546842075813459946202785131516678489242568178183494823141284552877601046470954165123100133791225972067350518584815845766831182219862864875163859310104302545593017440850300141412472422636538862827370680990685181281674200914840282343934608659978894745667187868700755807244020351958349645044378779215089169915230343094166292332278422530702908793877227620963978504634981783028817454162286599926987865373954602207376080368177507025935733854697673399155143320527305797071862678259797351140330805175355203365359971120595064767263901669023038133959955937887547941498849115955372592161451186467970162597391137296576553911228255291686803714554712189297993985213152109279506349698098608742765922696201482726510223757802280778072165724776053828320142858398387439847077781381048897805608258069620992105706610575055311292954739067390554119882200402603278606643537845373494519770830623747775373597303021210202932171003351394481692544418011644642862805697562391501755210765559122050730157514223128597429179409381530461654378351044131827538631896518413628244286001601888333518412915233148463485651832452155307257683967031970307424764228556563699157018207043522599177610509616847166240842751305055322578838995757621890851244924671275147798678649897652130836531944738508257606148931003724437798559560703276372717377778472308962737515575710158931427413812984745645364693101579253552823168986255748759119479283192209649378176504420232713556353760490399649846088143770663404810643475035830910970755986143287152100988279659269591018003020215864639553636488030579066221549064320555563740644233311472081923350524373036799713822551150573729616519832772566190870513973591786666269625642002574370093856849943639864914675402889109121587479027929825598561003346470043772729024533639657626900622401863515351284550180358103905863611466763692028560407195047719387026441081092517485874158411513887223682585848736794313633179327997330338976764904963619686257655379193773651958737265020428348558872115497845356208592711049857818114891767936551510390533090356981070332278756092890345396125324681961030190019892661817806049233305574032292194725470308922486326964996966350038889165943440345635698171562823808764361323818539363308113503576254276540099568691743174984878814858497539215334432816760014648938779150182141309191649622604074749391454649593270227581501024146426535984843974298794827310747118035495853091844800721919195437315475526855580760798449043655300041288137307888029346636454111046950903844443931692101442668668741158706171282411583979383745688182209176021010871209040840176370613013178913820458816896757363242420168363200839883175336158952039016919171500048285236167008525835455084424877820140275196226331704018312771127030380003300643693307181435310116050956426068165561229278930747834991495708942500567570548583376722731858741799521925972071062731155844373372634362583365590400326721966603058657860731892663981544772449237234927484044837370876238392128930855315360126922665127976744506234472420200134943345723741754025361336719893276048592288170601074474192821062225479745903346213441998995520398688517967496209264434108748247693897621921727241667127818579580668517271662040386259490185533136117731792641950122305138436553291541953894607748399609883058918731884938455726683721750748391353191281866688271307426262001333614297265402182901025180423040937697071424298150916198252353596301038885456475756830023771129599557795071129301076161528803323137988572424787724773310560704269170493334438436894310731912557821133174651725286697055476215137630358285249949189211782767003612757084642596127154696162149921775203222340144116286871381082211129587139230495981112909566923738334694374054105154068752884977752392650972094862157210008331814107723412925099067958024303403832117094643210340991098163651013793043277946191074171619224372677033743717665504960405621211737473501837774012081911717395797702248091782637028378619956560611883085841631737761530390384613798327825966857009518250329061043014205645740831166495969164178274980050240729301694232481736089174087001783626836353267674269144480441914987675584023775128607132958141088621580842090400572003820466289528290196367930689974910253036157880817449562201916607599369283756745106014116744903197428073870214000314773755695254495180627412651616665013537126407256631006914380514742354587398021941990978122716569202540112669521808994445000591668330558984677295036536014700913480965678505001870063702465548099074583834876059215932542146304462095120319104173878372136549689671185904105857542979375727663344812379728703111913014787764441906889813428686368963917110730340921215335006894099041148881217125615256508850707474003369308870202926582614435475757940260169525322855017855661363211324790942168171038057121258502704012394280081097614559163472713966434531131790697207880877775800568712608694515325900738198598077680432343900665693085614033544221677190118407183260158978008256084827039421017831909686986243678803994234792029007520762682725523366447947043336181945830547422019725281275710098360665530364592283050892563838056228436604670379745755328020307172491229911379094627058855882735639083935046222163901728023266468068733404981672624207104870435336344837737995521520912697724892094926246084567126937119308895999328567380606777099735781823142775233390218239868652125358310894467086197382738287227263521377979287356665393973498122320003471129996031144176383567336076277922612936556557221822397555164872764751695662250046002721327466150451949568561401665549229679191636169261127703377030251914828258375850878632395562761248728454689497986929410656243761703683781444921717704792928063893667370379647492331857316050482002298590016860955444394217721506161776966067506593526183100899974914203814058115406069328327666805260801027486957718562868044193673373948066449259919280428092945405240470372059808765454010916992662998636604060533864142938529592432226895963762231784311059926514862369825602054678330942480466840431727795322648494619971855326942916316255913616305315541907083748965410448476168111764438689657876463632748627685019299653121434024472138490621812555510723468338403019142696498508457590310798842759934522974183020945044969791131592740492200872922501175405237382753102767223512921006876340410524204299247443075663202991993641906069504313097019419529339501481694144309815946563701807114929295517823966142927600314358445524117664466209680601276557387888933001865119657971899683963589882443319916487980751875970756060748254494514115759852198876043582738192308428758739404859573076507906016887071395243666697454907238364742749812389485324323659701115774915759795208637452953273313028662804210648720953705913627598874562507223737409026682648662824160651757430862298088526511050985863279608613991753523587028451849135725792332561559805165848807542082228465280528003868332184859557493196403554210016100033570215320988756136723122203593450904842930042934151878732524875732194208519470898858726671316437735579925473455153784678522351139258896868546871551593780570186194278701891744822900988546461345215191497506977411550637134162500564380034338157488533420333754814775594733332137178159475591601307290615462088074577018084354226198596911884087018205252697663508300234870209586827636467380754833154854392421567049810734461810521705651640239234200339347916930746693413471381671077997982827612600135306639460471984987024572694733986672563351111465577341248204119599453180109019656850984659825888997540464643665664535028917045763879311789411855094544202125421394487951726181802488469014767517723194306240872799170585293799309309242020588764803733630054216888927007656110219964023501592274255565625412798531693054360114858045653669429409282725948738454213319393176344492757636512376026935959890648968019861498577510983868557517089052375674720969185936303682124217411566966825784768129520125359570039409448793339502727949371873997442070432559283680568247395711209688728003583636439699745272085511313902144481059674706460522318650302456474429583990999506760307911599192008264579487343610984524713981786690374889395674967983236936170645824281847565781976755705924320261553285197266651146498436538331710599174811476440272475709642961007337797201751286148382770759704763255943531023420511768160593906101815447660227392544107620619610858611487411538655691610296990451821662601370373469061608437874675785221997078067885159647871384593644517612158919602880665410359033579268396452184719620791765139720194776158185706393611526784289353809016838897237750197701948862563071854899756209488262949302695538753396078836703722134663105533916357872286715760214584124414916798831406876420414996356699094520614860043593864608017667709637628614162232452613515679179145910650335740073751293162860371212332345497395754938273056658183348988772625257108088832229281483483881192847869480216177620152721812141748308944626889011840065402013732505579757061122104137842235222267358489629576082711743689999654694524370289893805819757007137243960420702662044901843680707405656802416773395761352544232549005259599391810381895019047307402013542440305948490369580774343640709691709849544097073415660686029416783578523326603760390834313738391609502083782600491632001888534663229908195012006696741806467881981147464883521967635164628754041035827214006575853921239821179098605434288706599150123697588699857076492403314466990978351196519062624376900415633018467938201362830533681675538827566604373109923387658059067559968302965306793578510001937204532520474499406997878310208158884536648874444994803713464988546675622020126742731424504215851754007169152075439178284546324653626211581822098338070758316171511174325609549190215105782330211784827497241508086392943210947289591738247532896025747386909428091304480690760364945164272368404125223027565409976398851893970263418290277721143788713625802149682899402770212482503901867379577738499908529890852276177065731320705710409054000499842286492702457433660370822755979411460965386562046688410743469567980256920857726831208356509214490961910750009894853105521065458913857922755838907615586456946180732065330763910725509370604011691087053864916665346035595681999953519081253760940830439196211100734324071053194012445731559617232662355443177339723963444826196926477042164252618913321945498365925068062968501694140244004446575238566783662416588845442477007278290439899554388290717278917353508715013120365081916188818261808274633787342302541590570843062050164997240847166464035945443791228379057475104351490326710470493422503989568720483027195834344357135052045139016807299464156282409137988150288282974582054831120474309411640760428382852885901626817300317334172094251565235640250476915294543336041780397719717097814064623536105940408415883681792687277933842088947349571539208189436084637079402665206970277313965105997855554272224727003249900104202203046339922088147451602548757193660553369797701603501632119971743077301268476570279235903572427591169500471347436764718738049913801716874816217375910129455767709826611748077291594385762668092742544096673150464069833166704422240873993030397326477914520269448775586394904512653039903378983631561162514439778512970518453783917243303385268616867814904051926602727007910172730281595398587395903473567928406569353688279554925558562807265784369416531354845597835600720017039961468051930144573359738505774488003414728037231094094802427803066054078996122205574544132348892402708178921744448159734824953531183284729022772529412965629043097922410137378903381383145817771935496447738570502201378341744639020441637090585993703786727233987809040610380348444627067599014429864184987498834404531983116814180384368224731857668731940266425243029903003328565207590535703137207546003989852003425077450216074727957899334967227761987900097535992694131747195863528170585544524511403490637768881672833716323442990402334902799152499560219998053739040809071998888713386074465252364286965523987990114109320635008578460314164289062074964439452720117708046490892899080469657568603765084595050281444222482409399920907230947564271516080142517350828109049630136832141238596441272723291671314270375925773384220585670315253190119445049188975808924297629210882630746051045012818544404492735224575777009158876089192016112289355978543231993909645982196506454354093751212543295664261115522269777490581315228573502059278533968399161879867044071127103283327589129881004984027210726550640411932755286843199744447211241676329721653858774601456288184843109060752211095594684455394007693316286528619594444396783108771934927977883659503605956307287273627256706181167991376292615601752415132744174849819114279448883442034201609494081554514947574589721716101210982924579716572963375436612078571156967713573193165947323909338009724006050373477859418544903104855466506974572959214514833893590243365721240915112634147295442420694809935635561264082084768287820553644945682153513974973322834553721741947033781773400124106607757676506894425615418025236373299797339932799211250534828441616926847408693773473340363930345500025328161758811268760838764934745185718667822328248394777330310821649038906654125890078961093757337402990673663252591993626990993335613588797370272205930522567498784201729058334519845518776162241419755425285005499149853319769348712022296512812504194317941610104486488611998581157253520354642325991390430827775341924394488825129300944228492500989902263910980740636224854352941898090417675908866547365470459582096051057697086901143411835909189628086344602126323334320614764864768055439258898909183352336826429718062520493093148597109741390641418022009339277097829175135804952588538982196524889944219182200929150782057754038338421598143455957988729832522335696153460398811934086836852024380545693576396496408046802802040810495937655769366928715245692449398966975683643579003130878781255792984891872254633518420103953571103701342702949481327665112829636266961299993943397344354920727856360246669526047918721826180447966029232515958945789893530260341578564516597816664640706847031434712343843880374027087830598942615965924870551446484995175884327444590134734115863484102977343555725868047121238634814611260775937062304397499761883983794004971145451993494978370733670606309146319027329982004288918371257328274281443062314012175605225588847893495579397777361676433065308675653617576830405929407612605163890413402445298572511792052833252176480209799219721206290022493379709521429314538497136698819374319254629975876435233681946733027749297075765413768661602145016368009640319811007752748394055124143768993621838336887436954567662137993568723422436349535958135199104547614059672326523086757607440666511375547290735913274166849016466960736249432568392293309715322589241748947458748921168724294284424922536117051287386145059079630535129771195716700522125311212338073115478365615308153413191509553142188943387236925303064243326391375720804822559423710965750421823879241956782051074289140480987408071657200225581128120306275730147845692491593293478385011375631776715721719294606515693940371795885921864011018769109777189380783137080664042148171978947323369912908986778458848307149975382717504152845211767251731283613425809785965697006658143234825668795327532317923298184115704448535521059330685358267041050716733001690884343128024739020349886795770607935547911153223545795537961083808679800858651688589700252042411739798277222592420798034339920999299810826737633810209054496490714751889717886389081955581872862044213386433147679191176644938034387418166452664317699475296807127600575995491375397438129274080555895707204181310765233027755419327434524308908063620366364050642988946372458058370600380409229102842099879933855381889132957889049365587478029169915902818735209299191595573183258028821142863995026932960939782445534412188595834797490342247003210991265670981651554395501671267239500509423603509738355035982785728296033031834522272271396065422147793846254314415216601671636856649929720942343434862978506858872872153839826109609288141164446733616825462547842848994943168941447754955012052252707741583868360173123802628958394607145874495601148374860754688599577516140291525953237391369234397895940205360924356418550636801489001288507644285538369173704587014902055802362213128428640469915205637449332900094636783339935834522013877603057955509795920191470238161798532617834751634249965415451567145460209923098672537686596288321129518372917374990144745007654750532469122410865161674394090994921359747586127552961780305432732816578476765338775353741573843997963616263064700283340039275079329996425349032824005278490980777935648927127470706672423320089842057329555485991506689423754058609797296417256954647091207210456851541767171245171816589063614581736447213596227071837732371548957138958760920168543443408342448866200535484423447357560584138282013054619968183660739325601507349222664624645471957382580030748097204077662302958922209089248369941987248885435964545639484825632945980355193970937692814637984519362030753231289655954352450079119484321845373594033968501308588319630917056345353343068566423689095774066635219815829753768397607100847711936477683616741314247846636791516302103875195683688016861106704510010451221668274346240036354106870650609794218567221180493918617158540508383771728753234667149097057248057929468858200304366022248596906579506191068806014265411033314374434835014872069812215320932466744160856459337483083218897000776636052382735588931421982360440689228053948088241849671163339390180507386566911711201370091031118166712299751953772483551033746207605700721695462084507482415411388477948832823228708290712597072772799194748791583018880612179608638978455667606319818027311425448259398204000297712267125954573345335288347277881561357428506311507535792526465098073767142728672391485018555379789477290447962894834747444699720997226829969967294730452171424672499098025928151992647834176778541047096789438196709615014416452111468255654722300357404869166352653835605419943452209796273942096089376713720448757505850422546565910474842168598376073263307179900435872186129752071928847058255483530161818896261324740923919228970374459133597359388789333010334397927367987377265936460204998462336010694839751871428723939432706777228877729189153402363109638516188008321279847299390109249338961603711625209006078787651576722338270621905500058634425031809670638583485630004317955248900312517656065507298814050439226941279334812447470457839909731965024936405110453576263082728966669294434425760592145620440967683938977771916606359706346762814055700663442852939779525224827527360930924756012341571154698439074710285073465929725032527271327026614692027176958446318546620821005092865542910016832981329264464865301924425419039911360750332590278511391653226952714036080688403277765919323768264568705921935807458901721056976085171671398691823942171411272454601612983875104526390005294082329451413163740625274928399016958603601187097228146912564292180580682112700754445948863437952321257636502747254735823188384134285334165746721757108944023352572147780162952829926618782879257179282460160286277560807259640005821255251218858688490050991848699072498441018846247796733347385210983991336108054403752948062033792780847776713175914474888971888400971694512818050012621354516518809479285091760606277470139994959449776639220428747192785862061570479677162544901545321807260098282376366964566500325979697621134943017266679953509919595657565833039718595238732529479680951621866984858911064607011690850987995302930713595894388571751433574303707085698840687608428873938365740919840289939602294314660008250410074515048598799079101902453427142640652057961017272486215951161670758495944903778027273800804071064673165188696313778721663586320837157260145777753819314438549322303881876645095921558407089848004689214661719699282085404538079636132431780422632660750219699790596915992715958398175939057796427722493527808281506964806640008593052572593143835698158796925815682913847505108089780463122157450611677592012917524978905788788445561123369639025980644020658052900303043079616344906965856281182560890931690527867539191751408634356436024053708603652254094330459385216826539451556238634174278772495424439127438215423392981695450467962902628743911860640019308362248177262012496904700797206085885782115468307585433652051306774233551819492336007449382697007274537381015762492347757336628653727823893066891882085351435854254342531666236056386127401317756566230137927789244141933013535299664246706240127128658253903759139432633468720685794395059331765976093989838125215552475143227018110089958503476231780169144504084969362046351025140516487920536333364856502524680308122945079560935568882226955642428821369356350751975502671974239071014701191638714232510810068864091013867933263123775799893318982479537977936253411146785195564204214338086974410215113724680316942132740316823299497221340864846658137423732275048775551609530247013943056199645091972609426408703528827373647701000248386424021781587742399746905912721253650462410658508511858997877761555433226670231510080912968049058895350400005718785147326970977827080118733722548062257987088967160884964664850472621798196284349693211502864530061011868108920286785556330085764618128276802096906818758394655766736927379854127981972460129754525874988081759708620873063857738098654915145055958156845220150390279709859741062519827173628020829304816113955577459086209366171635537875955494182776694410813440318652184640547044428416716617867638274033832120939616377087018242962736185138985392942935258146277500300667317200961328993939104113157253746264862646623241344631175412230391960725903908442768851037547194162069436576778270356041033062079800156290847518752015554479882820201779072794827865832302572201800614939358576115573788208486597722343221468190249713004337733446758802719187079026000637475405611241968669458122439748937923097237722655868033507314692468027166851389317140290999044654511605059707561001408929496548287370858760828386394498008245647864424026180527269695514444737529245216769089106601574970036531164361798309060527793192234444039397742326977101991489695555621128302849848272749315031663172499451966237365741975067970767206745638388926921633987577510006630129433763969869467889702844423414469874931717748753833017854139999440264525252923639932286536454382615614479443803677584967141575858890284130464316749091628840430741134831281147044708449174430280115886629291274289088795500054670981973333734236103927939185448412323146903524547320594676868483524413124277428594971443201685219974668396867974842495890784110253790157635741249669134300531735905750245155207761472890233483301292496004458839057333965756886680161970045319236910162231500530121612181038913385672466929432680375073775990333874800934040956181748418106931675796093944502766045392700298190987224768587408138560651959726081287688254913083227592312673601021612844349004921161396800886034268307294329009230091172097010396726554270019892142586898137021601612494218462159568786433973118984848019739604645147321454269924314613923350221661195718267363567313601893821310047460212377553643484846795369517291586294650586158054522679428642512546400845792430677456201375137138734370719005346935933990256438095467851520475916638679633847364772087776223412303156437741148750296524069685001835153012641831608259642276889537522680540580891856610220349074631616110547563839419679928453956067404482475475371533019570545290715525430900610802645083883306230011580405747883520614154483950510325582327053548852395515365333214462381103637676544924225360727475780443574199368235661064688665134336660552237976806252855963958453553734640888983459083865942625587134411239541715634787483476956641959422841725833316189268673846404291542282426532592511531262992548100415472148216585928916807842893679739797356378622386099776334956883180493588095491117827865499654761011608081347060580549558890512202093685833882624843700053241460477408258189102825048562054136961378274189091952420928568155973882623625106698791775545818417840845319860747143382939304261580222043306252581101233583137806726463895422385367343160504054074626455176361683087744036280137301966322543198843901186227786075877582924297137259058205674641102024196913677269408601503468451748603926628614208008006613821548754691622001577977312405621869307823972507936258855009729902866169946940219301218505175298550231584896835932064948841564016625805067545814677668187844900903914940588966569097090062240574119539512934070862628164738946729351009176736064616509960356066048578575514815965180183426479315093049922986634444273982338183747817039994180315051338564670591012871907378773665588680970436314724047805749145590582703615360809863030195774749116112241016237659117468226976263920842617505504405777066108011277471520214880937878284202572086072607733691922579834726960264338832353046391704592301028712536715528624160162909115270234263621922642931971045846284868921174435008024372271113456185214998964034545658621315068234002747790439248860842365317799511096407914244439884386096371635071503971019925032082698047674565609258316360319911532667501840065600980892596804503421800154978952009476783460466733067524045369273195437824959555062610811149922799346591993606094063773775813549925169658083720289235173773110532452774117226628881692006239634902010886886662475537795539266350441708186774947752744528399208088541684737129268324714140654624806357296228846688011500796472647577319867978965558288428482309749084030198340598528620543291772942756494053223192665487643927769471983754461365156119442148316505374719058186426696187093019265211405773333145357900984211394105750897763272510609333381631847714843486882431100223306843558568591690261124520483062912441996816851118509366569190602593681119437532152681222543799012739497218352772572342174592487016016552870755252325654949022783755324692047862297675041382473327891211154042747496212144494590817957507408672444217931528666173483309518783598339242536407702037773448772588552524178602425962616347804115996348049440826631820885548235751902252046722888151743022423700813773696894315053556394917767063242203564235514552397001443269671075317538406688543928204372387036906899758170517535905110593446679590074137238802870637506654780119626990135050562314021907472936432338812294299458166416539197945949715951127015610385847081045769353142590332822650161436629647476461130073108357170933304062292200796200874871962621647569356138982837958804852570795771263281674833038496109084216240173245389431160571547874163965427166513983194429874793131037574962231095596901643436338407671650402122001915670490007192224231588648783234254087271783012331428034780899363163559765900636778632591431971752413198795897663010083345483960563623463447902520276507687437550149594204223573284865414450540193994497363194515006972938295729012803642119774459219385236422451872378747598423280662379613353167706503975402786248681774937877446369475137476877341481507094971253531540348919175651252927341322191178670192038222190614831227501207666223673621458815267717474507516217462847459064148355356384819015960559737298726946976474135447982473953856205246456617730393049736992801237389175919463191175455529071062054812626149327538648004694608922385593349571285442731261738286476638948041505053165742009222284415632421230447930852796477030153670266193996586154452203624397646807902194217717385969139049138003976260605283032348040059876825369806830717528660293828727665713140734872784632153726025480366898653473291197294462074686865603819194377672718136300076121536449547004374882090012969571254085521980317959159093895393646325664199610905166761865878219050059913688943861586018912265778865561869261882974605004367023978597926784628059476710525834683067682126474575194046857677805187517411139309466441446279268945956842748314498220389696283034608818651486775219818780169996084384306158371050938787053476441864518455102411632293224549259339434589253618054229212355821957286464981601732276473482566382414290160713779690610076271975888616151465000910131604624896093590872160177829336855302939836279649514733364827933647455595944168945644237096535516220730128765857218365895200579582586051911881166555839976942010606004516731996465975071313226994859325606307842682215127761122628727339099878968210417902089599284247438270187140091003389892411291157853898654293711457362846183486412136541548646960152142584637059010455584773510250348533499355552804769010330971598863701137269511553566425491237279801579987946016437521523531200017386086100282444369735384554489540248943436159228021203675364785606932956862691844570687218099715330273163389645083698541175430935820243500974823781353411254749827889565458670213707783286819543085618778579365382225206581329053789091849053870305876353005613671951969978310814495819891182248141348257530558936050255844588856007688479460781368174830000355024259528292198408275472405081766899918902854706680278822018356026257514199817057088985505983103164542248423257761407414328041885802612129047848570954622221194699515972056057925095126641048937897053303525314090817411901099985998030870314190353969356516698544570959161383505545569196243626530458002610988389467290011975415306087333974547104902160927220676627367293720175682816883017567418996510729619403689330936895152645556782337895791436248678748564029950418942085620930228486032980129058798605550633393739692743704045539687143436887500058285769718228312462312966515458996648829923278544501420592080773165248813583751526339112558074725819864838456888015837323047997004842988176761781024549982470161728257699594730350115210419247139297579462219057230100721621446946674415997722107810812363579166324361776393125103324555489062563759296802810016475067497449009521089213519366240951877373058489170434832648301149109660993596253706811696899814009255063370490969645669584208962967533797050121995800052095222983412625540149782316710818941296501177133746488048543986031829029740118526482242917026595321628861975878564504895180663190707897528471718217526772888907677676325173591840368842773573424397009869485751270199166977277704584560168274707860828246724339980248075901756107307914493252440940306929573184216077189396366185254560392345599381578357871595684986391367488143246129093082921778142897625136654214406029582849408450156412914057081846476555554100753106732797583644053091769329040329538511438771680345720499275165437749966568782509603143226698636658565718509510337565130172360306726700537183869852640295143970082388002278257686269921174552211926500252536924058357207720832619742659572595246655227614947433928376529546198794158098365732117648056541084386650105045579330970660114293408056006682393712059348631084289408548733690737177289539558373915914112544583206164989223414578876325056157298765898623837794452281630452873311239869592814703636236622115019843092863162844819180814670075901493709207986484625116549383921496932901895125301604090458353823584126435519692209988318465518554322804200356156564815806925243477706258272814243555745264862494944065864409930309205280568648810765352563327301971620377963357569964716168550789259994058599716124242926296604228213140743116344166638554336931412860914052748156776870046605329172226201041660325812514443425124603422670166761262257038458634061532562339780408720963758850204687129429423074752168781905909544293772984721703461933955557974703815004055246314740110027455345919764768865739122762116850639109250607471086213432207368916178874303361754499558273474083512012071873194536534796405221373209180276578553501214144512979686463474287431612837410354717998337522149146469368535595063654648826243784462953475247123361669743259113362178376095462005391060105371915371843108708889512998678416318333946173397408152995203932745462412472856629322857303638925999192798286898659131587792406349480159871049927636686697539821087823474150156495994705349053040964849193161499850786810918633185379282132264370480740273669712045040150319864001617990722974226507937117601896425945506706513105371506952248160749955246845493017763658486829458473168331181022073167824077457215369389693016696613845570399998506984550033575798248295766572222800014400950552906626333692492974881667740579889731144367107093869141607582960466003847754054057781618256957653342626556602596124283497817320758921080031919039688246425190152530175668143812394898296094654329261182223041257374335650691359537823316578050957793616935905781868284736400804304604489989127868756921493126796525284006954911354971348979532558025074932251415833325906639778887861393595968357153259723381841598019854150144255028698314780592405007839525361090432476429395473837245006453691325407827061718931632123504727756097878290619516648487915515506914765279649684019464557561276578420644102948352451768044727895389017714243833889367519441681062658398239857570922651873670470506715713363938988770690718795743275974733491473464646979044519156022973647233728686309563551025418224287657384862720884322346779822385977395517955494693504097769159212723007392507389799080218548303294654342420393225607993754574505122467816202730595954254997830220975931857645183403481930377393154371544424859998515964106597764041774454809294146432367476785314327517958835461168211829157179350576085817507947624216056254087492163327518291924316030476742982592734812147600516480065357810564938172338279029099250455607156976696032027369924493476472881775169526195803910990599635972920778179035968391074644003588058012911472197186063833222437880001848836837425359255358089778508000284694378139116750890239921079303211147218215290724043339358001652565601581369511177666394057186095323207801378731967765266528381029800541005106177643934192890929916830222927938615744991912934750479949798940478766735706323965812917370705012230296594613486343109430726086853551270043900069210636819514573355024841111761647346742624103287894941590919153176795427932572987280643067894421597427162674860942156302672651514352922362587323654800848212270749533828738540405216345257035529115449234541606179756419974116564677302709688956241612258785455141679120813872874913597749751405824447006037495781395552991485826147473308043167439264590726055460248291450615616012674633429696813780771681543378775782024050703598192504544938453580357125470428469489547209996052223744605890024823660017452654658587342414165308819491246176194062123488364755301804578933981510326656838611989297675526331384663286500317122212352934775508777325345364129771926730303135978354024276715081728640600108378493816146606699133343943626870578924312085614407217313107244987393402544442394159372025224670042183299241694256218161660927494132005647259919850055066655183691518246998369012223650818944178351075565753834126292747108718383802761853776931083950944522710958324143944415289796683315641876797516727196472851230279988942324115695029130176721563106083941386879850245597356322729437124574839564344754803109277070667243478309201455192018841815447741175210798368825614029540879633301619572006077279408642380665239710862233056639449930127117680292543054566528587841674011337474904131471242369854552089930621136850231367632647951555796633282990609800605326458900918447741524203527686177111946673396894160742274170527451570327791122219071710245666813829512466361591897362716343311520646332435347843198013506224319857337355886354177044642078867020555418310602515752829948446435389636099004844325384388215706563301730119445119043918878514702164994872659131316637903300653713994831329860887264707927458192488880295384642094495861957171575991561856855995061224195205607266734047309180314985516806545977056911307861803961629453890447415422148484087779113514175259102757339311911575874179448978529767269263262300270671096715449586801164707394611414990247954484638855860717947696380616375140154351733972157852204862734348557113119843607984765762693169189166781524854695106677623270312379200865683358329218401251941909588853815589609268991590758685431470115094322870115488245510986418276276098854657448632926753967298827192902484356554889836335437518678438844989974997308247815371310122446701730733749256875814354514352107273119014420469276018862675661796241517814630708904163426404970978995562491558938938095462207694945414357197780411683271811807603973817913409195588231328614879745344472514366344408530618671763350011741973902019710732437744829139746266358624684625184160699009018647656656244717336797778194287265890655835514044098025451544393096970166462353498399343900038908275227177910973047052567792366307596096888410168124098978070517013868672522356335001557312900377414061677047464046375727454802085425495335727876985708078343697917196977496426737604807146647444952429328714906203502514926276519592000264578409089592318609043133615652817066678089749319822869068565957545319502446164540770203630512176356248314655291710458519046904456698733172814328869051096338722425906951726507846372540773912665987003571598764059053257385335666716782172568705039682501595802325079128674167376048079295990386552561668488686854065304816888116594941176618436232453931004430967387739431746996742778933706072299699593997102217605184483148939331404829199120669545069562076891348322739729403475484792138509199936258781648449027458144685055196168307392977311205713601114155770748155114802615326468806315107858452658368821598865559840064826482023967285981497913812601288010768601138680897119190793470054916960169431937671872938734845050067983839660563265522011139403123664138961106285294175379501337251596409696139964774408616988260363756365436002787904390314011059259775980443987672082873532139142155545671654300319597327933179074375267664446525322532892975167991871886515150040012317215684536943819971149085974129853542401511273267312590697707546724717720529220137864992147828011580135811367852083972953201038116425182370885691116465197428768334786440159179064164823497235149564174434541751113310965330095382117422951459762469475491320175303855901019766476495471673070947676239474719682482040597814500100482392972023012368875351913533866416866895364512185386213433226298869967871920460470894085664410558269703894950015396701338345414701015378622683049880271764600861313924830666214796573426836597204885327058395502300397675116616466039999412900812368637236403446002132367505365001268541747998134925195705326410967072187560973796338407622465236452886134693427015066717537452418093081886558011190667395686980976329337571251623317056094790838361272313082627878077995456627588347298462559678355162848734166320193218440013099394405262819289029968117915008680311396647006297897614472223307861614069049957658157533988311606903518413629940523304582782023537451798457153288357972365782922075463371524638021174818573775250487083846928044269024244791765074942870528741264349537231626393055342278813106378112771313716439200199069842882999960299457500539130979047189318077308243823239715900362249947775198589653560891340699992181657727268295909091634729605911388525125224972150983259778192543662123373956551570321287367308069401105395719854004187333977297382664382950880152710431755039637408787500110964894798100520282965306595337726328061852457550206567414252772000328760762893474224309459476529907303450839711761365634451005414720276630475954782406258115947075661445068001473218064070333603374504384000039615548792289941929634167873393913019326261047003538576578809793742339005738317699917855920416294479692822879596482956683627438650889987802243722302429754775872411801410564624757533609286766230119553907186436257904704239283383790678563930573369809413532358338801294186263576474244211230777073836491213454783337882545201002011438459144717556889655238034743729322527763455784124303038546817863093581887920491669172413390513089445713538495631539944725232390132283013258738266234283677913285361955883277030269889855106776143389610987614892639559963323007108330318450394458474617080835527468066178927460362303777950885956730227383482873127081188166326086578079304041398248649477551708442709699079608333953500955667281676067471048055725240405900890798751130790234481032225197218700334999961308883277795146873116054367532983599259880549230646645562031196955655894855225285024665566928776021254972100366633027725660140760586616159001647694608697179596745344655612263821762957988234414227303911092018500430571707063875518654788557701336295061031094507092890085317297741559350401501533595830859988140689602586511667469365585952264856656349592205045768220750453338373341831494890397118538825939368195933426974730340756118610140636338287502414252668347135982491685450281785572856890168333372205183880575111366937945921091144014389202602721527294750529536706281173128633714656268257242396746641448937141427816206864244605780788232601949666895973456135565095700952390583985969969342005639350520781217097744389431666420458264646909443893614454935801099673063088122289321035718463131487131972299503910854337947331568859809714394093745103096487466582047066310220312914315205905366449827894174738510117448059314711100961226920393640604480482191420804239079615494482727055155638069103738504228778180404458935236066978444828117772051094655516031438747622774797986915298140109262413568233713848528326926573101315146227363167697122191742527949665620718405087557005034727545341023960014499043729632154507461273681334064585998224642511417935633567239489709291601525909234646509391287442506639319002776674016489643913350673134932237205235060909121826575149694736737072570742708627277522902437980655184978382746831638240709154240761258442549897998878720160768243330073128268715962023334518707155004308750974022455012510600067395046154777595977062013733766667136582473320981486697408067316455315224973480268128985751984697139406149692087057903265525776558117730056111609436792528196685746347691646113218591787727717949255506627542237299440742902311975103453251273113618470083965278196284721960237929951630151249202986046633022264706744316770634778224019683707268186913859790171000081591345340078656802925482931416460913572594274054170289596356283131883200437249581446930019680529723842969043395138909042486303476686875514301464650543266625520707312439490303230258704815737909301301340144270856431534189628441279873874659677249352694425420496594053488858847578559287240322764685255076127179405603260401486062769701699811920354185340792064432160108838514254665180265903634704056264566542750485099151508617316241465853058938002736314317943533223065077547555217856932580525957001478998505602854182737507057275698230447721306734501664572294438146878386556857215810552418394331793691714875876329105849520857850577910119397481258982296547658107009984727460221826438649116488201608349692707924036596372448917755029136001932177323767133502521679286653151691934651142151025798271875645777466651053542944142822273477764708642735274544996859984486544515894843394879968553478943121619136679125361658549100809746181855839891892295645503281966304026010267552094041324693955788259471662666017453588618830539891428103834504848849342059060010707472886025129399008892395766713719200277929410144405485443817441785575213957196233418838321662530159940995743543812449626630139898373107637516805350275222822535128791734360819712306529367071723660555173723755709862688041686098471219498700325037002858674787473449366214845969515807493810259691322700166016424030381423159715427614012962515126757460687525104733591812353309473361010181709516313845155340735234551684395489355189962080748845764270202428062614237915166520797064100851872087948177638798506026977566832631007941578797768088517240631169883643526803283101119583012899529323699513815523919990231603509409779662571720705193647330082892547877592291205625372724910609346936977244357064508383767134142331393243380489300443982878468875999449404385667008507309769449452284368620838247319028779353437436451024711198830068658697775253509748711139727538869392604262209104765702644299042409983171448363407855371084230367169796955426431064721936048370740833794714087407646685455614240237078200644427853917364700736836934292601129348002047662822775819446996552317375306210483741277440356787441684518264058310973944593034339892263126235700243135911471275481313355433284853962676512592150136429915647406879211522264783315715257239879272511805003083034065621343283367925363808021453865442001365142808300685518455480571545184298683938173392164434142592266970832810958585823617028947130534304775288985683272589902739754597538671360913856063504838886941955582281399355271996052988198736077061182890947760675030326448666990591461029069536758075977897085549401298047369975150682150998238895312870036837139692577094710012149662567380319333348641756550210459564045737459466334328291568211978770062064077100382065622251507603936898481189784274953548381020360526666825474254651237395648525901413540131656358282105708014927016448062920804978452579503625907152944691231677616997633268957597956840038553110942460740768226799494399061532400753171987738513876058010723334837506059053231901271991093402719488466191924241146024151162998263599816121516805382866847050242476781989333643173833463211982892521234826698328803668313813270138597415912481923518234074898999190374537466511670063317017065502001946510890956824106358620105974138314509905589725025841825872047768994527106953885964089957767572686952646286744230053004373339044770069288464659622847649724431448640568531067579819368025109356184390908309041841501614529907253918299347144651544171439566293165520655694446999334955806684367608314311365222770064718122012508760280431198149345409681713158579088531821704970653845977037296289659948178070326486117681400423547124186174915214448131631439804748726372192426658224621059785961316380006138708178119405263714068736900517962763824521418019344640217093635374291105947254884662551843962235572670724357005934132049301037250791660841856319237996151764778078393978497117583515031372000914386802579687973851993152235542583152165270941512783766170253442671028438254247680704938091371258708815705430023352143475806822154014289709656658395979640077112479434718749182326241593379394537946237747787063839587023483468550051090344254273114896800578822108703030457979391877374152331068380554645152626947015976140268071128759617756941578919087847601739179582440527808559570165534959755809892181796766990046078034471162659036285648908657271697964161863088614880062298258997287393274551689907564965296271082466942590500990652281658275452078152437942844559856805234625126933021638484084395685076375783869680242051677856212183909768979088672477583426761655179180964281966235255454619506062546320804899329917468677175815417456224755277609488233700779621910296273402353195833969997125173505213427429902286832577980081210177146019516967151911628264659426872237832457483508260275642186131667186757655164581715808795179659142376018805367262200027278885322527579372227940155680828525587173867488438157513474132100710680716285311000121652835198013022250009530701327520905539371297900432230486350058218425384211417375680982926750366798838791153411175798878646739170274304614303946103207529191072859668175581061102158535322249011394585740461955652913811167391099567134410385454232249673796825318156903802711717911283902752397054826815607541435856697693992001903736780028741708326021378558810843957680671037759524782583186092301998299415657977606334404512188425007161205777915674980658275335551605953050897212522750482129700185532539957961617017213699162938852094213612374171028426270485524202429666601372854655565386081853990587457446661860493817038678527495817829079985038431787254006806827441031567275041692009806534142620500570814235451636482063699327922982563750927708392137431777310002444811624919003022394526201389859395365799580980595196674504122980386547631622632449607966033145777252432256139448705709390662246139916571928893523082828130032311091744315124776611588152437341103913457314929538761079695846480952367561669604158703445663406288174140756168567886463441032929303737005645763134460782407537948976360191826493005910110949183096063273064384847750578491266783950725718599586313174367457186230917268518742343893808411448979526848147102119019445029862194985827191616618780082569637588242934770899028862577206176911425040231280374321935898231594755802981903835057859977999825549299404196588157861875932843142732654402637151001903759575319638360464111842926208962619806451971660825306299187281190009343436092087784882775984153669920422963268294063715918786977390772917001312336172350366529661498375467901261849646838085018870705625321256336610201616412451325873854917172603623867516143309889989342711699802993246375025628693432565978415507661062909130599509847771732435444833296471328763132110027261328763569002068956539802687919503511646097072132017017749435555834326358691358311431239093446261387896144653455161292429024613585551667410232789565156105515982545801203773635435290415033953265598540621529723982599344784951108529871427859982616775100116997487949917381127449283660557190594686381372121588081510520308612714611932834080443128862772216016794137937620422977959420932578603859155529519313530977250536119612410804032869523714404873197916274473300462408990889751748701448261365948377577737599009355124895386405675973370138265605054785999379888739010154223190488790948937144077307353979974730681873262257170006418158142566646366195945997099858902965571323588246869751318995991008680201513811272297279290485371702730676316787366336818934731084300366841426887524546833883380981770640007568003752286833866980655045471166224246401211967631796725181696843229912174549994914740871152837228723035104022455362034197630508313912070927410285613133799412060468651480591922611020929175399080250402297628876220959372351491866828072694531423550917648812173855069068901880885947558208089843757306719411397714539685568774743831649564555867436114591320309392777275468035395998212252901990029348761772943164672156663153244048061549933213677768931264988875985991948215755109993639097418408696134296220377912731984115066659660610318104855795079615689621858897519167899264103145317644023771765620075057137369908304875927758019536991476591310477439231669282674166384601602131155888856297681576644382665869103447429812286598550067051072663887193349244747863619613644152168354350667108772360854524080412959507868483085973187395451858286231880006917017491476355354248572975013760729747458323398583490544118451233256046656083047024012139069393129994461140501119894462634756753447947227442165441426180114207429814680584206779026276874450739838770579765229170856203808666533175102662112679191434377690245726641705582632220295506762976183137819625843317158822953960041967683351147433625114315452721929143283132078987968715174828737211259217540883840756950822845088878759576597432186872566307245382250841052799215129083349167258763736149261613650968254905819711022883413293429087251357365946216899639803097515070145903277178099882645447221112280864925085094526333850203812405915005604361479509069508875854933446455480220500880664121700970235507693411577300188887333726157288754565600230060578227498338328132818323459710049265388924362764519442888664402334807933921411547554234839906736104951116493858815657406441201266605396803056366123959086907249760325386798174630732835245455931504476280586549899624390294399472186434392565932347446142611129660150019423419851837835920183754064037133182435808276053528158090156029170484565392779243567286720397435189586940516446019322482707515620149623592518299693906971055523328148101502140697064919753291885419708440292952420425440536036597648572766705819202797593370950539538191659777158472569849917084818262978613717074139099318701095173778587998810593203411046643111064936455607742457157490064555009318972585239882334745671058983119504154957636407563682874032761101864869094622523574519376260035412683876261728793577921170531188184716744968757773176254482961362550571583467447232777815985759876344438321964486075339668026800515951416308809057243146510151672145995379504211736725910694213487987556725032314447974182716465928896224899697300861495435062104679261698989533341155194501575605223937903900804235041692255167344049431708010933141906564720655760713956332077428397082685855968884161051597926420491570062836430347277298457405712076990939238702142440413710146421475971206067074242436932655784950570646054803931572107488303421550454104206194590769397193499231385256916376418149487166203480375009602886832460512755842306358049494883786324870156781119067275232236043697062439294802704220777375073803677452149727161961375646213676214156023848696091036268878136818835877804545612937427455556414495681540507044062999239303911936773043459751117007369151512172666906953311683338025561451542952845803893224200742556178601075708129214403254257606674297314234873657403249911450685974376427781725254530825730292501607184408648169114139606262209318597137766885850741944936279148132972774797136135278403061196729605046678832608448994035129665197284181127003080385550307155585155269666285702685438277913534681219315334647406594081026395887504833902359375341270393641699531780827346828441318824809595672294901391012016762181478102553931893587600515854734716450917969733461960380667335239398854846323400682304107975933424133172396319370180553916581389724840159870553172903967995415542074104797461746527765876974962782180475465918306122749077390340994738770814008677892683440100476086759487828001418464491638516654772089066645642712289105741982117082766681022005466723539262118349441649992683186806586079691604076239099511325200116723513912769265618413209413499857879692456666265764091685215394601866255313998645563991509170013334482495145491160462298169734171448468140931294963846378833646055399842496941555516503220094387616268096424330451859567828668120468547939116132358344207706165231845940936594656358910013744429769696772856708571594564947544769545307800913320537925839824950782361623313572294797213423958294318155402855341726394798417569699862973398869381993666700753070406457925409288361514292197848276454013044426626511847782736295467404705071812507704565903979478374251218212120270653627523868671774191051170691648237498445466103837515924208287079822476302940586140650364233019944163473154623838243640473962745941482151393542169224886894730534501633180892280606129130500137310263849881655247065446638118409611729722480486206262607339732442156253614917789730964649223431377945610457623962128666474165105687067712049743652202385365195869173835018366315324905799659197369404265926673458438734056669501226065645023652232043484065650040134995722834436831038102087718070170594220518894899416556304428350514895086322346255856238600474312168874605666880884788061162682552174124236707938143627690328393062074634515754855175645640807269152557791647766912224285647086708567978706938915584737651822042677771944382565822109462205116842413651169066069077775395248055095063604167390416635199827582122407087235358394692167217051439383408394459554941838348327958255953076593733563284362655393758195494512189628557028816418427346370531164074239769108727931748607018024742012457677393913882757159425368815196522584399109854874010656720423457602487629742930544477818732973898587737145734044946148440204439168390664514864774235621175521803824431359947921538589578415788287583936196756673458152583415237233113308926759463407543578589813338407610865082352824945972313850881805849420140891673665226020730198796596273372217383353643681237687237230504459826295452893394542952765947988782922040972063780241137632057590160978320537275436461014708531222828945505884816788874408639177155907868553375492772843050291297357270752868167935091135236963254582377965419686063328884005423122642138758147834940529017824264064385851638797742414483827449037060908665937340301613787957591135760580504036917452827214372713775658636251407492069125514308931941555453908351788824746120965197521579538429405264406681866033712592847975800305942829791656076918479644803890107127900196975938513625826283799323547711477468183349458127514907002709394495624969157857966442616258423531555405873040399805326260842926612670941954482699031084762637362628997907957688696266615410759398019143904052096006838262031346289926803759349635846054621004136651756370060942678615331660819645753186741479014837340629374860776667407830990603768739969970645716107751414080904466734266558225997474605017009286154187267648423139479198430029231403972639619194388865774138256259642401127928158251797286623630191990597041298378313515034795411888300957610515875169054354869545362220261305641351077721853434693782746017251055501919262930044715489150470532647302544324256970618149744515531191021904164882459722759845763425666824838344198255215290566901973475659758718384057349898923082090526766268550273057611711524282410076378016815099163109563075680515905061080497665478049059322554850559625628472610736079954441241021577413365225539416637535740325753553790669202637986117382603075315426452735058812665150013927493717777444121000352684974563806027175156873164175553450176311572004331284829865637128334419133420545337714803914323892809847301215188768885862234608824825876137855244549304345058383545197625382821829543161155190615527471261978472701347202670665407442027305120270915920365525323484320884200601200327713728974758215438153228572747003782128361588573116645559124803353341616342569281832150869154943459931783999137776831834806748307343833553928672516506553487507212767792536738590534545628147080842203491704971094909555655034356388442527122633429025975946538837543784880783112176226797883879555964661168127978182620352147649560811010560588592832917036085141461091078735867836075333258433773386935337465905265735822649999327814968330075545086485167575530925605252921496493671582974342947874324672587105395910483942937708330882167810031973331427947659931041167888966788747916398759349711056872819705509702973255518642759705830522626092179624975068273360950534914786311485318772698789536105401234272777201884603552836486312853155243320793104991424141119432205057308205018481264758634048546910170540847225348488014215113183851834187192478783522181733758595238239949292417844878793148391251562331533124306692300535448015576718024588170537949793091425831627291176504567422776076338783120924797006511707947407409210404312678832950077059856884090009984326902056937607791497631628909519023781833887924171782942223738566521372500823154910026030498484965905941053513291180361093123909214569039791473946889351806431437958311746182350657100408877052880980633189185718125216977617724470123685478875603662458208618574249170480712601218257938279048967870529763677596452164007679605644823894900000347317766088369648727632278143401919890490316774799399864205696811973741846297274635473430872143528426679389537165856215243268054707808749039453734904079668605412569961783389153795009757828108433850995548796061669263442016621432520951828839711978123338426899615925622598937870309874271226245898869823606011180695749506361871083349879165100300263557646595724978587805417321175900654404336580095688799765682134450068942797872491894441904762427260904838301033571586939576515477113514556971192809014276797329746886437347576023301888809332907215069929249534288256450690197430257535636131077951334383016339021044804024681430805592675866172556450902419762329276145608624277622033017486946159433341554093611864848662781876967661797524447811852676180642832269724860913038632154005857491713620555202373085502689013542145537812886832196848355354403999622316292807232668642624358734013565529394603584289405336427992377958372895366329774784824885241404428946030969015120300659713170279812796983785835477309234512970964782701082772802361657314675829534525638872648466417543713141298655709255845643774091688608635109013740720512934266090608792315734557081858187304567136738447834255364125487164684694376355064839824844237665243370509576402788491610719824436373375022421862947908054556936730203957358105680463743335855703047167331261445377407722660749958544277718049870451256025668735641942503906537719944582368227211592891588877721029968626815835419949846888794477404517038436764469413643052552717208089416640945816374278036287776836161526787717349891741712655425690744488189548508985785096981562424189368560720514900911459826275005157810622940359271232338286532189165947798460377076461607466661937446498162091013934349379369939684832248806504766560101621489845027781577418960973118490295843664491373832453046017615316300045750653134706487331260446439196059514447018453374033031240272908085716584026730189328171386679188980035724387195927281515728125698399078160788777382867606223373388081471261113680958993554362816616655409883164354775377956899228938093871973795642389906843356145897895806133983801837391808713709211978419375875153136183318081350723164806818438128741441001876228491199592001051035873028735573472829905298660756917064336805252425441977148020914938276933860656594868810420828742761968884400680852076379243461892019897629409442467332072446334214923083241015964580482922170313032028753071802698236098765638719874657896959610359804891319245736731882543940338504377974895475509942018985582641276052991946780276882010287979451586938142552076423022673390524198979954636874331496911041682244840894198736159200197838385760655111299749312731925765870256087088931810448029202559582521773242233754179290437385897291776053422069416905259635344598345380069439399930552469717636670320023554263940052509977577102952872999467286768103398646059691582600984296051436904205798249323319980274346014957232783244697541101899973729193343123608215783296137628385261824116666842709233700127969129885091797851539646647317009507154652228205229612501135998088206442498294861493463159852612713057828024218735594451947871214437229338005191073011454118334610035486063205228545798214519278656923979681192987303195288161352529487803050600464821570121246289788748539968912401401990485652138046860990092477422511697689604505671636452328083420913543738018500982740820240635787820797997153193050700729140737699184986157059956205048304457408335536990764267138895227278091066821029099923028013385040205258576317099109338498064393225345511131647756995552026266146175859418104980618542796734910152870849228360470323167020877792059905404822194789349600158519507595633684340609918924588414113267359304380895489966120932104829456019293035079238838037243588115451844423526866471802477881624760278687825148042103795253907376902310494126573043378103987010867765204984376083985957989449112674555921950487167957878992587511382960608152521535859372685834810083069807461656628051137657915006588518733223226056718133178037929278569082625663008254346348184649665540347473064098958422767573109813225138840235930532562708220825543111430680498019445513366423071811194295848736974179567410629488711683714185857007791654088132288502406963375885406575705090296468560418828947411372475212642169630161750320210171172886454141532186859428298995897380683280053418247797331006794267516289100750881175609864366792474778622613868720346929838050650388105329715037758832838502223844940681509802301179097947719785707688409617850941589286358031945123673964013234223336903067687863019206216065641882697343113753298162531114262861651553803431433451390927929344981542002614462252780702678208552579485347236105185765987729432424060460632836866695056910543855509555263661940444171861917504374300974604355973335959720077959713916855411911534232568126920312566622468575235137564256663326823898875955200113026127342902857261487470384027588385909854328285198231297510805400996514984754251611920057843221667926040768814749958302196080379178280820344228099859084808085513281276589531522234437521456703611983905277722554757580701536305981935221060314448359507332312870212037726969008258408686850522291974528810824183226587763231548861287140615913819113908821210024047872507306631505190780451598966796238344982243357312896921949621705783234394926611247015800552363118126932624800688391652121111545832981079625366007074455663218517063351979995137190305296664979880603230112234126739035564552594466448544780546055643210030412011042136376811840176286364227524396199761661554069929137135299739570956984825832554312139084355820542694844645219057896828770176231048838087228389550724787504348701490591191559665383799464124225362573819463354050638366706565235608916267492682022812394333046004284257306490296973250377173065919418354292073615481267676415100496690702510094607850983771547955325573664259397077697304932580837663351754321443301938004921318519026597052691291850749956501013458155794832940284633337950361864704824700203948398395000704605929563959973921951466032762475573904819143741328588897161533952378694963503412000545485203679843329733786668097484931574696799044483702113592052064717069051822751260400453847612180941711573986903426820923087741620585919032557035165668194753959831707566894714523723914369132379038185532472427390790919717955343415390200055944057827223704879839165532318102670465488271549440451152203539500988316912532478282911697947844840513695925283285638758552545288916442122656415892168454647535753261081046536371651999514419072795927517441607311260197607753319256549883070424659777938886868071035514559897679150189578055496638272174054812541883322603677602551720825044107983532477164457374456128398503643577506781347844972570650937649568954250325888809541676855820084560200144655122339099653089322620267309619535227117901691071913678005883394674082129645455953710953995362702926171126029595354268339962620448001058164806667393654276709062749925544358910232787590849415007687785052520003475442900868868300065808791399113796437171360250262418626496020436200022846907895565246668439252606130366263717532989911201500506625409797502976093733136614353067430355246168423628422509810504945684818732420449074411619953951663833602141359391150751156696189148028974601149240779134805961299102829785772645822688319731866653338836121135508137478343176521526057125549400767642790790241803494095620567525750995657024689532901860254710727465428039228721678486619372061893408614981153123765744728656049641413739276803483445981999304500492685385737821795551041400810374224173377934447145919390098079439818537975217922218069857659761514158290120815609368625711909948344657466006159917568564945861113875328988646799651022844684956808825310559951098136976295444433146027813079310598934708774267623188021758804920118178805085208802704820401312408800982212318017183808910296318618477658961186273916516668636701120629005453021470871020081318073932893352859063743902168194504071340709648366164574133699875358139611472557135362482318305549980398843167364718799433904153170966452518952021833478731331541192653342991538340509133006923904855741202951766233408280303542560644736385624116288527231159038826099679559025766518101687008166839334032800056803723020757551349573122802141344654466246121342537934956242838214446126650242055707364050152113799211925243295327785542219373194855369245744085088690665947967738711930986748755933408809780073322376827899809115872745135915558046416563351331344884491098779355549833336291849942465875002918327233868278500749723822638849173909493335899345444481273096866742723905178258904940158858084331996462147364623966098414994845136918814950781983143774682809765647095167389005772683249184746491492899121387123422550187750783111968080808660345575679587935641952244796561123028128671462027930213996741325536709170104099827785657117911926854822200033544314151195392004337469536386640084945604533517720162165492143800899214142235387732807457185475922880660827004569359927614844554174447038867364714850290979382191024289991425350063890608976968436542028155638999261696685856853986086631241896820462365956977139331306972982628627426315814040500456871753284663705435113976694215086598912938138772721879624882899899312501277747185868810347435778378039619476656427593735452077670777412578973806832836209328714529233279036263878455686214565132995464588521646797919549140074697446141077282612633925322089144268193530275899323501683449515823907781290551200759319025259722706285145540949960206591508181103087326606766986490797893425490196422303524548101187860539392387606483233491887331555768779590418844233374738785798477201282996430502298241546187995888911764113978176715876528195655148872625992114713723175640038681354645596639709804551280836549235778424643691275961505692903403329478511310911925882822753142035285427648124499043613779532642591879544816207195698105303471345111905245041669167031879846409159203047784260677606054994297854106889443630155731615718629792630392413733122642147640707277838051778860733102782185783025520762874455043109899025527080441736280249086089517687229275782095311830871853991500318246198243290877619250546490643242731737807468193005734201865543798724783595361213504647408170921925742970144146614008038456795104448224951692968105667896327984057882317488732020912265995184261874481933389546877737002577121972925387620804064210531224960472003027440870408683553378697610488254950097106399780727115196686689053545112944287115921536894608255631913630676167051727732398715727560560393687819317065065061790995227250772454336072186113203012349648135226253321640939236166557042138388257017850111882166888818050239271018898495514972198726515335827993113615939781028224254686157083510294695498950652371178095459036610658792934675380860382481491917121289056407286675471573862958059255848360057653046792318482774905710150323214424378840240784449640604125364126132043382609861969193584500770799647009757759007957725866057039836555853853003670196333614795642713331903516245746682653132047326035381055903228708718675508198575714768196034101315315575927796610160302271199458896331417877346657874324139536231178467921343839723204511680950747040702547216789014816079352228251810264674152192266914539515500437604291581689048601934905001993353312596134379443417935638440919328689143712433146472043438984578084476058983575708602065916976525097788641827905135185016994404211070343330353077211660130129295836776178828058358848740641900181286030012179875943319547541753914144058659881605280074610503772666208634135124970608004235568075706107648937726551180068360391698558127142034531355333974037657305127836938992152383494053380484231031667398554472159364032713018101421848757671772549905259414698945178443315366606217592103874002123326689716638681716531376016891251958540579921313108081583331084113281887780202631725017181397096017432049248705001493617573825360523341754374938806631125798921259138509818824540811842802759612662153700866125781268128738203137606304667572409167830767244067745084521204911211531690133065350187229416673383747392778329960965134241331279596290785649780382874388535324749098406967999516936701168130009211392077131193841919903238881190521277082729488768564078867991837398358823120474776505370575880710678904212990029668255609257106873561057774497228424403952770383646549859042290546180322121861822568237495485399489354947780059648522834693337754549942573032132886750104553931943678470715899064562878673819771213007995959362323896429672029872914645589792594478796060099687779263264698089273329010840107348420123555953866554210061559041241275036037266227547615997649268473677820830628492076347941675747090511011304766729171510066070315977801304821033834200453156319918896601315450164769004994043515823494461250818789880082397652375728238063168949977836751749741363164440880739730443441450664416769690102593804489329852560930138581736856296753205923728688265458791907070447436749061756633953473219174228027099147309265030008556924212174051349203711145943900371466816254068559174522140178429651643385731262940823067453219179773299631324898143832856043940105365799904368503267700212452544157405783196594133590648218562242493706958004236466118236242589317926049639246905429942540370259955847768004353308091267823413437129913952752648895864881274355964883508673351683919196102101086416911380258252273870692595056480942299500657005368776276940074443289583591340383872397821757840271044389757559371875547430059706054346467526776896668308799315452523900119972323808276934629795445785626887006451589892119299853639641385330693404354463599104544161359120880334243879847804175740893461178937613350631026703586851452422818079259172304706167543476524529363238891418500962305893032213200921545234627699032458681264757584592336493789674954691734029683922965534362341351854636841990870404416816381934050016256639632617884012927979687572658969862533401615359903752467803211404283053542206432895544447430751986042047580015751819331393215894937969432778798441706031969791990674618397182406015169915848140889814786047829377517194957383190716102969145966962144312576284638321143299495254027275873392004315388168645616824216521397360675545548118289453506703813371501886122056883496283080447670726841469772816729167965943193333018198980664558823740125696573740950761111050826063990070870314769397988150832001313730215690512319405649889355137483454184144951825808427028851251941760811395099770346768519989524728690216655712263193640214167197458177048300698266506951993559132056592061371851879565510985132805180396369073770271254429854689247327073037009744164275303714015389296033354683774820170516534591117792923371599596354099297700348220302073724734718030249093858324727195439398992075079153034029843481335365111977971629060176930183526083071187323916169525191396686120855312252245929040736995831877747732677370747831850214118455614138714024942205449695563916339443657164945343102728484830632597272087559081295357136176953852862069980558374049816545034927166745467668190990642785576332825233853185163159626385603794036839180677672683826691336225047424451191438052411078902020208634004715732267656504753213418968517844259124184620720558345451594450146673180134797244330717728514267022380655043372316286295565112186066539664112885246108870431524204187811660286197314764681478674866945651674543366620812831535773426106347851539201783572643037289350652979065283687612233355930758728165188447522265791271542176424784959511937184467492977969322903734211386261662344658068610033578483705406187436873724934458930421448013756732116629004443297450961182493735544071022151668816122051172055289097133185553790052200267484234422431716175163176250860238067392651435087618414146804545063297748041617463002433110988773047111670242792872917129001308682724613127969981525066592696230658927351614040218553869429648115927656873803352341661944281685763093042174057305009073402513302495805411463735835577095419296079049872798495539799183451282575023075481730820173219269847092583026753166855596202810449037392432174064943680668744026384435877879055319018344900352679774209227609670519668013585177171637471804745233081252221732579732497303270748956772916635871052235116430014509367440284690242540548054302747138017115161826175688944137134303380648505734635244296805315937806590052493106940744159303981812454541352961737849773684889701725905646801573642809313589428637491290643361619220354804505586167471387539865628017867994615098216329434895248045109939027585676513611647434688218284502395819777885130315268450421161995179574718653505535976805229340982493136996606649595221078086385990145812151552586479041880620468954802232640630577076495236967212806278649174272024028928975626351728999374909420696180402462561815587466774658901058541464484362100978797796179711025680637644356943157086456756806183664427502999461408938953843513085422391531562212359272224299903415591968642447317063442455454941670527416546154130993180867989431633172500524406459569429055915368000221659971165773709288736265642489094977155382186321195396481076296326106459345363570836638062633265742152610590533061119638304621836352098332462150511307842570618022685065812324625140076692316242703458482010659837145626471312824689876289800052734348823733940464849112230507798162161808064560876208788881680697995233576685482494475562138809535093805212636115019720001156969371196084123307292778373795947342154013688331017336227750271907676256385147447627157779388913553175225401285576986624878842986598518804619246179157035247056205602812524455725391101270813807706564311173783539219687404525151240525125848164428289947549303461143709335221380085723995973481326181284396392511810910352078897156998336937804762249592278649086386783415938445317894727038179956281179954575579968132551393931927490550845935124321853597905228245506515669063619679628722227479349612258225086671713970900411064997365783423393674657263789732731268682186071683711156591063812756510689019505655195484913800721688149714108834558935731445426590141518816896204541206914996887258233833128369922176315756742876121957833621246368380977636807372448848113271904187595377677856868326542655483227927548165081756770586953107018550233277117152470982206419572355960726138976110305922018294799559525515063385823615810307761592104889716171925211228243585259408081025118787453169416256079206803436368459761522714006571701757105905831833125558119528181450897292822145461709458510827749866532989394303602622732048509512686475623419863356603860503222762807464914571029853427105706052253571170893603797364383901615523659623224236491370211639887165184049280407985442891662626054204996295371131145713259077293069811881584829144309082369365354512390436509405212247670960883642018215017981785078244810416891316920043847283495486902911097811775273956002249792253412268260085494294283675446108323553443182723394036752893317146189888630233772819992655544319625366264691164472003734750268940128252804259858182485716080904169858462297507807815841028695772841416974555343465711209306909554634709852310420105784628561375585195949180811581959775817774186985895041243082693146830513374800347278929698741230661565454023466406847409207477764156443182284885366177548122598856788288241764250801472365283807184607865657440369087823224205601362189004983556030603331496194890096501997118012106562742739354261465793885728646236029712324772376345716329611613798007101957651180265994635079999478055559351847648159896688518941757877888872578760057470631094592274932360829267464557759958584963828611059982202787002203947525403653524864260770988891919600369466687541963354601797067083057503534826807747422452846323376876462755048133305719366973252744497895074418507554574391313423766860250606190278715134803949519670098645661490296708456233397406551758665621937795553645805211236339377716633884528453951659721573913544940174783650715500593566888916131430676769409200472280173104394862031995338968485902930385384922650995392660941247737423000592298160787961919195952783960245755853753029324954717026090227498346371712399550797497928044618361883408837601645746703657308323326828465156380716166898627302197760188245271762680316241137952339807551458992561094432854255008724797482410656061619044799623226539928929664879203943091945519024180360907581823375955607803673545066990847577472420448529623593100224064452022221445293378279615448563247866113861411596279674962961616429993218535442735514711384419881825575081248326968653912166719534795799152093413265185921291948207156807396313383306086883366631014641005593609591439853157462380136561590068000111093195333395936574833053630812546095056640701208192972728280190354420106930617999838223054569083341235289094364253018337766320167338114864793250217189377676968207874237466303045658345833229217986424718420167476054859119545304304911281898731458375590116702442665484673249671230678221779383919567778896449233798032860650777530090896657187616369901325116471919872111856107213947892595097600612455042739114057192312573842825692245316618395446918231485664946235024874138158312443030590549768694250095664202000654766774363175975427605592235164770020572011948214464340140572097032010260401248955713128319536803528094484467406226317070711662535814378644798200632279091989137743436548246071393706909396982083298469754313202008098910917524680234261836500261236945657242774472063549259032991566954487605227407059107482252473059264003785352416417481360067381384019149969501552524737694309175769589428693586799642545651914392920176285193402453142042336806124815710066375641746333496928204953011773307407459037206435296581613900066336216828350980157496412468902888954409283430063329757521630309829675506151857011959086988398624463815965522721362140060317690734016571112578842140384579057618152114364385513604752732824567025296376993103161594566500826843236394779751977057485060726572159135909655803811087957284324975898408206753688773431477449074228302694732238952334193189661677624876016220038129163784179987684154695595997918074085925623053422968362186400528086117518180060327544666172628807613781070648158276665487922222268624740058441262925556639690167577303586408334286652527994599504556855287285106389728119974545583680810229360373136148545156384040816436941817032271522383336580458191817774130881646558587856764413614288795989870611544053196572300040185249031528476247253803220599161672099482349370121586748592411073313544375636971654731601621000448084667878316727781399625445825866826078927090593440903253788906247570644575104132637980422105021708761391139594506622470722357542850083660735830215432628018636030444221795898900352045284094966013080231740096412983501628641461858459431472988058199904470286254079706859225213700598857365280939814126115163930301234779582368227667171289464737684862432170969879482937953323035766473082919557188010522892141444925720727894822849795293658939583885821229933674539472785278274112302689713608297744508907096269657954745464283333591315240543381660748614496876416954413727954063741346009305947661945361066591607730960585615980175659205634293594173696908889013639137283873385721285620819360966094125552452458921944343053261513120382769749652274939698736795430986508008366319499414536629737303226466431309441776931808546177501345898914554691815269279834276326387754419929037181365959986636387392820099406698143909150526862450411882545684380146720667189018243368672506377413335003832421221663277275491615400805445857167503191088766285388877522348280066755782989256749110036649310528799797980579616103493638288778478707214011434066381986080225035117960513393554624342378966613204033556701805166083624627574183679816320999929079232573458601350713467507147351930459681801514244672171944556492784341651494905560788006536602870429258316778683122533810181804690292828175204554155976013456595690803876500320542401834274101697424755653197838353377768221391155496171453543126294210711287186577090002319063355319137834572425085326307151091876420388560528443058501516035120314457717335703183018793629483541180401920833403873601728931123079604670314780922975193048422314162326020042541521151122045777043669580027209980730019161413859658484172364882373597281518357700705656670320041933160714986572350307230709890456734409762508160225861580289443417916332956310364273942578854682096865203967041142225493034567440069962339748494135415836251878779342809715903281321959518051310924720369321762522314383319265573240998347254858710082423909464293868725018006282525250388574784294378731515529964507866767219837155883153534358114731089666336200831732108140439378593245744425103199981765607303143945024865788623732136285470356865617689858102088783987439810988392310886690358928654701994518061708283755353218368927626671627323846266867726166618991676582460006206643004256370418281690287138037384905021137762080391214505780945473006109310500599883329211763568735082412094821881805703736398250645413804592430113405491206471006969187237820990717425820262240585643926149760177870476990614059486278077612921177774732394694548415867050119308523123415974183079312038465000373356477737248996865384598646571843923113518215246965627535864878568823725963384407387006839037162821278761327981406158917460866602626458899480133366708494959749085112575616351740406297314733400842926091232193964704766751646547778550658251327799712333301518951110377582380467037086139163791731206484231780259027997708688135424115250688894166442818631599044806920708306900414345946406717749609999845679096649909993478741660888409582742690120258577868867256340887921723431065899965972501485453997331609746067406145860492683103011895052969095911094978039023405070470988747666483869807042206921128134904957289083141245871207815507778353234290873704952985372966659298734149377662202835185669287574566196161273787750829502075530902763305377543629076443873752613728903133479055593867336336231551451393495014417702753466335596115368858596400830271562309707425341855997862681816577354928724300914943905671167801062185794905903865031746453677056174289230299738194596863157137564410072632931806519003234876331401172809540803231019100696606564770537062833595118147951858138397960792882110935104786907828766035469923306783918029092812057962024100037342948276719282021923200452159158505981354275852949900143955414505055181023764491087484724105118261253242332482670899768657661181857242598856381270778858147060112776033725105129131007766710083609799809317839214154632095187589509483138804097326075160602757530555296500714798961281844251978331671664475966645076180115144296122420995225997159646882383457643811723176718142012139262260719511612414904363182401974597151981017509646335294277495130126275758675717248625649849541761606916559016173821389989727022121942739549031550161062438998606832920365691081356882603939104083658857016718885178002974796355680883665415301743766120548615795541813290276150961895933947322951342862796021083748814475855379676841212251786337888489264374556276422922601162670635977979412549681605264292024919772290878784196041200465872702748699851404201243727422556743819694620315699645694615454188265725774064520709493886680548992718366846879474561181739388016407441739903537818111235013712545944288630552352509705575947508546325959618060475819608173642136836687529174779030441600148501234263483016343922847740945559430550881533443356097090451906716798405648081340557973638696697048569158243674668662713611221885232071283192929260721717846615989464118872940581360179331986313049388733193949848698741951308047385320740807107112510732449426418343274111981745256355640592955035862103981259322469534971230376439903852801394721151806381255616438839182190012867274937791207064426447539186463595842013406406970554376504280967561257541237604639701265017190152611997828256302802840450309097350183102389553640834990988180631849124415219872325557288101936169060888706950023951712259438655582651917781318278718911383026060643280778987122863787877785731887513409552834826740277892308910456142453730325459375662336393608293041141002508131149183593429813287711428168807376380532987384069577083436066935428453927425571753089083483453832875247711179208125635438463239430730062406008944160834633008095434235170911820898783650118132832047907323925908504995765829918277980636677349866728488759281851560183733206907913737551299886712652664885153591004294491126764069962147743209995175123392100533427373603724557441407609900871358478130910316827406482314697984903879970594675719562862603964291179774481723036131424528905512041425252583418745238615590854429414449980829655929160072790077546980712517548867624468971115855750997658965982435722424189779218663940389022335113336963082740530882387721145124300828159657240422412643286316805325474740835848005795135744551293150560081690387888993705495473786123270084762633828943091085757981971369000475021304335255985808392882921028854459191740745758077002900635165415474684343995293692222543510197010186914890611451520284853678074114879782348869724054576392021685563856458992066209320089882772442901013824903939062931847030649841093977455669662880232699022975423379822870341875577407569767852738739827218090261983148419337581811519182165922188621964804675508034635353351277977997843533261675625359521658709321115797659920935907994215892913062448932617949475349391416936743643755622719974462234860548803286348270973236338134024297575079067542030866598280955208926575030454685002225601985607952850948909546688463585948665416664361693044656751928208543646268055852357046155910158729320250553460486578928070524594872124840899267326811335534013112717853326041168721295811158492004413750916198436098438900782199776933892462675826976050142378220767244178212537616719505624437202996334207414867794257706337905994622227013614737512941922552154240721306065222175364141652100566504118249909069671464506334667126281772452000353457828450061741483028045563667076100886152573329149660633658464723163586899364277449735294084821340450624072934455859483064869670571172061010292484196696927685398733425685067884662951650163158987277652545729075027170351250354557963794553968230335086538486286859149742897405969432789174725436675193135970041839724937717212988486868364346922928488166732369520759717657119469648357184682918235723142098506158259761802712819051299357030682947588272260080027229142674006966306751746762642380937080534008389774533690832847353150808625501762639159267763355314624075873418401699728672946281694079267210349197360637817207303681323925952608800669716990776469527002928539315977764537895404833018491496819614426852270530382427610103820880790309578940206734654248297782398141310859639341289951905062188229778286050959746473969759704298314489461199564726055376961701980121888438145440926722909112229614000433747113759288067120555648000867486323355790591696054126798825408717906203784511837823351738323298597249606859419609621116295758045864349432545641683658955133198226751469125375188786167086902677822043529309341928296554695304496650323481099929547914642272965508617455120941383847758733212921211534084717465545146726433055703885418846057159163081442345409958979095376263187221832696686485634653645308552330650028461463857194061157842373840047266734211097732172528107572211349378795045462268592485588765910635146111110951210038168786003460575926113302628493682811231885675611673131578765703388808926430306339766566822614399342768767332700997093142761283473831800319786987603230714230335754635333370236938269926842670725403919000320734179787468650341429626289325662588681190858305522098747729726557200741287239747253917298874957089736960054981073944753331520292172660099484775726359072668273629888249922203588175939131968940883228335994757579635762103738441603662591343229338789427650543475730078840867553337036448936450029168999722616989660778542694384167930091999253378408948265984217567935975749589678178776539412142656507350815557406039969005040804134233803556785872849621479577208509151533536365110055461793111714668930336483509953115576228221749826641587151882301044080421472980602313825578548831343491002931447486913334037443177271550844492669835515347653134522520456419880690495084010792860677911328448729512358322543437250907716750920011070939890861983233142376560312536387334742691552274403200258401986244013240026832779239662650201901128443880628631245536857869670423355252573079093659076626881657648624090415612727512947726324982143465668823333253532137083642307174037847562482617606525069721885291626723594392632792718481335216893222347607265524740706337268975995258255058662969739459721746928045823780048339625788471846329042899115718075950261142321749878715334440441398235687280001806784791965329770901065839323437444835916643592514969047072583723685736330977266489572818002753508179883731724284175737198048231833319196380994655703779656433429173824144806447283036645103975537112003282709878163804371911622633750373769914503468883535590428728040312492909246845608242723099661593897704640644298160687459845457412845817925723249364025144984655572559123203655809922644918373323871030883404387620280958063013592593433818194452655650984767571295142142155207883307884592060449823699619080863408444008080538755807118183386700997305442162762346724478973890383793403490898889319992798694455997368693599384616904164489207036540470674128292196392424264740863026848587448479515169143388542313078136873499836543842952553244877729249996935158569037537720509452294953506044659839565404806046441458480286430813379640867540812321764947777847581041121142454627115271589068380957534888057010546389862665718566623854072687155703286829510246801807243886681038654686152970962470899070057675563342851519231909697914017092598712364150624152975181599871813975834335511926455304743225934182876165146658188750416237757858033402073558591655422917379093326802674330091469995527906937347235903829450381666597788683163549611942792482576500650372861026890499720118112248304654726141476607339449766005059086421892807076613968911364119226045227617280399256933543035908221755519178671161775811992550331571635821044602750701826451521501143398233843717712075095204678650663933618112951041452629108188452590658019398697675652297010271707682410626108314943824409808635194646968072845702576650990328725750674249440073645074476388331495239079911302166531195184561463031068198653350576778292247302066451296326926329642813355978223358830295452735888314166730091705051650472902313377882152787350866266688729353859671068077870603497089255408931950115058418686932797214505401991600867588545694578764813986742995040381273900189382834168617943063884129601752137165003668689760496115230175449344380275191456919071001123950591375604487674659770575271352443592785079552977715222188504728682553449497947021375788248940295416438735201816161573038553029486261429145195392984129853348585775087718353322827313232541851186986706893993489311137741137461723127934508956767630561159669845280691786535891794427280617243365783848481239553428993863366654235660948963366655779715118753244552191118191973834256773772849697229541923507468627683404356237813363177923284701278394941750856474241055865604702496346844015006508679547214368020958613922757241816162067958171303737283161229662381270805428605934831638928156768909761618485661459906589960282157176035805792758995881579537070447500157649557391950940086434151394784930070695490436140624321769920827330079425732142711043324433920668702272345379110331325200988345842870841544208087263128564192815005027827952455050996283548966357405129043879137042834160643610224561951366618445063126219607589350313953702006288912241594488607458590325420923508557016493937756761103748812747553489882282812126239245652833180189447609484274204171593117632121770500300788635970558030697677995365823701346621049503854714956354508026453290351580669521873394989259915797487839002443738034941285485086550940477184291541319694269414803664044368850641558480610555732345245558230592039975068112279521300876875174742667762648670333027416302755045613162812055161070981938502760753297034511970227994562160080340660404625469484231024282166857115302629793053534252042917407506251207791800830999982240923628994204881231104858646514525788298931325391164871891443779726737231082361133269805919349896596633170248653884287677115323170550173846763283037525462686370183413123724395648128159054089874035899531667249968722547710846362762479024946256462837232705074027047907259928515191552434550713266291667896206813109202314665564315810295745413012908033892691221370385945078195905367466217618032437943060912565715779715892066423446188932126777017761110910012403421537909279445352346718603996654040023505175722441398290582928129000713633131204664044842144925729827840827984239728127043689036188313658621448766608254094505635792579600297108087331064440913531287161500486041928017203364918594722922019133945191566234689550137683461452312567922234336055469266773897385094762809346627922945995406993096902083317160379309101146689674350648990406705885127559313530523306367625728913477075264002091929242999894614562991275239012597794221607357493761077911122749688491940784450638137652551860507819514734861241452383545231477247115717083508970604708806265145431469585180159938233692636581604770241742215423309652110359179278840719584845426326871692633601142055846697460974378752638658413311995469708731441827967417196820052491422985363836560732240914323689395999498876233134688120760349680536490195156927863984646984897992280159106210302030267760057563162788842447048343659823522195832028363240310557669637243511568438492990067752487512982450630919998475145709452186499401840113236558074711952281279589493272766467907781323002701899080391803197278952950479719761964345016156886208119642113088115937691106189218943495502096177782468946981085877205065179856179722630699268295923826095800788835502306071169809489659612796587015272135640141616564270315528009116988084198045843300156900945635731037801558032598698970919994571742817878411277054705690550862395298585890750750056354898121364015265313886879773135494080832593832895436045667636281661553594806824456388507322102387025657864048375519256404260858830314371996423477789541277418567145028590150664994973702438497080047261588227568916993831254530919504126621986675642895656285926423380712209100400348836802345063871663235404691816621565430704021384466372900597597008156974425525239615621775659808477967217247943556569655644572083150461898105042733843006412672436323436654981515590190528787012814752938550737354965429933387008506473378255588909070222320532151898329153322714813904515498025851728302182944285215815540335954491620784049970286911813255440700608585125216956203629419567448710192557260788708331191426463425500688368572236659588375350805686548149861362418836670084711554428486286804938398521738401438244859072773784894302278073415558346053844003345458265291047439876335142368564927299544682404217888155638952260278250452741241617741691153226989525748666054285597153317225814561969911949321981379154902583789508989160247545098235018872514744482343969101959435354963040190002806209835907419224079652489647108284244027952157985952104743913420868129973296841315783474779087324824438235656910432588609822625901816498156641976273085948052051630056730573415571464177899664739215293091232717289222425817103464305297651814817560272312817478109825735744661636026845565064563606714599814429571016700819667601591988970695526538619775647665346518866870226232391134994260481551938025334776320675992610857095590907794036248496784258605003795042026252780449550819790844503077954490321101719484990498450039058412424277715858511938121206666379302440879195293562905548458407404573475451222523792401000310789391238121385885037380371511374102778171835316200084732547945833991975551451762580147296073104044474776054641450873366280830967442674887866505244700206205312216519188377608290396837554276855005144099035693153788669865952977835269179167052863377586676247394293903556528634790588875640714047699892493141079258705173610048191467773871743730484974508712585812686053253768689744174904343206485597455416266018253994707425049831812634004436358366328802339274111873796657632102155857722623602553933831884068490780129769819491505850363311275509767683665222400621065069868226146264585545045958193454604705184658195627403411601834821750478382865648558505242980501588173285201472026931256128532680946809917059169729007150605357981084467979216787953227365139367287676571836268771840941224879202781578640836999169913574234420831880612859624862730098885898307977385596847610582293778453190190196541145626845449735574001525042198236084118495560657895693067459827735530968371128329022404367643399297559154017826881403173068860107811623236244226367012246465946702930422108202268019008231101298981579118370019937773391878605427120951432821912252315087561005963277965070406695968945892532886974089958775024313580977735747163356849719856862065634038562847685674179418021283392877889185922936249154044814993112889802489443601947160288675437382840379818992803515434791212967764886728244544323087225365758907644323954418578258752095138418208512738424306898069215855389810131855027646682624825099431289873912928289392638591685436613830110690639258176677694665920085355173600525352005430309026755344630051554708101985482383902314476644747213401996831705230546459629125566794482587687572990336111225610445059255020959374140331685104505388229920081028439790745172315016037256858124149443223033105157116702135261699123566623306586660593986396964249614165221569972008014731125030252775161251067636119353627009691601243640721266582987311359243065504543871042295263532522911422382006928135465144570078283150826852714651153648999611890272068953442149218310519227698714648442594876662341592570474895752612976276531759796165269661166536837069778362734350021913547319274106526620849543668286844597400027280094548991594428061064556155947405226002148103628872970897738517004737634737195911376327686621484681530478090196776920289059165785355239616145927070621831905886522680591974163809271706444103847623902256681069884645271026448471585029803211461936238908113848752852763045792702861748058266593669648475977543383991248742825408252492266731032134691528429500895752746815132991896642103826198128544369525752437158529503862278715672729542767613207031264996438539934047715780778612927564354537233694587289609095295209507314357648598971151974713940204371947654298229503316838868418494901709870282117814228727776778125126911168973284542400495876272442522006851531122912053979755312976311065602145889540446862859427633960434743804915222220754935325570312497503356474640134619415298973175121822943375554967899097389876258892093383098071090591537065565542547538309995630936587903127934449177346365859928599149834149376257424896366486185644199046828289749061122438561967437596322776213575072448652859214707218933230020636219738730949497338747488240869039897734407897966934554013393505537757081601131802128739652259270092652629274808166764944027937688400886466918737071978028525814074980968805380947341697618850679257493538885258322118418315659611778961576569950619181121828764279604094378718065119049736115723239499505345946071015466176662733837927607805948943342266000708363523954794750940188336707772125366039278324122327370527458905026341085175114979973410624263425626177208916588685294774172145440502090568768617995978860339526490295830842112691174124023155493418702263676694626889120410012736789230195319222156308466697057369798317076401716890742926668772478134640852652030114631995082757325002092395383977450571084193796803599373963335302622934082757278583563268683381230625579015004760261226557375768135520098509805994043673134700068613124147711804451854297456771516769659457774161855433654193723811840542319728636745720072655784286409855385654456993810373729573614192623856985219364463316360281823067866910629996757585826734245069490229538607180447863104010715013643245803018805206517162591295096027184527266379886012110356998803376146453570207806836419193116789183343761680241616630772772042257629790009159941943882010518194393186343689831298583476533791198749061339664380124451927276155020126537423105575185093267131766146701874132101868455531605830613484905967762220221532592234937797808094801499674166696368949456742238044700849725699906186848012101585168608929288907671839368696861300509959786758956728037181397017641550913699060232488108821982858661405053277854632901308165814851421003813336319095320051724793051324765873360426201550744241943797353385910105017342988157556694088370921203652711489621296238355139878317825364208698112006127131633204750853985908779988851816254884334043314014220419921546038683890245018044755982378881636286673476946006829648510815724275330744399868900996558944083440780965511679759512101561056053048146601502881652179616882546469759798007603143661374049957590792497660826135947306814514176836972038435068003321378841560915944606345348007855104610599352337428327479203560741601674421266314404437419061004958365240246609732436071704980974288837641742179941839051501677593257089927669089686271286899846781865696136816237252328242566371372644981167760655249521003480405596915122358170123574176561199637517108022083733133456390408045201353095678217830609627978295621817710565398899595739069146024622487130540243210682777178135878555064191094598685915009005033699538962223085852644991973263889184661954053856017726496583652177165417223060167245128425832232254786519781944156004404366415191337031932583731002151323684678181036278851262865608975270998686038934912971953928309180192820736347895750015838814352317320407113733073560709477155668615360256967879406756687388920373474281978879074385697153266581442971936587373982137396727025192777285772040198323504496973533879116509949613644270604166412881000761056929615886575431865861204028019004583634689034662460317912255446955833003070980761422174776709574350605126589894690588740768774916394694586684385560523799907640012559325923801156835237283826649414867209857491608830954958560435378638806695962365251713248490195222597090589635766762335722413166081206131694731146063905723697033437381485430024794022058441711428260027795081378694274927941718265158853649369477718672195540995882680750997642802611150944144999938824131749078662855714827922267796036616593738461070141729926448572941256799059619930039849047987201357084120614552887907944057157949619403127978304007133825328768526447170062067972030531636447257775193975220023671379259720425853634328949364961925051394274746280860839071160258072822662604107653803367793985100582120380301259899811632964945960195187926156958608319022706326394848995021250216107691251988360212195948962542939180425517541635255042235632098049210912019918226653013700031997245691563859656108547602395622744329643733890959751711645604528270892310899778077970459729476008646995427612603731301298652509286138341855396524066940096987140206513205459074964195538427182044591009494794406450486936738347654209062788448231962458439812887003246417049983066760473533685291243526814372194892768106950187847382806477844227975875468514207292875783050697943667411260782736157007714589761453762038629480665876606404086155906932863050577989459821550006192681462612163549462194059976095659822035407459485495295248018170279949239918475061384469828172861830639329464546383911565560174311633382004570928324765293160316521970391657160377979336806802044097630073700098116728296914224186276121894801160644338764311273045056429866597766112902008358846543500195627237740852587649500244929231613260411543299897687088960100725185500365072656340818652145025621009454797741358662849127621970401017794334004278159647479983369934418325785860299825437600908953762309643402789773409054107132727598822488433919050774687525089977948029103643234887511662910943151981329795518804540402329573158572705232056597303053281129791165942387471805963863090214142877866689231651101504809170050050363000178059975149923233518504957289374250849968828445068697351508010193769440031140747373873539574650887712809122943680928443808133937356286004079985426891638486954265958973776302912001491963372880404151360998761679074206288433083292096892501742468911837350619348218874205841006016511898532113216747621672111562384135442855163158343986341092535691815048724689997714719154544897733595800728597904935070065888704999673375016780538622782351999250661140237723539642109636598873722550652200744912765727351508441282613721716219205127334940900557073240136981880213746976047579867819422708433846995809373760574709218209397893787918055867998169570138242005009361958213944724208985513123474936782378094040275230228301813002438809094481640458024858413447707787404800597777623016716726325669074441727186611335126394016324001192344310666148638174560814442131778563271987063847328029050765958392267564932959613216311931746506079205600496134069727550911121819909029493035938304041273950940644434867047446452999387011627573365609943607672373656690800656034761849876614966397667114874909783150795535261397607167450253586499161425166770370279594247699949262766759989686211605473115867467339162884988209501852869894037272847170419636925377942238849328586469657383850492507666101249463806051181515448805837981375272508569819741634781610515719148085378485629415480167167880293202401563211648368263438837833496530409909295512769689669953717012390467814437206658009028610835912432990622575061219685624981732693714323803389284318129023143896455903973969164091406863450242753091835778564698118339765419244927179028152492742749606787385203180461333694312503486233600273248907010308663370266082060272589349657345302063539486562477395429070476745104663230718013323612492518904646075553516442281820466797716457780291038120885392941774182056490337013005836970287999320349912909601958317535659007046638503951702871694692315851741353590272427382537828709126619905848096501858612543230350429905356487303290327421355403934718089649711937407656441199858066049959521952709669036181746840485261370191715986651469197093065263663978136122246372397065509192795791176881828256737355383566066350986984452259092214504162192695887744881068224227337555490760832926387479234015651439688265116684937982722512092444228949377312484935443670095948489138296195686491740139898730226617512836516815270552094176284415648634118464604999645988609092099232176157082554889842761813237991735719817459939280217006262578116378769022007642766826721654348602233263530477121083561122671037596438973843257508621036729320773435832794509217295139654537984610761152888013332132081276271618619862004553191180256042247900551553938448287275931228182773337739977472639136457185923580908868812696677072923202625353594438392276694625528998331431731329431650888346580562841845035917619709260469467227614608192044754104125009716469889738632713766599969232994485735088037698440325685395786012075043415734039074624642750228813288894757581526266280416286597711073415680475510322287886721505475351574693840263364186047426642313042770291965283912070383002146170357698590242620994455602166543990310990207490938689959082721272659668420903138808571777352898562583714554627407555104708606825016815041557571405384545812369237277233049828748083881270276300694930158114196161661888444019836659399838622844069953104645130304098656528399238378099208815092310525938314641136296656620824580707546530298276439284194548179878943340175072207664349392289833583010410190410145326613755064324408927224075020981257571457525947602783277638676115449681576199715374890761619292142661823421637132874330501876080490426121476017217545843728719847033892927335521614012961134245952667415659313964991564113677152355014971778572918897150149509412984158062789404448349237238064259961910376178947505526357538747999229030128734016774551849207686486730414962529299886749571780441089171111726508254411524927944020546522837922984046580281619919217724750902263603700001356150409748394762888707747892736136969491429648516574181106879304649013682069159604782600338873811060793767882773699541471036131397677763116679246922634686725701645282079353043219322417833195941602399535075788685390317329239872217472927585532755330318583323029406411263690822723917097903109788765145936927204491978326911198557042678526896264242046427622788350639053602710991951208829262378523092958126966999545790844592286364934549108600334952250978621706272652435029645891553560351487860063676133510965589348386623526664420908025427849905137076362253792057661180392056047040218030605355227154882502282862861968323088855202025520186469625073152184439742733770286507489151064226853386849235655370843568331674217531639006450150600710610792231391815777685183805032953633079640913253984583497496753542338183694712416086558619956072448263338768275446543780903703543389971689055184748784703321861844275664565991131419339914751229599624885949826798172390854751313897039957827470634134967396329354491706767136144589703740023065192689006848412431294900472224159997521032362500547681598709736724974882607422766082519751761757118796752551036133029670681035640026720682792659156604899752766017175282588654219775796396110915510279534768312162135484468667475366397567365717289252381949096550790718305536598187576959328451175125102952277042063288312423073960352103073638697765149173046433135874520977239646135449213290639126768351466505710292308699799362957903668945813532098454501222386295654456910243403367950637290199915947102507327136535919409206337494737080702106565931731999560376969803077923844891632939306307603252891585069126552922124928935306330033032195588491286998162182823413476357611841486973251074197906218737978801669128026491336890102604012339017419287226661764251588646591743530869741521795880878969009572455203425743812674357569613582691793566058064810796551347476242925441739563113524372201974652029732474015321205611603411874696835260745723476275607326218336291130151932438161457086661899488629102312248435018244480735373160576141444622289934120534196696849013836620361864370945801801768614060480167979182089623546085165362847508777824072347142595281178277159291898767424584347194621085599933838738875364432945363314143570885384671319484092112911391832947018192872950619591992416928323263493143877859359351247672928124642303140741119844728618100702617237229116397007338047247505359289900428881638022256710650848060808955968967313353829627171181093339152650672140626282970574225430623857161352237930725657666739246987285667584801309136856924123345167129135601063733295577793316269305035526664589212768459518154512623461528580753654320265914333747795985057076460716054834538061937153582221064351425099976084729280981392580889750346264663037111375049213821928930352877486471400957954459290096576102995764809669399026918835968745922948427507532958730787088809654650987112503776606340708735945118315475560167743873981395719301869803652753719293979787321614485520712390528563883791503462376883267035595425936940520611940289535575941136684661944534695794484513782156502176314188570600047000555932267628150012298701893531506477118460024525529751806474522258991495008732445563843787444235947429103050114294076224111909935700959130784665866996018901623429028998475983030572607380032911293696786694533870359268514666580333927338230508473639578087033681174536199768013730332568185595122907387166725791270222789091555271048839524234165613177685005096522326820306078269653055795539224060191408250191765145751010814750554077368117491941880214624885482405064629816114861250213786180525183954240760324740316687429153460341586623965982634811085849794492291943195870796255876064330149819812535410918967701881470484999677002020217538545041413333955976550625838060909305346350352131128785772701390214312523938294671184229866757069650544174800282690596289903151420168141528990603028481141030288526857300384284358558410682495021472057980564786202572420954304789036173945427810369552294637214747506809070858527067053233105196511198301731288977721691352938368571143413796277701945643907772196275447795051028956132068484282116539885907290363348228169441050766648092920933904397135852437929877280442433526858602793102144830841964175101841133473730112647920908349774025047619844628592177158620937518405681688965448348955517942812084118662654980174975203853419461183720043044848383889207107059940345595624772618175398737341130963442005244909300243779021344931719468121406658395938865494422657545819085106999920729115715110198958339033223951999436373426086581246627477576694670491425548778493100237841303688837543846605188566787017722360310784078456736680968223506943924219460244804645044988525749530763406570340946450829697688735529931222735879991824406826679111751356076425999605070238288903142734333644028448392278095752278047114574578477470623665564884237720554518184870147862752194452738909501734959186497396382926144851825944441241112929385250338517707889407630556871188826504975404356620510333119040748139606984675444543797038740747628139756976228581004140759556219921698393765469032400026321994948314773186011965802751242032547687625096092133643986751448558751786197385854526791242985987155925695500475321652638402437219355071076274535776263432408162702503695320704890618485778056332305016386753982076009622575261443909821544637104123252827145181749942122592726158356711007432430332263462670058877394783923375713904361739617721659612587438211128637134461675569436500867983191797365409693311887475573964232806528127808268350470252874199685659551007873679144524995881242316834351363856960758267249683322288688144354023287096072216157633726026385236855677647601167830872162893013509398185644806999261633430706134383992042319633855049438768899585140043851557626299499080354360153179841651244989468367430240102412333716815463038171708935895009053827678856531545960873275295509749492430161453229318044407206783500858770498121062038134966467499588290090951457352793351367252592775028091196931091311985271106880098771225819673729042397072275709203613201646999949229423162165202700835895985624995226922990393676745292401470252981971789099670592553673821474937613047813749973369746679226928208957704164096651777010605984700951656318905902590646772680411732260283927249555312300273592861822993650365577377773591563621686096018262955115898706743085891779856242775463883362224876404260179160756336223386244481440196188765076422645056713373248597487889294117799619511372808333793002260472096979971603579086782329967665989462995916129519128436271344758209909690141638875252785870407143896719328223856773651654707714752637233528453844250936612929273981504141426772492048021274003129871239801616519834808152758502754393362066316615662439734449666651613193252352653617986120224900262215895558462669623301312133553911310739418488573815864417783173405674460563519295931362509808606108337850241658272916168248085712530108910131119677396446904354024833342308829258669800707867783627563920228370866423181753554677395513685625106763420435340777160354605801709144256126487859328918858067913194861567461052029884097888708976385735143011670795103263910923345815716392142993935478207482523347877454648878747493825975670934921940707148439467627236995525228761367611403920190614439901764011171897788744153538512155308247666228881265853167390630165455066304285106727262321204359724381362167538664455086856246615852915251601866138617768284978191926705956552708384832745349326691429438059517479837403265275759881960585117629215647693342130938040241358096241491670455782380135657004435941679232101541175012154337890092499122162540286927187898824378845083915351966878668446436271953739558488133199247555649380599073941608503895366097067471545741644034665758159585287760453586563119873904448310198644380578702105910352717181202760980795905951673756250490318213603880611477507668336500109387956274111347209438232192861218040657623058906850591189074699820735228210658992376032026994938862408402708958467035843708105918753424260116191187161393425527121150889219886696626140534464981491523323828268965609277862746996499920803384304756690642344463170331799255634013426156465124472174690222377081755995829183850244057418190419790522385091677182500829457291591010780709970452569419858376591091995484546635917264134853042607122368483206592260080318377334398122776715640779467070704475411075867766890906989125957417244229142015234003447462831315432104422630346398156547101139550720564308163187933575466046231072076516732501512904990907331169745370586540136207203241407131789342786681696828084963036409067487691465390684258868065471395599857813415905517417266397662209775933133655307247793384540961315675435073823852234269086094888250859769907246345284517696663537510702991380233021632348299199217992498036990461251507193499035937954513176929652736103322887135089239956088199854170247092276532394804677720968989313101979147616738141910414621101207657435191059206901136830898155335105372558223187174624080482873332163933141425181031893659636053687046130121350632905192058688667728166009954477907817703897439047242931200546490936967779147116952968332100566379516734473138968597720175262313576145729993753083220032088595053416769491832170960963300513055824022651609709833147042589952240375047614520769013272988780443753188638445296491996235375323120681780563186062530120581404265249288419782096964418427439551641268818920677503780165749199215067558735686198710460571197189176044164468370656640108112947906795654056545595403883761813644889017771959610521370532495228931730725937760804698624345447294253064408805366832406687760355891400885404985493032052623290968585083347059659537782191303253257236142367997019938266739967186851535982737205213690674429084548456628090890648741453896739674322428066055357196389708582545471562325209686096851869668391940651203040966948469662515039665479234497681344622714568945454139461557572261064366956532721488141202103192410927906075747398441293981810702285960446119043832937508077290552751792132942766364028013893544089119641843030652682427919562482553921529670447594505497498041573620211884814998718407792364974796489041028659599327682280116404700752058376632341704246780977207607418630464574021484432098372535212224736806582845598300705865266490946948650160586236352398577531704853031399417439236810464313805976300363624837933243864102998095532602895512245970875979544294823235954593943668396149684439868017069440482066914559815668781004346393808234696228675970549513612010157112273568025344511195304509723428930484304448854426795723611225353341562646427408551418815549979440219858639516993818767381043755034407537748937334589391420411394465654251031469110060517254811784901449779860511165561371480687052683955524394227727884023063340278804937349586953945381078609790806020743394502484028913281710737950447247224667939518145322297624296723474512246400358417555131581914938370007253383214653039623601017201574005032370015621704436398937984422417036299218618903391771950208724920563331651191974316111885840852248835644156045598030686328228197210446956852964068364295519440810033755803175491273454198713062223030625676507781138093359348400289926857269123174145040950055333805854051903775627897018501694152155994077954318376626392311752860411516389591419199990112728161700572716029736762313194410316156790193679091943425258697612220626774667199667154334122697396428500615266052158712125217934290544577551072984745489647542770822338148338066362007861723480026447199087163311725575187610838528144811137840633593890453393279184607017552575770167671899823142686750096995522086997115458288038518316506189196885834208881624548759917479512738139910648300652039547723328519025077717272717334295088786443569991593714192629971386725243697524525771893985944027922782813464555505894048403804404196913049966166779104329110944026797430347663218327698402967696701131546874915650935071510744014945636689246735635120349098631539407978585350614314447901678595497094450095229608659569689396599760745005715187829795302135039223345906907175107301526705222474796621967647717913078189218247433848058934582103035895385256945446833646559132361763598227446262145706036769389253810882540407737554446739919374000370737562571522365285504104169793568966634033946284945603085636929765918946458474390649605864961374582576407189323163194578234049327320568463959827955293446214177774975458433198014726716418426177569776012482152218633424094475037526946370088755022262493897026992873518678647436517411561322623371907522525366039416403024767831371761470324826034593147770216420485278339035692382413272659191592261447693206178725883079924759194396124224172259507911183568109748370837263350411864306837185042209575606323124046435576336036832401248553235419598915261142941587029138213744397562201135520495374444722140843011598041518867835069898023871924334912348353144663967763378857382235132720651871898357188070864722650766204480867895442836668306894503392166858025240812838580272260066958400301146963216676584984176419717401048408196381655167030833597800022327413786098966544642357902537420573332521479885095120158920657948270555232487587442808752526822963669027618275570488213332776706110440185141430492287508156114254661069651343295373509963318431781274726484161774945754155931753347823533746662852849650290355337971150573506366084700904478559014593854723510688947063227952764139062465510181777986396922814797656927696431532425390931201957895330643612495145545237755240117569880008509840181721817546553765045804753351573993363670249682195850812884860571171925498004665311641142159026686189189368077255241963460210309808122158838360660170075013379272972167127593120902238628750641395603633578635923233962092203470872560387079535308149846710279773761223565469506141624223046865723321619419328955033334480943951850111144078443877284846243788163281827147006678230657427381265357900779949628938683605994071329709232013248921798920919587882491711441801008836083652110077333818803715397272125210563034019296492536855536992289617409474656209191858360463993920526540889390126707533718557301193385808334148575488008599231513991314879378200242553858667829732522775350726847271064796879683477526482737604089821651259448368950406400595769150996893199610938986452150195685232360165299704753115926182157250213072636789006704588519803802471124034444080189529897689455174062019283743176015537016557734549021014641234903287185101335212110104552020922679773734498930354393943779074303709473678250656199769592162216218428969262440494542294914730769389793090128804884085000628553420058810599315919927749612630767032006623641827254226742810514027498102102542528849791329478623290968046275195578759285240377843356204768098645132726547525343032631094410229265963140700560010241280924292283077878031570739339931651538625249630948081145815254440997716831450709410891585130863539184963994734218034502692300225335386365544817448998819712427958277463267490555241773125150660227208270883968052883956818192269360387790764053256783450549874355452131349137128875644121942994470956286548204677638530131453245873348736640237100204140594054742013839054594220473888849160110954708269544050738287589080307772829683108279152892646873553031817046756658900247092017254295599165803340974500252569358999458772423636015370271072357121328293410532304348403170864075982038507824168169387365611861953880396719660577276916390319215687956347184306256942318427843581354183248817797869921383956925221651026273621458100542063842303984323625898156366298699754358308471319354959367267539589949287557236749216988869753159498646742502478037426173707998478141725020321296709491054079477471743383519750328869261121601382291231230025531170362222081218784621002208900332836061160197867625813314535271223485233283354137734698549129327261148713777484236981958631166344236257438616920445108094596917923970175159696505493395031380888266714796055392808914541606844602078578974688256000312000273089357625230327476076597957007892560091833700462741457927233270689850235657608700334708213378313223324567213433377226811656166155399960372896555122197121276183660340734437881300119437897685638752242556228521343212277415457771637114149636311324368714908821610237342499623414610915792334120422158843915617586998531378612245568405366425849216865069558583097887912603631519368579790651188082532751511970686298398157165386645602118801523827539331342754081010180716466190680196031711691416464715894636482004022396405975623244731859784644610237177171392590005006783116935298205573225846183220292403306480408554443328248971301600646597315355203079680922100861274341458564309340597697344664505548102557962946677697311484849730583376312216290931409101446000698360211692773088655699021784341099287292242198445060472229632584930441452176382248576964036346733451820081993566843549705544972506307625011136420309616050755235992758271481394229949193030664214949270080057003608947313422786970729307774729297085890201170054765485429765466588380736243626436401750470047653023428079836361394058273762786450904261208971859073601924020301679982476252759867342136361855459758999747993068239134821135139455848673564988228873556165199327322660026446977711297294152366742773123545976940865942948038863083964901203006937602559122437158533329741017005838924441105021531737210317822973959142204402965889699666066661793313480665719426453574310051874154015665821122593098817913464415630006192934266765307133260079796183018772619756096072453626041598759971366634997090211805895055260898645532221961677433064492848213439229264154222003849349135112432621047188758670827405387762067893306417281100020795411603122562958898455100873007161711808678728970302735343658296123471437459108508536095011477576631750190221096928824210491561705012268768115049245277628221238926035631679013381783938809576225106728719213921854089958363704319994434568618345382668671624080368096833581511237257842368223183893489300514359941959704272350099378157581313442284050369411834902924804452508011540307351152368154883749479184506228524109231140130427623811506239727550833137425049493185822030572618754075271435918754269210919193581567517191141927736508489236723790888736667955325362105420846002732320399271284678380329168731899956578819546424375062853488971401482492295830171752387732086266276960975370126237716793266860953287440930237766420485528574094433431325706050708199424165843719870488298305284256112191640179046367834675488612352776412348077021468062642995880141993441163528964296645608897429125742952976130259645567262275131700475405921711901489616465875248420566928949522495671332369784928950520596818085865310967649398184959620733865751460713818212327934221155087101025826092540936145277848539529723995046568738578185213558922278961142350988511185140872466865375144536133365787656226587547823981762764722322001440176431439308851136673084398599671058088155720558081289685028907077194731508196759274978102616069683540750261575277565359291277879795840647156713049679307442544488276983898119389886747081850061567772628067796601766164172133092265718897395084286203697473205338568080782639329497998219990326994560029537476070964821287275784389480904714926030444439871460535167605451833222115457423744911571888924920745457510334756409590912817329464079195215360366567218895287961689682292473638513693100694146166610875765422825628462134866998986839740715134877947863370412163489019763332437286510623068336454863998014288571521350295749735680497957538660531023562121661185514879349666947704932612382292577839585060003998811684561083357724403336757617391530137890327570934789242793220898395989197381873375018966289012426193502373030091120859985679730200332668918639306846001523107032729006827309833288086558730753725168113044609950242670641326241887254361187607456659908977041682808027620035933502746918675185113526692005214751697815559906449085704121068152242763692557537362717438905650226233948732591572929227934856956325345580981535715317440738859069355880068785834404154189446283545616228302542665718384640934039535732290847826866915428758775139009128776501233221638337673998072668023117379954347005328076168146828352838509676643384607891574106184651478954219754917096033728293929817253505135903724348664743487822299704816269245122320724785073024990370291101235042365424697224443538973050308729623051124691780874237676531887307958318675916697136076244573648959883973211788427226406305669413645102415743490014422896909512657367826061755737297549723255737616096889609687585769995411445204912249319120563943415062005563563400211881149917024299783815712914662250221000082148962116317113241438142046413330622379816241535220222448107053193856325388067730599811225268243560983886124603210264038287015080916740437653968938163050929997231039160342939049433759534352348758286212643552346272981963254557991488066158444114232192689503108259868736792076861453832414310760706676872728955698952075375023352237181054946553025369400407177247796886640163729925326565345582411274982414557475768764645495024285765988847190009314039177078657183791685440071608647270413454960647596774601913347996026633023127581708840350497696614698496048763297721360198461639565896192887966862704812036029797272737065097088362964045016067429061120197751668097822708976606343225851586235453517777400016283225188687626048746264991749573519285367038193756768978684468334478830173929486613211268583456904833053727529156608768892100148616605030428617950226271457206984887108047245550006504363521054025578213309123261625871676311638060980505948082237505283324813745069345436785394065453507238936252136922272558585551440020210596705586872322660774030024926970076117551956959504290161912607687829702692398173574292681091371927069263009145266801375756766629480693880242174042512524431181770024584389087651329224027439075234357775539261788168108242310490771850685435227751331726250139190419713916812093198653530250673980355528534317641145485624715262740577141765234082715008564758984931848294697354268930254952340910772132320260460276329999486136286540264681846986070748348015132984597184578639998024186504025156166818914092930648331668430650293199021968649640899546862870382256756982612421201305508681091813056312554453701857251381935914669901421203284958957061734506036434873569684643066367488854899032191471774944578158930885582287083972643517755289798991423891184838596182762391129833456258442475164739098741786117429497275382632658302586405345236405396795893733922795937361057663216623426241062688949105016552844715730040743472793468584863271250869538239245473875841828444002544126601045568337530387196143585768843691742520740356997006373687804486944833339192029510579820984070659729840038867264888105409490801991646941922734608144029102331074170060468865078165551920297177823069367828102632188232190701330333530102018843844131820360205395293009795175771591899543327494306151485642625039115883963380341758467851313300096048949160131833245244014481908835981680194123592977474927988185091839550783831307364911909370690641344099134359423826719628566606314552107199193647124559435549003395501070583564201188177795789686085424228794701899425752009289742069083308694852082814412694173898679526880754729241163349743656671421787562996119114514799461633820076548160142235545556006604643943935999889133968726613457024222515774488237884317372271036541426167961291567758640168384984144682141825274999084164161188932101083212180689520563335047854346776057816270263658136912794597155390432949562188420651069323855083297299650541072593482630959899243083672845890065636637991809533890342482634282074033379744500296736442427181529147564341114159924118260657204696766439082030064761703227411314701756943075098214431511443988270853593024950196397481013720480181179222736960911306185620119280472222531577993008476078368826324321195526464777265504899082079837219736983749181229991283431315465784431433205071365797022705564718301424800696206192195770363335772969068980104490367669415880116586719391919696972661143553254221833851288001278481207420379164716776608670974141306099354129577896611972954348203176358982702361983336151601800777493359276078153171959014020985979975579272657707259459902320741657402183777919768047605817608693144350478709675055924074498073462907427471080167269761539247780927309693776963812622034319600654521934165668970692660124760633816656976357228797411933711751571474567653111846268216981386370096436599780923286035302285212631345463995384414827689304002729763046928257854655313032029924556640560302753340541665754679207078071810800540946155554808103112096141880180847885362445449932456200799681338147178721704474122245063434578414074544661693692744304495620666569919592017596648565809501491173252107996332887753386011025374438779194959162398248438901879221647278190517747076532148429866855167309821068319075495630594532678760872285230010605429605997398688749498747033083655997263983868539966214541200053878520043722613375570049555178814752135797719725488965419871169475138974648210847372302181936232929384049456396396010013883005239901689162311603174587938424201989907577986692773133223271861560437354216909626010395217813001721629541959647317809971343053121387147503910481864247156283268505193486304611497743833750118254245119568144254609450998407207019720461949325475564093613454811851052000476639704831713006018374122158629400591661725319922294235336382250467999060915176530852935781235496134831732223138612821252499810784146387365981346364111598400844302710152503462982149372396600580418309180223509994477629070528991417285620216972848626777594447585089707715176932870231254073294804082369279067938904307597258772489712178549304073957512329225077228024119420287752458503846725612960879728472279729929978177664858868789542675172528205275728143468917980695035859024773502421908084498220824251280155329546810171021443623783627127941649061454108947317935859058518962662178374387977793398240333420783478260908599466887579597316997273552682333392856679807867605063989132731240106098248420718742246060445513139258418242887483400330243987349454765489984045734835254942656785447158788532061968003719271242496481220125030618427057810262596419475542601021350217769934438450401094031685972743208660588273445741642881001666235796154480479811650095401969101335188872131909008386483932127489156111010823521782411422308346689967294453309689310497806411806842800380902440174658936639829787897679752633071177331292796732067263229194504961375997950030904612599511153504826682265811075112643751850218900208570550130205560630752133161445176474840512542579944597960212936610829562791966348550066214443853717700133422601754450516662131896360645806141575880971081819516718049309140940651147626130070994175864613599695994561950356816067354444732029927126075951657981925976556382776981676920987641425378782126219629236397057605219405252524609062931413857117731479695880175596104984725269281613242167230767373443808108650355063943504258767719624887673565368600634953135848718209473394164492003345847841474508244812035155076911962166754972486476299197286042278190741091435327364159203983834390015332114848756977967943312666737189370542809676683471108452392345883097662759160099248406821610033660224821729258302430333102186638706547620071998431110720369129877480279278694699558589685825139020277006424470714587455084020027029503786345248941986270339254559246467171197779164568635879079855060050862332134641158272671758336614035346274740341992333277939226967184764376850435066320220713272191275333507010766163237424127721749579277359505991138058283280763304690962359808567293102669555269533056235318096183247104973001145599360204251526153606585352276084387241770164758043709755641334683969372798287138840998808807281509994456512461494462760280420965219424908763056626564331394718391682529288944099047184748536254714905615465962778371289218496216219018523620367299747719218440822717426288493297617758701678244834334283309027862168543047460220549993277546573230004251652831137118842506956649305328857220522249118279807924299867338607444404459944728187607983371543178209716693560168359406640653118663400626803931183599894185383490759383492987872916551500078403906471666099950342555352589560008524210294154865143527311937210544874184703421842232783250832326160125260667692660244563171875586519104618543194963488457029291411088916316733961355646421507131675691850208580738871863002881684128590681533134121168848702358353337216811898644732224661651026446562580750145055624448838579585852676225624680914208132447460240410656812554044799314968703612509718551098957912891868983602865149649440452657619965698856728436033566364343578099822244056886509367597724160224175046146709363337193437720783973211274054027604152848879888266926235318647526727853496127421207203422661824520517424771628498307101573020724749722390430836228488158016371005207365066677579989021488191770627605655212613324345959112374071405535466093902142874662938844356461479597700423196282656589630877943360616811870524475936624295254127854835714571940572014466388063389118507408173597585579394741121487858565898521557314889602485490223513879995676855764064005017308181111962719034187032242072025391414053117037456419124320090877066437485902333970320121628550111862610491992083459373686231157417056402927720400000382450752235603425721094745313624990160130390286399722363711460880918964869607175973792601362670902309971025594682077451271290713651931615442908388609982754513247639667233678300000993317104608391410729932998506840931277372511370200140613490478146580152706493622636658552099382186056206620416761526285407827570326644770711639741133551358330280489678583953625590882193130850103915526489983785416838807172580425366400333703453107770185247459137794673518500915364446729759323251816273313891669543292772843963772098443271733242083326636106466503049860570980207459970055706205198697660902190712450079572167616671932585711043932575036135865673723005910966635463755537907788633160427471675980759806901334990669732507031627879334202499502438021715772557388483267146943149660456145477396874358824709906778553158883942815631373449840811859162968450380309310374668219490670703373621497606096097064769117824344104796910664251282620010010913642222733203041544969849639242714529396675742881078092941569588093945141642741017036089880343645634791439358152249831654561463537032532045813044762430782849134574723738720564294549590494720686495211677095323595031548365618639330713426135571067502734535129314703920943035620918741151221015696605954909336379131336838359802901699808584288037545870521636164724618242006742945178419888367988265551751643381470440061093911490443781558405148613509156607859896563016496519305991731286516458514991095899414253191550306539982422380217575691193888416559241665192944760098017002607320896394896562639581316331473009239285095828908118308015676350790370493710739119078384459114300089238726502924859965196879349285578983249912746148983679409049540049490319935804524913895992873485479888429843794080782490556070682302572876264369596261494765082996618148254649382178905026654317720873049568166029118983406059220368353641890096205006018815676585389010895253224393177443827885797767534836258404731504791956952166591345225330688848216688950789405507116216706156493565747476964599660750843896162871470961238188461772920905475604739787248725728140506733047600933790837318176138678861393276269527415235933873444568341848329177118297067006326861091994368996382432626803828772107019973313567134521168511702193067829026141357868701041868277256208460411875865610945942408283916903733900221314289578102418003938438138639189577832283157683709230159148103503038684677787379766153809003365838526079245764328221413597301046660984708603144160567997808986762873870185735544593332943541783410912268944445111224489468841264151282381815883355405737628299551198675952484227761713227228526680066811501936149105575556830682777056234925492366582512696041140257956936584218617511744211454103480200345212461502472712293085791037241531734216519072317307789783405414663281800482373194841083558659802312089770606188980381505221911577474260748664615592279863729100703554292238296955765204422844732831637841482674214387588169870857015896074934043846158102745952892950036565570357375407684492390823294120003279947428008785576766118567762374253147027023095185799400440181712247307222239510087073937307164914383416620339117046329883506967815895912478331039530546179781317084326033001637928120051063502758207211761198554731474787917546522711738825016055228340880452757195973938039510456752835681919809187673189045583121240198527600344056887412744775036198827622594759046363508415314957698549916823443087357026214898839198534729347789636821737408356856218457049623883788898644928278944753665937366701506745639286212514039384046060453894090165394925718096576851562820467364475841395719725333763540299933648956118952890229081785556512926641742361530132919906659368660849060894310458701927297915537870147616609082556253786167356990968333477447531827930736412570083776024507058600826008653420441660576255308501838414147060154354713441252960696286035103127780544312719381136234533288497424414766581996537612836469527026649939301846276085826085930561369893870306250037514816664854679173438188714465341229235768374440010880754835196110190778701517942030667851323763090604451762631787656154511671474813726653310453835113709031388585596682729555851341696915537512081781079679708390221376908985618488142801976230104565846575277193776002115160483568057216665022430243283824196397598149195237219152300900729679981002202739405994604625612974332757395932977325424687730965518835876205409519340585020858316446809637117347734534193705869648710015465992452356489843106361854233288578950846581061124427455864780944375714175298888112672404731433566211069611309188907181846405166758901213254432889717149022415114113088392301564325900838640269342552001850092340143636186469302079766081162659027935591813895704215896586816845137490185773570876214904680665624929031786171648214840823828671465131035582216405935458925525994841168022669370381507217817336997909977535210925142311808944163303718940676899029403570184840120140714547463711074233056149768285054641013044520523836883012442216736602593214521680948494363389996772197079445916473272846617713564767426826013612891243055376935198096178071287852347186325048789067935867862753589305986478714923658778300250397173882178853747412848127883384704648224438315029028633961711323932107342108141647931165720782581170734779383357335693354921368642814622345946944633281388115493538594864959730045840771827184167385975593952065970074499366645570776528658227273032694077974892394598066775269540982255853570470618575794178607659282779118852150643930320156693745916004364959465455332794958058452705643981152633767307368230709749026817467484753712695335264478797494421807372975424558175310715683350192132560752290409148901540945563897560174661383213817464348001045408994213420222404251113949845200745593374023309577751203230856241231805795409165486699296292186491339772547235970953303505657948275450097361065658206473045970593345870211718447358774690340829983120536151015672072988010131043034710655434854144023472792454363470526394185468818934631087888630871721943784224115725431251041535778686316922082885982414046948727115644567706654034721996351316011983105867098952464480964013582291832105854096049023521272034289503457380903444372538652383910482921753562140569708941632932385672608819063857622042101731662003921914871353220839653334913934910929264158349003184806685550577785941605943011709082341327788752020673440103746609226877554356556913416989382932443727512387642500639248714857124860755776547166201978765091249074453549001765185278495695822845587450927316318710486902249482570323218466512642632299730390152175987857139190003084637666314152574783523661967686673637560475439218716264371919563559027072135207302501396177257956521889914961706537429748928371155763300233922524934450428441811320052159620885230832706622351525076246185798709082336928727739779751018211570175338725456856365584398804420474888111448851558201382204794110674750376338302285784054274068292982077133057690890014861020435845279542525286597956223341913429381167010848073036241008960214049583530350954897767637341569474582581325827160114364784689346463108269046757446605522676503736839972863304159002130074781736264880608348176951579847189303151213665637049018995295975716508191245552297638856114155061565396005295219989080031383774444708578640019055714215359986907897184245968148561709756327101183097292620724441794140795169661954761389767899708629554460895866531189503252685744322462783975936806062452269628303210383730841197387730225512147693349765547512170382191875618689778727154909744154313325866604205167335735589699829941770518705302788834879417859640355561034000302501862931915063613508077070011365444659209852228781158833479741619304878215072788601191522325376263399659461916824160171480627650047535887866076305142688594216430369109880828135275925651016746999852206043485472812606660570327791361458661902881236918902569006682849400084373378923844386705981909896104238262920497666749865805800464890907969368287008630690105372755308970438280693711351733916259029983197030269427175765402344209623056619653390825955546000341742399072615272622576628712855452815600129497450600131662400519301300700758993837225603503495007717951506683460620698192188723724234103395565202167971316085789582318047939232999948196890018700855321262116335310021120741951073440406817955750190810780426952815085588289560322636456875957925260365972647720737583835814822496584082304739601215877729031428826470430766032564499565882001275584589893171979556721971066663869637447491465986552733710083498923241838721522956182615503333316122384200732828028920849262373163674746183439066737706568420803076098841855982997131526703622359781328204281482076876576377825495230124165190750003311780527170199880457370926174183148956829519739336386627653836127714890961347438693587789448833550933498082313637835148866161135682392354696603836729118738435419180709609613463472424164302330951502368686383820206888096725169690946207130564566704331623771002739508568593307754748010692556084493129418370102527249034572261201013549291954817780250606574092611041751129030635865905631164593287705631685283434491225671294421009381032345555069273617964277357494356508723083476369325394374669997185007078816452723771860573732471937815109482834079141520415411726622363952401035511257007813934980100362346123149702872651552772735955321791336623167243749272846119532701633385996599689202111694911486015471168087532138137126871713234127812263301489552466437820639478710975546885057983973289035120514949894649518750095026044915545047825982861343425397888244136828871455727580940533648478678496050446732978070495665115560509667640491812171578976626715791502224867617537034168628979919427508848937413081366997137907624530484081726256843837687197366249188576650655948218425034358064395082649384358720269875401117706418877773864355879394291713470616348112617202187093985744373721430080969561743342651436236469716311799672170867916718907838232204021648595306726888689528679700091367970200825610233889988932669717549404463761189713330483683669409805693315627508339171073787583223129215015872470487264569119825929187732477524174068310039608959337084244094343406376604492945782457323072126262744088740440117553155404768555088517619779593665837210795710282368317863871689314922345881424998574711112398853521521148521593529360450497568117938446303587450745581251456780619762917303911946945181162814536736763539554994264430412278225544828756971308605985576525474594620401323646733119379645398154549152867252865345846757226807535199084284497127920830322069971561880899870091480976188360811199845337192592751475200117404533494321860212463122631963564632432777537959258157527518903701636419593694048075201440739808400197278959984149216869182368860144508542023101666760184568115758816649261814470295959929721779862496766727631821590208593681232176483981401870079086013662468199865085025215798794244714779481490085425059165268711720739915778549405187125154656932267864432542638549769979792020908918730420260547063638065906073346525180484921727540085103573274237479207254912920347766793740975997905947546643378333468422544898338317170331869613180371527815708779709160958359747832538137410557544462260095430342174595169690182157498283892221048266322454586336389608951623884561517813090896818102908163234595403302209310379428953843117355489614592108881477320915078998082628957827412543122387683455102184172893723088091753458168652745664864211539198348586165404952527593878207607562273178992040327133711098400809268857129489530996510266583534381935456483064642758370413916217664726009255144541884524343940360941937094478052081902365513264197942093290772067588845472253452678809233234218768015892579343026466606460562938428622227362701190459857203709122363044253549929899575755507299857522406300884723150041911192922852454653959902375140094304871723589626161413740951336697172996170136946128371605460155964177302318192360239056318278945664948701126832538524066359330054412427530083085355439783564099249706278479295831179176516281398954401049429621024202388217137468615084049117885711091871878936989714967664684500339679722125226744098683921793846224762229665063116683448440136381245680062479297395290434084860868817908051774671562822049550635534561937948784674450456409056147796321084078644084294168655305242605524944881387534737405387715441359474390492186300838993757102980250335578078898158193619594610268527147086447513273130341574868049417399178458627262500495499344466882339852157498196410470798700663129901856819369014919768534015362341099350141231556022889005005681305511091239059786916972508710732620200465752226568747450217623488222693654451099552675415769289381071992064436948072793975488407192907283720170033230477213484087053811080456656009264849718430465278953950003568375932377319397418651823857488927314060180306244751078348252242023014730654974300404928860425261953486811595977921664017419362675055300824495959503581090525562529414679139033968381305962480757921832491084649258297466421332909843311696321911163291908405476860397835073267491873990730225209700580282139158454927123984395039551337915529448356696824121814448787047989364922940815792129903680194605552870817825647150795996971718756209039693585130304697369889180431240681948589975830774667075302450222146555277025412845730738728611776865818667676985055639842594953835524863332613827718094420712503141182863851628886096662468882935921042742023087294646778342025432506502845138555680973220639361950450855146902452031942206661314822530606000560689816422993747783550512340778273218961829327863962631244092542857690829726521963617662966409517428360835114757461255855166781109574725872118870550049808344922720054361161374472373965218018966410241176627431907506496133066525500934344961481073282531739390011600088792741843356996649246529415267388953326776451835220759457181912668746492474770877748087388094128615694140781242159709931328848808023004101884512160592605078219116636154024385256222210222384050112142447542314875588716543144205498807698009645565024930742478797010677676460536803788112551710513535459312348753832976613613677550303478989307802515634028447015002802433416487911254931076146394166437448257467671757015423403409429532928944919525674032762919081491344442700955811300208700559137526919092925318454337920649239407119243737054332956586222223023737714274620445746168818999778286512646612264453879659188848763783007074580039555376289003844379244819837267655993838915969771029073077147730744417458338361435244834802769676919629635144495679967725300373021069377022771591495699059108409232765923532092705601405868934615513228879669298724630406118237944565796489008066185387847677513142281421968128121717078988969704699037192927665113280565522558747359882116725020617832800751032168231806625314861841208895868814746825970033985876977902192751619286846605591296174332801800306626958179681222701925461210505054432995177673578204140061900658645849295708852333430458037155239775676930248346294731130988564447475679271852931634450928685326195263430396681769922411478731140660430220962176802299135397916671829300101471144790688142566469835158599665920046423604015564769218252309967110429581246821036784836806343725832964555865971233902753350577044839517510165780498217829271238087474987653460328349639830770295203289433431340752609713168937488944275834129757247093451217315116943650615810956207541484101175316996828992428958633585073450157127633323948820331443420747590250313821022435142515465974122369496480295537846723926047273159678061892316109173448228495032161788340974943220739798073002982107577642084940321506713727560826061825795318485679431033607281044394426353324487713280098228289846642846175373260966004592971438021740221615991803301019188311832451139112518558811122498701476190939287474050913791463175154208546243673027738242580047559818056948930321513927807057450086947015017546096422170505064227333216998246364479930106178763132491496988014045431734161975058207982592595173452087160083138881627452722953570616327782993109504764227569830084771462613929855979726511824240851938545439881335074678373745972915767046609347433925354922109414387809379146855382222332487068214237445410045854586801262948881501401226477025513678810339334808595751944972493364425909262747070782020257079057124732066543260613890508673105786704285371006069703597821778512440197815026383784426972638578380682032211343834508887258448092425082205721680548532523379488571343223958391299212253848038560747168651915114268579936159689259744047957507845392554194493594878286641940413897145464759576045890779773393072610315737815027194105358570893432181137728966221609605887795989711325313479983996902960411217731366936527096623872826691004431961783822836103904673142848425516549075605398151662272939974664628994638006865428882522293724771682704302400581541571773000938473208104456557135481751419669820413286500569435371471899620321109062708553376020946075382494879397930888542395916057495161662872656779056379490331759548374984762323054422096923564593569548594135105704406981720649397122949353479107322653353304205915086976629716821866539749310281303272673631922127941109163854298637709626816181146733891140129020459545129530064356766666035010471325555690832098536713648596572189227924931428295230684248765208919621684364997224297230116992635687729776701898666971172550710713625315582777532220600074718084307492698794762938721969484904664310264394900789984861924915827028251448546118008338890316696294948847279367523856647320370584113500509108733442418360575941979221761071501427432331726221535769828047361272406308643460508233364617491962244629542859943031884525359272722532869126263264222103597779672696583161181813319712916259978170973332674202182325688540228723398302683544091368431702388570701006349268964676162153686981667256151577277911908645094470640075967560269036035257284588460874601489447180874532891877446831100843154200271507912306991292028675305392500153067662214438168332540176850723967110677349159767645485401640980607093456856343514367385318835978850820342549877175378692092495471794873280705310465344706872725979154468194291463326811976578401753137769135288761761409319214663799898993133453475157421223731745259433290251649129211907159222286479587859298922462943254344732842823521688805607110245026893425333838423413933341293312533535509736772119429905137590761261319743698357185317341118816589577007780277016748721423908588202333961756410303791635492476434043987964602370688889507254402123964951762216575333037178124716008031868429540299363088394984628100093184471296017049916677735438571432859346293642779009755312571429070188959975036856098216048245147451782223568465880741090332051724290863064233972996648158247650898108391177852952527346285634221527229057784911895833680342870474070027900161967244431330339346229783588244415963364099930412765963657461332111105954331136155020256556086857129330749156343815305746124392024207752493751961327251036060975690812401848712352601249785360994994787411624789184284531416287246604428777745673784726237053117200311527984376933774323797497426602288797575493618388094331024559747235949842038314178072177436035278228839519827144849451939431884027266088654440396403352872765181104043558020164943846762024036801412413688090923596419943719755371576423936350885754872283028421383870746941882437770468911451887968680577964591388513543475554727351140238981143409898112533281155379762079140185115104097797167844831407578786831563024195047265127723492346858177102510264223614285745758892038437405344187272590022166518528719897207251187686042205308009745432906025562749091219292476943671030058548725212516035714145908596287942957461391597939071730151665621080036507977125658287424294687151396985135416721138586024621437630536144118822598782585851347738215356222776603939248014731289870476839689101351792930152684182753259782674512605600802466346655901978677657342894155214478953130748259719056578134637414093912985148190514946382077961432043222226552290144135560410781628287888456561110865716009919226158385843501605131635512561241228314360042887274535457733778998714265350921382653731513039282259955395216865882547104463587367275751591967100117888176948476338914647841674508085111935661300671912592300050169298111021494769970960054917163592182234743298726711368813998957054318092271517420299339964110207444341847414488188782056956266535917705317547349790489637775299674692235001535566791836769048871456671334407163878569910811821423900017666906581132084235003668970101972833520287330403645133149720888120516874435048145456313967916782985430023306139554820571285246925893521381955764646926486441758029167353926699436850506452539413764754470211496762301549659637561060564375357678458383213909444757230057963061151105581814964104097281070863450882798717456665726547380833686021347322559715734347331992799852448615832010718393063719963122242369932277042428138834258304740681563498945355244935239257333441662318639262761586552942409933704295025690125696221759203637254906774077740147217863333162212173934339170049175222639567272307125281355753253262052961181533713948966540876833370894404165862174184276155480634780782047111828593296997070412310110913205683763849017005632665325096175357628590416892341108805287606106594890393079913192333965631771841403186137016006534475238289309742279820179165386756094742928271927093834300010038952050635094096635748013740297372746178039459476242038745762176321803364742906830432515724180666433753078634763665601703916307725256482883492201183825661950047976919770275309580852349392769745150493644493769660002053742190915146370097908345068364250497380706447006086125387528792148023869909695033072505826218546349274006725374989037561024812998125446760193338605723508677228991095075979879960878707155275237333627227554117373045623346095498010322768529094320550497858392022883120435716087561734210496922880173734862109135371876550959001376612292270223912531934056183340711277032659999263375801803329479435073637320319982035122635782571939131036370939764293462484684981165963786117360935040690329990174437177826401500283553931368053217717503059642507754998626788833506530969913110657583109366051051191396526497550676943930202210517931295365457740999691467550512768688927589220576654126392186163486127950865588346234046945590880603935353678235581744292602915213877547678692332000195362914867714713295276720259902897728815699869642226492896884054964750505248317994254665356858286600189481157084990999318576747343739101534427941657022386633689863088743759112741005012814305674414554777584529746461566383131765173061207627636304931366674166790066026258179157385368257144511953186077766187166253181348423720922604150012851536857945435804250532542318110449556187743042350329354806699766712118569796217717196522540699002079459812709827000494016871990030226169951545218633653990419155029508531694091824193971905867852985872647466346903730354381262347666885778852878452054521727334726669926498225378038147276950114934801707914939274264082374667080932327283508198046634361661385414024803948241382965587429730286882490385003845019488181803915505126425793106438197158877261750060224792842000061293332308429439118382025999901915156099443312515162037817612345236027160363936738621736679636141966105067264288504587112320089804561631475390698699865530233623468678914866435814153441452549747552610268084657980476653322252987618738120119098253950998138353519770523659410424191053184128113702140298517075179514825875979111249655683102506347472394552377317536716283715890539182801487894305548308340060552112960120535693493834876454240831975928804194269008362225781421589255838137164884360180276969879094399343300852320925071735045077613830219019813071136757082741585001513418109071433276648751599342673917749030984319736180545883063257929590872343290883924282959260744251315054052832700655057591679179845380547145990411478253186689856923935839836158578124792684543169967433001108034347782981968026938213771222790677472201924019571550487002600204562673304391418359908889237143870663569162627926443240384230265846793027374237258882715257626606900699433613515260868883163267537894904202632125976988153030619329995851286923002916278253750317472030020792302522495258413755306968279613452115223361288659489451857069850125221059394249068612821595891917212086593695048382701016452559431052871677682246246634242020163881370693132769609987064467329450107510556776078396747309281258130970104663123724205187909698513630096181582477797720144001606840783678597717155091701912117040360789584189216746827416571356303876644298409505098306227829819397957696541883913315153775336197832324691222358057746265380983455105456849490425364100235950412255970700169401767713951429017294214464950182390100337485380315520102230039159519996113864039416800398712524925737512858635060240525484403725039446687837873620414097271686450876297524236940858407285820492917214518117866436253161809484355071806053033118456349508034050830193627120694093188534729123480350525604653130877426584405799816050398700406436191596784222511258044647004986269182725000804007075482864212003251417431732669660184339790009042961408838819019763380694359248226106208804273065651914513946561705554380454394821562468908695585830001429007980431590318106665242006733777638198209642162159905086682817409051814232806794440092748923987933516240334983983880828376384329145366160360017913614180391683586780644988833113961358670551002511656790537657810674491888621273989032796444004525927535971540272371530437862384447550215564994707020766942961355787475950344758424946480777807109323477340159630382992199511346444596642498079061294803220330240595501676902672411081108646910649285555034747263807364357756771008882030417330442421157295744886914360430614425823194183198575978527963819674345513901533944621511376509305626038921830187687835930163727147171605461474528669823269323970714511840783246260442815548946619479920761345068015027312961180660435541522789220785920824673814368826104929868587984983119583851171696260983157781311308462788679357989715795720824496760318920018335196185830955018146146677402961751335767315068356066088881050823689869866209611679169342180935269016327915088594241820485795841764154018654977239258070035298769948890136859378924203955375246856536528925817132417594115591812689123032095342041236679217566081683099088537602415225094934540151689016202413391086914361343621908390146785126376351965985784962744187884251715889043617773790270779736157008507278268881941907602762110753696930248722226671654412277139891236679284840434588874268599604824852552049620476755697209247864800582911225884865088354704494195747447915134528109313223481293278655738180811787034175713153989022974026786145135234918336787900482194175142135141357529285134454715329728583436725467414421240107433121084694611835166911974305448462471047194549758076720206634214351229580220656970571512428916557971086108152290278742774501305928678525127241244113929303524669952310832895902275793025945904170715130719081579094891789941815701146164980077481369546910708587921692433996118806057267381829416210798389497464934448123946071231936620743829612161230415266565338460867405858680816239853068791393003816525851358794072560527923113996426923885043440378909293664819793363556580235900522472762900174557041438566115776900313489929450070473157451713816790847643387411772274219445935365798579239546638997047350889938482881804568761498628074249736403164205050285298258790842773176959730929252504998897119959178573130328445046055853932632522048599909665622627826022289202980856097506762444296317754441845877155057024702669536793433542187812089728003538519471779386842348405146168526342468777041466041809698546435250368958508303946589622051953702461936462176965237052642013410754290310853747521982962515295378816812130957429532151114438609573896377598724655211258559783036235326815994260055546868045062104890346625338338314441871766444049392415536792472535237410145813897455808411378096202636125772744755095534132649779395413983968371373214981140277772777808399449295880536873676659856691398689631139084040559989571653950037176001064621476900488536016153642820436200330783821363672412872826223895612643484014258427929898595017658195064328519561773804420326355701887950375203502659989434893499726614384252993325067526544464460271212256881998034335429523754784865228538944732435147283465602819833267851343770553578689240433276771902013552474395075743374081069585487550605256236364933627238512536438815754902701363129235408736203393765142815035761064679704697066162208176078821346730972416543438886233601973465758159671366139112445270138896063568427789983218228938439989954950411917667298893677812512212802331438857336547753315414632742376580709023010617139677442848893179415521149472411026310044434933024063268704913558822377862514524397524516209726916071963670697256263696010852344950437761566737737054087305079852947778818654791830580365610835115530381105103612903356747005808580300664636070299817352095680186922697562892996438504333198332181912053430883109987260036403983173694292295832403075262983006222825230966629652645773291596939255539942718156600591608351898569162395719915669283504213464333947219711911330239148659951482152522895319480526308448383708271701393942092669833469718942261473017268098823917384407128606234265922321481309376914637108435604943871500865369434545570519665384490273502812345337260922448438274404751968478288481543464296140987290665188605602256499688741193207183168576451732770505750464938420334460894004955805608382069248029925831458530089943294456826987333656822184111091872360989474572424353180141481521683632444807279024604557856740991680546404989212327227732418005300931665176259820618736790114369077467777370984592605872261108684266485389155770153853864222961813112974562136312597679929540361018826050323487319932275386320688113139622530865201984386968842314664408803373524959570246183553618541969680736350371781278744062674748465407637050360644902808595922691952918395417057601128106827133560789347479179116516353307257090879296004156271418288340034703026279064647522917767877791535836414891548695758924846535045777939257037607966357380074035060729899364689814885681277845046630556934464151558244692225212271730610078602816363329838622971965622744473098589981609738990389368680688356857327713051576143133431384149784207356777227069485078422717661381639295052213006155160798772574015754009831453785150510461583835165192940028918133722398068571560685318122302332159118803997097035770590075718212866193281065760050501783199019297992219083595273129769650133994776683050759221670603126046922143522625561951313206191083180981191637244838386086891287032995818252756726864146678593510852375154090431956395280133382370227795187069705873844885189706031594422235516498720362508208713023562793685175547102459065455483121251231442170255810706126644441304879979282801889117185762026991542285312249249615260113916406347471573141930965091595371463078585225518806617086519309760614844085516483252085825204164965269741365733097416577382204077485874506263308836960295324855185877722323595754528860997102570614232874976808019534897694185024451559999965669669168645576004650693829499250504545286795962826747094005943344856083700173288482987207772606128826191026318737796136966320251803435506576598977525908544621706816240321470279978334916661232385911995510123775218159179529882167970807060963933433267951586846484441449807145305034425912924849460648471891036310675006722620014479175240784611551749556152855925936168314219209871492201950578204565938271947528654098879882016438158210353685956716741649487792691385887795351082979892092838919523519563085638799807265544962334690344536616841669171852561794023353899580683286501521467968669016121904058039500032178358673281437555764958707393802271589856089342648568019885430251146355215224260353316204634528171993518201070920784277900540270328248008996169162528622240272361526359373653021488354367546365871296439251633096257633375788458076163216039588825051431761604038773403569016610754236400143373382213318841684654528565320813816243685956738054447602620541111908036917367171007650414021906319312558872288042906146576301735877107392814712385522852719835102862414229373130640080455851440856601432583756345685901434742933572449529872135301322842266049233148512683318852537194177577033256355065859267344400127492499947009014538768544567541483189769626409684301959801639797578936163937750773993921709067406627442261046350847084632614580624838470776534725945236983324055828259535536835418700047898397714443366724710544918626509489811107921859845443487586073853223959584228805885135112639651183386124722773211781486711280277285909293742529819189545017810223827538512951142375585457147226829278589634044563446263617798571326198846199837349105254718969734039940904651142043501755358785832367662625091754503414038880433802700513393603437318454355942844634410595844477897799228152406181543471823266739395417354838362394936249867717919156895102263464790535356781200056419492996536345570124490480472702845263759760872094894481137583468797235822284658809513737806838304352750889628306389095889753873150284403556695560945848514605575797672607585076364858400897906508931690816434915699468349685671467458812710281693438871647179958733576295821202321716553116097249462329089147185650186470700716824149433775693603741519733081389568709785404860758111822581193522486486720711627809844947697637945793281189834041803464550578118762376890387686072727527691908839169895013784755789818980158309888404600770978158271354825138945202805654568459926497191217915231425044255274605016258557874189038318916999807854763449118820137441124195110189878898635898270239481667289083071251103006495658113475768643421389922644604015289418101108245350817884435539514887347461596116160564575222803393058533929938500230983971880096386890737942971552029313181018471069482543673508444192286493992470051825425487506754230743892801916199170948276928251736811791013985639708192938981181150856889383996638912981493666434367021098538766491185537204901567908645849636435097612570453523411831640898234467532223887066710834542610349767928463080592117851360740096931659118021601101399525813485026202310367347659211781849850216066954782941847732121318329012910601368519641861852335594424525008100693017530917071467332739349048209280217510909366332036079324556605797268435566765250604479234999553404382795883525401742046658098985991145806821321001582487468166801436654066260381622782862276549544701419146862861223404053407177165089359117995382114529837870328539056079135873278433681483222865622036829884214816084356044398648665025644430793372108754695569595968052591133060059044949690856620935068137507679102955621527873831695416623572105913541176032711080688019739451578170922703230668190336986958984498454329650999426072761519888988119329566637092510048535189430383530190804663879954816285776497096264080056996912019177522144382143811534387231570933336845117612988695982251593835026614667406762313488306771500226503056887387555547704913462623087761616656687164330665484394692777700682340379224944414974026274153903058116313899517179178339481731467213477405184453401320493411545672615695366320995789083392844171053453119339253748534128863611743287928370776914917381230711869948830085051183676873356064865413258167909091099530736343693128572401847971332557493928537537016036232582772400805155048797592601149167867157930247951201359671734490403912235080930985942911550342030652035822184760846862261947787724581605760876568349616028930909487729172339590584613267710811969693232030472920076124038679809954070217143449680413202080384482593981505161377958349976069442005097909651810525583575651138971250834971411657988322978438729087397170002150580243863753268430299024427608519965253986083980568924088255363225553361463370421786708721777691060739785186772269683307705972784523299193699121836615202976322720355490980714818596632399316406524899974068882982485215013088816758254964726123398822188693666105176615327993075228541033223171895117439383911959412459104429039166846137634045354846638833254599335280634109821110005649831127434055529395455309817469957802789535804732620495961702769202315750520376026264202840819646379969591651937403286685384038906319498556187007690172663524346277964343033612643819345039451999868928463975522299834695835828971017091088932996372716272221703486179365561346789280895726882776247203006638258636355080708576311579430870628045006121117887157174051045501045459051235441289194162764459837244422996299281171879857827775557849604493913890898297012766876463196237236991476711313122129210996816608080186597066412317427800836076912247653226119024575730364978324722033236732773813606013994469178596545414096085568727376357005582326975044887990457471721721370344532108409990669871923819822055577345239641642965848109093261542280067946036370295421769145888780450693891915799301852528684030915108821473516111634402580693761501283015341574339286136819436534398542499439108469213978311397766356370907611727886574763534394201555368335210305112999865736912258038144359303313483101621021281300792569482445527022993931616409272034606293704946985568165802006061802730228249559313358718516679981343781177095168997966110219044985085987160455621310817317157683311686445685903714225697895027127844652014113789926849119839837759245286459171270608823958815705422103917574900269154059091788095021327866331203827352317219828075032516052847776201361225329232396710058117122983603765088061676404739667050551937537407174662415831040976861911070468176974616565493914623284292928434344962587835535233930140841687528110760373887396518839887250259387797933118930905757495118794459958862713634063886149284856040433408256939771243887025902550548342057250844907275742205959359189594908450630257380074191877052727282065846985910868579975593005484530491454326764432766218057642151187300603208188183311323306932948854022799541715481890548533471906907092968811443829722873266876935990673009296528569668924049263981738252921983937046499493599049745295451990037447658372469807585951564319938997460288292806998105068396503995871114315368631052294460624456806369414532557576763925293040996144896148227778373655221549581046615840715933835948886130708667954862821032008478162113644727893206305914203574844333594235433545443442233261191350415569504073412607128666888356689406684251725967757157869351207718141111478719569610052299367753409397454757027491959615222379958459306457890331336066607377539541053229796013380184002185106016921924936357338735541631518766706264776597657443626435610160549284083338623986331833952409314971026025039216569677757266293315174436146532988782779092353621687784148244923182784353194930401866194657830249212338945644686342488347921264267717733177425555818040735449951864873281829479008731866322212883599817944942542169624233434651139702657136796540195127188636103208178880262360085103334600887781148848040545466457795634636296180176308240052313404015079897677046842457743308187739817624659749671079754440409134272788634017944333804513310375271993096693948984803222417993972541029962127719715911728829476717952868207923062757691960744751465069468140280957984361885580301580741000266029645426986288739836055463992645967524962916872119413480727026651316783221892590327269770985989360467214130227241822059457315572442203991762159062972511898690002465415814512959365082763459389490208780594898632430038222405716391019595828478960243990237418188037471501160490071618446633181256131969209641891631706302118002591994949910508184577393752911160961547113379772199036832449249920243808491835196941297485319366803650285473036499189231241624137805721166716180412115769198889411948217894983385156850051968349899552202638483834682627831289576805941418551831068408630494274872517869515387377145996173575785906841597514636868458544465524982886332652735595703344332380645516046692795030346795753955188722603187429958750454944216535376534419306824915473287922587206428002515827798910281711559499661171663494110993108188682316891944468799407050838410614561580301671935114987777558979172130306155455256788834657467455775017120556281054622365740779237449718945134049544547668985998180669832656787715603997977480850655874065954936130033515280384550061989939495177962506794425161126875002478438169938190752542771553523214904912537980287192243263943520183963015420625761257212715978488763267276475620054277002171022441064429968033112762971084724089776968298664568184522010436135724821073040930581777391388939756261745844235434184069748416639324720859283288064121446813408096695852345921077651137813484209090709153634091921516463023731847083499958379635230455391251961618018699659163898525695145580814118656922293273899064872347335414832043281301293441624529704429514128053231975455861478071799169739604132457260655319401751820660623300257635265396122506603536478544319933462441366827534877682008938174185592184696766150080693769552277348851059708640784593864964735771847133400578084799581372214813242731580423665945222726370932020947731133327010351569837422651055831024900529978475260642500219685390341440319874873057849484259826069442520560474616088428068109816945595710096798691604474056813146163895844533120724783851893573728651984669525957443428051254882447063037096960329199557395667911183426524363382076153013108845344922148938701265915049171246306604049158921280202641329713559326872043971552239116889934446785997674806064361596600413201687697432393492648243001437186285838827848221220377110134731850313630602072861879929528784805871957860078990493250590110527605426687404261300350509580296103898102216008496404802068796902146144923904972330080889002543038658178428530835372201426393621506782366484427103685567825984251081345936441463397875781760831084438604231295866525183259261066108692275844496567088353194196906190528472925318888816621602539682800882976072667074953543928220849557318142985262723771300560365676842862195590912469690700608775711499672012079438890977359707371050224132248071610865807468663515164587249245321566123575187022453212340243094080911224321222325467307492370396776964315465562634304569423355729514361185437479940216797305323139185311852387706082581625531014443755783190437027005102775922455450473287784794262999829626804629971835737887956925513489415895569827282393151097940933286466928960647121270151272004591747541297376254882368410153454456353359800836291464856935131734495360851314789568334323709357847238950144663770124436053600588271265480514207663217134008475126403203881608786230126647563032973360462973279564646920169485531750102033234093224305777118829899204003649039332284301745097365998275564921804988746135242356269557629443070682866354945849852558688160271946564385376324263516148357463289655219503487643942177340826755768038534638918835328893957161660208325196195583026618202255948727309362832482302263748474893071109865170515987012707457770857640013761226141736887615745225914170420479799156111902159809675678393164225448296348386153706826386523352676084398950958979280359194646681680618915319587865124652219211260329802748143736326505321300822132187711950147893249152233182156114994382623374500060071646290051050509560719553346134302292668767690907677344475191986723050185944863181374971248538741561681467847494967812218975067689771431814400061906832769448906904012162666533593103099511674979319406706958174527948079462190763529508553208979917884468448644614604960045178320233338469546500795691524519590260286658599085274592200948626494052304335496604910615124329357375700995044584876779349627944382380795308299216665662400350906941068687222304011311888809611454658550596218323505881052175350549713987522976354464097477994353136534853105951704106526502844392516043964012803975288687169894483014050824264506060027505278460495947989176699099450759695231238671918880187207227354590498770203329660209703326629177938247882090978245684058807589045595078914809574910193137587252656769939816078572213206463490070010056696409811555872096641353384785824520654896223389242277940050037278011115945082934243757984761469844832280888960665557350206641884641164073492899226527292305875653600550253648420134076101258961498672098381018412557861615103070538967135730444682320320444295367014250514457999189951773545639740397656374965833651593847023267578230943965476925522899446810948531554540516077665987726661488142718969320484940092527145147680180762268069404627843925800524230041572112023295527291370912555542272611124408108865675671244763931440602132660990772441722682230362385820691972613839234278075137779094343916631784118781269066616549800493293580609777482212111695205838291366878016733279308576435344896546404239524930452485319052102144736961569946619424035422379796072081387883512178448122042161407884232845711422134474330872593984500471918097290552117758751784069885687604908094669909277503392182226343782467999110886685354670280808622598782875753762130916627289441957815373664921825372367182904690656668144833538132987244984692665942632767224296214129090333374327843475356164614829414840201199068593137212309711060690523942738902477175564750164933982448754860696710145959218858829297531561976446966943968385475830392297409632891005198442365081557454183997482569697208074068802165422866217754657604445886963453394225062125175819739767564118106674665615026445462973814049321212055017015580904552165075536776372666055723585010302493999665297737376347433625543572616296211821939053341789774330004568379804235461371808615442516191070194515738052811296048257603215549412998403150210857995286017040919709846649636765428657702649540854633064812387329477222474645459084409285519746663335308597193391730358770373566791573999930544955902626421931284992123305161105818132491266692727290851659682068654187457416897961662439561121050438730275008402732852207795312150814776410024859852662265082202790791889090207185555600972175956986950890821387568586677942736447832170015500670313982401294794252394993272737702826139759167395505919034012372952185278774693821731878556913486060464579738265591520158832273214216783513098680842917418178278241102295170817331424190539240683253684221463765922952217833988765383064288566591652366186178815705972432582658738161610408489632644276131717835992939196575822528296474758049497335039633343609093600986356683965550128607198558220505404182743280126832272663320001137278199630863930433013367531346550248758816822815040110446546719003028750332123155336011101409245770961737025148228060506666653756146643246504933897494042366460469048307482990155561124702612748712565613780410050016426184486802480369285540919608330537617834645906884436965958423429429352708906354653204944640599564980840338263143689748944224472738474072617568930746493559299014091128481627542660397068394858516576785233541308585784899288139840315672438791863584962458811027250175478400375430435330608027397909643269204972712577891304881190134081612361749365247842501470420251533673473259362535555515016255998784614486225260284817438825947168660218028126935553075950169198917206746073866387468228155606058492982345733712384761739878617946415547588306267994584130470412086116523419994112452065187920078834928697095065815644236710358261391358549981482218679645494823820646015557968484684661063005829675278262034210546889194631995154930814429912080982143402046505427694560417774694988043629259936099658640753140125156496224284622533485122215069988077067128514802065506503966134103158378110526025081816665995216768595882973378780975519676964568598313243639367533420831800455741747936671536873313006725867268523109927811166119209032514558301543162605911334830091879985998828697217046822042523494538894028995983971443559963533112623679586308343769199987334325156117744641674926182006223894623524016273121414318049617316798244263017131210788570817316484574634373438498276701897387116807979888362693130984232732324034767410337541980505222909812077501347227367544202915129849460832306152323081737772609508631300551494617965707798408084992724298290457698124114660931261462173980055866371864077939804962946017842352412297815959549063759857448826594962792968719067854314063440451606605280018859825874124364840705306033018476888813546312963928017693950802288613203180488954553264828815119444265447792554169986093791129305884463446888163829193217249858902332999418618975740402367668247864840576744523094378953549432226111665009440865401540656125492305101074351726530534399395206916260895310140421744868969784397089329706325249106926459466345605930657354980396552809024708530615523080561515791779603269720053017092757691998015472736305039072808510207659092247253784652450692807945937579142132542542410709301652338888897143859732930324462928271236289024780076719445640759285416611227794066556273641163160381944900054783076927026478214218403076302654915176644568682282757152687332475227191608406424967168356354953029461946866038133788321732439557416248862861172629096742107665626504757005176446044131870366616643604461577103190592504032371723512289263309783637370182219309777256506887276493948883894331633183464857811077087770673569825774097465726329324055795939670915991416475505216410596202237305211057778691844483911024276409819029841121886785457290895061842744322372284567789887242843270949345157059552062161277445899223027221722818756767997154800999712044571710407251277965112428426571854593987137756288010703199315888353689716889056603630473804062448804209625811379723169819576187333732649513825115482568570708898698925928813964847657678022764256362374422203239037449311149126117516058182109407619412189414428087319592187575494581445949601400508184780401500936672994355799637114263706406073866956640899480599225566161400152031013576345887121829703083651994053481067276100223871171821186044496688739163302781379864974684191235824197150853000663432667997594753581175242946574100194990613994881435500391010396351786654726689463592608763359850196284466077148486374031159527245386651146485914742599750598998234633312160087307832174889297424705584005833129904320126356702964555123427673567485493673578962371861310082391854641193665994012265998835252459445147658712167059971425952360787744238649856353195165031493405133778772292612966171008125333966335335704205705196336649410242140610069222375442425168602756336706443727495486828817476590565950831853705955649963383527459148396465015029342485805803539904941595936871377814583365112861579766597636732793639384628903638864707240641905401063423725757724627777901949227830668538814050198430073291649546777087766451030214440196227231711499926935761638576159553836318044087628717779501568364866813284752161529961305052313860430344888348332249251323392422254050535220185270075038747624300376867792063828140661488896573722244151010859436238406181198892578255675575721334176271290045554404955117979425535490992468322825669546035855738759869400058640277040043887871368637204084907048614164060901938867765856107188636654120232538599231422343176320229917351426596000043858085728270164427676290667078823143877429109341754019805998916723854005087070425573346743064905416190423133394754265472208287090122579889188864885597063743287848477914245923449488695666448684688270051684944345189286648058115038307814324096673590759782664381217132840592429933569821492289768136733041601728096548528175325460811414714192315071411598732439892903330795898921440120661475054389293139690227580854499362495512724227692710500140101690112513820334248025703103696555897498757194081073957164525049774406302405459829111377461280687592576950478213837291084909450169463428777144311492592330096074856953131180835871588455340820496824016311149934731044776384940550534458847455260446261429303788958652167856526955013334712583720533549082407675912063289218303121850794410118596192205143330145947131485545708741450211603336494141398300719253172070831744053738124618891002517953049409728786329180994082818750279933110164289449900642764109184589897567777584232654612716011829286462928717821524113340737698358782391191992526485185889556894272477996662313878583469006735399019655688104655514252703066380029740449214959544707509600398396466627954385612718505726283469048693356301693602676459677576592699459221866594071903970996798119646520933649251815381569947213180414912796243378157651424423071779610350414522477991836155846938352066513076693819637914675170007891763412001845738430042140694715844474757833542190721678486688521928597405197171418732886373044704648039006465858643315529773914541882057887007915087468883013512782360678596520551574609508524132782110410386979033842609209098517542939512000955606762334448489044509264341638092713964761239051763031802611836447830537654288167036219394365364561815385810358167719700586507491454111681272304373383933265839621341093705136162094077742745004013611863599515157380257795169227889804228525925081047313582584442585054624391992392704417509932565107674222300793310206766801667693730547888822753344344737550734298753716380906044610879491160573115469321868212970346004344193081243096922253152384430980038106224074524729156917822019625112445876290306989851905796802417437410493182566070517666948321213927104118564471287222508045288097885627364966992231889982274802504613146742841342211219299743166686435904819488994348987514713175403473120880570665214276547836038099178478714559633446113279007478486360259420788261812143741697332741421365889563834943061562501866926750049420281983658474508926643868021484207009974657873081430182684966686926131625461674659616509241129335216300731959940580885495550094588057023467731336892459599802665958128237119421351013063678072402237980702009691343011224851918858857229681688145739797145655108357316473442211898592045154787541748354941648162234850792073463716725044269614330260962073580854983038027569537201130993102124931970964343693763068338142525662235238955117734556496594489234341622898405835000957489165554366889611211873976852661599494333386977179084312699844040415462969769584186516334117569128817334296241798537483620560453764277786633406813566504782276256234443315407541679292723974039134285085077741787439452309233418716961136966457754091324504355668632911109910535019355344532680326708694371350753140544498687984409810604906376128648399802077591238043340158846443115028430720761983933952043831763986068537746042982491977774715158368862197498562172860267927759508952116931914020420698192262319618878778963405736997525358001329213832601299854135310739602541953325165530150376339816437626046784621884104509579499702210465984039555994655661451592781635670950778343105425641186376660767504219070257596320907586247617988516141567488267649157359796107224881019290218039221271205827421689030775838368478551927175121077453651258372589878169175025956430194880783801524637489527836537226664241490835582498567670749860919781106054702127400042907030770262905552183030566329898752239830960691917928308297059081939473543760651204805308132952323331090082536298027884695829580244416186600945870607400173770774014286864378470407372892605410538124350333555447279389867710844451733604268254070694055971702129003441818571789519754959518872944331684274933494355795586397595462092739506395969301896857851453940771177805994029678447347563528384726062311083700326874183948540901205301462418346117644897137969673225351235612408529247907752442663908553574041617286019467608014951881762477975745638143451512717591764846600202047552968503810085371079056497417395610882581495177405776892295467582602476776681625944900809301852204418580922738765755171462690390977333837925249377108270231636681306265426019840617638465915119928395691295611336696767757735084189104019735487990655188138967903503375277564351202929634804480573391728096067192497699157697380800360914510905572727306170255924701332917510118066845204429361733721828665545866608533532459833095457327781786109987394535540922440250263354396632218771600546614502771748728396596379737166138332160878944193286468839680473839332881236604150192976111097983814411349594024997945740164429881898180533975218404495523406032282116747297070933910616391139526152510432398187666615776181907656439038021360050865824002860606703397103536513535220163134735999613080850987268671734099933400070556552937082935234707894637529566926651375849958430225374294083695151228345866122537135168017666254269954764896252730974499820000085901445896173486599345938950221070156804870071230323452766785118308761335298439548256711204243661592748870132452276900939811941507715460380700660549057860553267873830624590265026554246707627302845888850658034465217161192200071595694073885472159064938732393586328422478153180679650840472665895164527179881580084789307882866494140815750285406082003170931564064406004613774501038916468669934696602589517199824030441813393452963742154934504476672808154911543662782939426556210817947528917433765081946181364136414332935389853032999282375196828649858090427616043607810177433868715451006552884829965001853513521438126556033453628862862724381203660871910277719330145960143749928858782274336839563555637866160456136366141443434263012245949260996892117120960818149591628424135750830449182505910106924935540353622827215826081072755104045500642336294883458686746629062552391430108970327406856488794430777960211909679680643064912893702328950338037687977517086819778654979437468571445225795106531586637418490652968713165582790231790602863802261108081299344224360509243158102890726968401093769680175014813284330787091911587620674390127126799403922755755703771489385306051204131553046432297551706746276956252938286192257105141104202818258880759330298246093234966963703678995290999715562591915160693419146666778243350523941072260182547819528522491906648358823601506484200958182431344663521850749254610105136884895351081741020554680420657146169041969265665721152505634834478848755552941860614647982678748678572580222182012255188677606080369629771037910346154442169224312038353964602544242052731420144799778049885131754986239591403432433978327618761549903375767633317359361599507257926149730351598179698507366038354432725539124567805458256337010924318006910723325825709381437336522491602916570042462029840697256445509336512932718562571367930171802461424557187238024526411826539208384839200454943265197768368840221732362265211774380063582706646424622012284716205301107835513524631866601586735642839780538154627641660457457982729573445922692611818580597290147020952488326207365368168123791147049285557446131173955241950920895128229588041864701088685697829902262722269600024346339955009745184760440490721193207848270588092140316865038496634050044463077418623638146031289620396128746497419645544423076836900680736915610372705223718385285365077464305381251550752729053370590411170941191870911368069275630415203841203036368540626680685363587830767025473655885654497415225737997866330658289310325460324634710817941699568231158007898316602987741224595309518113477239349701571792388053619085388102377133174628035224316124310534374583106908869670348949515659286934532765895365218939950542000879976698395389983861986702257255617897130182266779621219341718092829526854462957176881361533562792128148891747296027606422135007746948101044073623597504488265146503640923075989677335041363862696819315750781132408817449652068412297416649699404947354258148132170004271112075112340247227078964648729817466728597141371591593977142631902625155785327445358852766881967187244582009375420600176963313570319312696494029561308973299580439531077466214719450126945381047279120912266996736536745921772313355911872900118298086496013014374973188926585057433762501270305208617077774959594738881601925331894341624663360009102622210014460149716766702878456945939870193825550024105922737246320650305600846144371799144808025681274779178505668510260100049353331449925714235656987597212551284644697033505544574860852791821623242190057323464099320221861186729870390079691855869394431823771261359409810764061451417597623258444767656355198724443318636881015678633882463639245404680649068813155310665506703464678392811501473879740647835924395995571190226262568447995355475718999154627922359286226292619239554466381977916982763721505190961911638408820344049210518393975010441772228844154879894636858205223604051525657298933297581402912101035860437486095263993059531770001257047211734258223809858651940404522690284328706182842547134498114005924875754591523863907210590895278022132353748268657906753526542767786177190305941127698747946031710802302344878415378143073890363082366470880437455703063809215338755262389551130338000437728553009150513813411438714128408695737519294736969505909357535884026301619725207281244708348016298210280170273838646070358076814644288653103029000206407299647392116799803472648540225340102640244159158244242398517193330561347191375522309995574808521738504718063844563847212684701747794536908375641211333229170591659250849328934595475519083339914304460408178961261146233564427438095183273738836924671885549417484556561283309392176067107984639835357517008439412635576160053213418604564015580342349021011253644994161500419766659560471934045395766082669518992199283283935260173317255749604365873778714288253177442474629870040407750200623199698987683649942255772262533893164332319143841615031334500156530622145271253204566999241231297477065371613617783769368123548518941707858090688380342090831483341924200719575804540360028092000715653779962755225554495630138259814473378923249405349881241798242511613108519154264588192547020678006726474412148393828761367967923757012826854596048348158572729092594483421389247295346078293060925561754215650970367438266689133398745541229769304298341594170031088876088780343677486077097122370441542648210348190466716794682477558068400830730067616916467696596528002893286494147739313474425705945160799100477075385158388382478162289534916756970855106961150359111822366944270299526637605079297606345442960650972313818485727450421402606204025241929374079341668271016427790072183170116403506078083825118139603340384329598395677510942218131131982696680130092680193301002575559801334291573490708764216178864812973739867649661566761971528782818864894476924573983252973113658942698929540917065413650433269126725209487019551396447761218780632511212579393438427871294254269320671565662933852737368204902630921296802666805669700248138971357229716611633367028564693392283220585579690026185708171471482168724023476959978147040402671174856497957681932715800380250291454373891508210133660484250550301631937714034904082755949571853297464170221024164130668635668282072557607276031103136041553663569225971552337184577464152333370848001758925571856357771318292781359547318396808994404300761162772767875358364815564217241642767303210385128880754628732034700024097593016936390756240209202724320029489527835179414469611777658692986070999482143053960224095263939807407483440626025469218475958752945712341500594769878681269085634688677214234723919676943400373699468426318310796679090858895666930655581475074383999957525389788061178452671589698029989569815901704771407894488714853918454496268342325940758478568887682350102301717216418469016028840509286474003873114136018777972799338642468516426843221012536588848275053408058709679774134129357840421880269816231206129256703809208519188429098138264849888898689604689113271203999679814016063331520240148660488995674112395975605705374026881487450078934109938278894145078738163041360767998346242790122458226761493641600915432833572095825017041727541666334254565257035972627685823386389766176817541862314517753201546743456464392388200800779821849688064777478504372907806984359349359421358554025523985487883758411746644063213767074977272904098326412971606216148495969746964030781350263780292919126310529547851063918063788022986184699091738684124395046353095742994446224918713982905345068284243820616460750961925929558657238111371412042582411400537144027820662999911862462661215534218540408918265173167246164654498533341501780437917972302215671895299671745654547403610378762175348916891241681456659735492552920692324672273608844329763395512668585250698519057308483257751166411991836963239435276678813979386492963935642169916423971338981154234481987169931583557885587869098356127227684704198531898113807954909121830588681049150295966363684673638995893634425986048585513145413200739676527720678987082543692554665365599365433627841219660312305039765413882483378088889767813089039200129133053307234261596043875065942497471089581026924849704692484659845715534935638248303699941046314745847800092072976628439024011907873881874965770012956881749137619898879228734724456833527997581185295466737730004066086971897540248909195847590114312212934842185616956224160154151084235133505739955571940944210995516919351106762057134935068854053148392847843228601116473952942333433455086416348439004376258443238283374691209175882528394174336337002332661956774416871593424803932722119161630294177632749185590806774482678978018993001064132213114215660623701371458496025907344721497724427759803814917390734797739396809744580935378729171011187197687688777904991398363633107972003238995336464076453532581718330971526792018237204794204347355115293093814558597781933926051389319548682074148735841955049611691632315086934572886650485763430385872587741180034582989942954594246807347987102798229215159612821444133489202515554288344376749008437693814820884008183138160304697193993708947359812853494393366204272338984342942686641098290491373458648542181838714769595043224028579875377854301709891192091246182418413018567713246659929657667692617987323249354154225752967176863215925671470958417456994526206571710584554238767286543915255877755238956911300745773782307444224936456677232714745470871561114289745046203483930705800745152051365858882689808208565305367055461245639333774421081901514971271111493471257333391584977273493874846892676296886427168883099917920670114130977282818216532214899430717000521846097288806506888301660829776427238665163644689457795316648944541402622865332390327499081999827087217655979877102781713949460174834419368804058511223262098634301640772525702994582154883224873664322184885281156194949833641665982514318551616460448936182200522659762956031843416178353597404513250696017667689633782650653561621505986412625577054826557786654923920304134465249863556194391450325209410624754014883825812499733461129510844710576199460492489322034072551239376506330594675406955936555781210476507512249808356922337173786501237916589354169297964275596399106491197744145608981398506893011351468691545594860942631057574310117783464379309457374072718261669089964961807054912289462764215596515301648264719854478634722317912140827115403842628620731281068867335194343571699757485699295976699842200740068438774479850349901738940674373051443452220341733197481016418900986110206465197954214892527006510684263064062656241188067207229441595921057845308711715504006760591628456798325442511683463357919489745030566868138510416754886996868730025486083537669072302519819013948298013750958800579645847314695413544362155412209657954358898511889376636612131258108212186017010688666018709013194528158494920933911133498841409269767140847870930813527332108958057121878518324056267528684570611028813825059481056659360518491030470848609098045542471206820984190046746553112025740839443024661871088745481554330054623903449208327246108359573593224920707820284399362301797008053025397408195888494912187274806376065503839907544869708480497867259847377728213609461025492522064366964801378927427819328085499194235584932230581307233231515789976065620679505222332641838786893877747896673495810457228516809774051535917503512757264722468600715522047546344052421742147866334599885098600354514485474251670630104895080941010129433718984363141653427634624430960492711993377363975671681386572899682865600401787674436323332272647097015488592953080118723001805063554981003623648143396631029968741783266265154760492200044603944922413954790220956379207126609071647743969108961957440069254052677366355267130902184886884555170774931244757213523651406365075496182401966546427239557038881442198965530715844185943111030680694939477760579400421086122687008669368354093009989291693308396544956271137211311852450587739639353222884568878886840409007089309894744407246151755528514688185768803243921585756247908295594974944043755881436653985852228994326884502516135483802523341120604874280054951526567344362587085451242454329148865289546797764694429631783043329308302830633550628500305217649924945714428972142488219244690853334250280337976206492744883179944543098550050859613938624087720717451333451164424042207033809997503474856915122687657735042220417526583683953013184384809310695813999062650982631662978240862232644791791538873204558873702114093998222437404002395376706824009535269921928550107176046655362215581978010942685268759644780251761170514802588742590259343882588911718261101625636929753651733011450057235590235899778086498145260035958328676719147778520306143977061495181785746797598884406807448780624922625382185645921277989389908596367978171893663078495851815910348616079520984573902331990444170522172577046107283005792505264582976418171272714699737854879952242661784112813689563851240642565164623894195154816115838204515938577449456158635317421028008271782695993302377227020142566520831634917093167030948132871548194222130101578518180964824506105621152711688537151287296481871761112209822429913138757085257680764283497110266196887709130984396751080202640487374707936792722137460108108293409472333277078745921553280623336018290234368331635063172999575962010116277871659769063769905842952543448467166848431684627235057894367726257760202555234681701233897491007349047236344227071104045579650299859716189544962219270145278809263871715555974682598348970157409449042405561916684335226749686156747628706863850613118590421399918548218113540901373059483119077790345141538693931264868860848719759016894219088759793806292904677333430300479675909566098730752852574128162215215578657932305866549416175779699232857723096451342940455467848321984374454022537069357590957205840649122157241963959844514933939715747594281335700342679466865507998304101992049914324455616320820419210371295292762379926406903033267081005950682182343014153805423972568375549735249865781015805212478152837724262225903544011435274573491713874777196325008350371987079151448878565242379676863956763425229472437661349594990278446347610084622232741212466948504025078476755080226616503839919003488900914276774520708178750367205955566074339121693608792581845286737355730076861038524179832855589928498852084300110919993334324095325855145948177230700645434083429406128625969398186970891815888096896783278017088834935317247229096882241600446031339981344656157639413699154723198738390587933925744740973545319313837958005800106852369306285360202749037608788174755541420191668350253172896560543621576587115371072913345157142738423127040435592301051077895516601367815011072744798070138028485395418319442559533441244407013742539883641698080382161174464450785906726775298996319018874809263262294070568320946519352316997580388069364200628287409933638570958560513559551161462434384668637730521164980215440211370889822033850835795915316342623411526671452119685590192631114730843700856062086450701043739112716259404075658320737198476922232310551501059742292258658845882733443383174707840515509311266164664221941464200031742725799851859084039051102433311915762290528731711032762819375905884543789711082013356183798819012647874958864214469594468328888648067371797016779528723209122918822629763315066633215092260876277356359037881736277059948212697438998140763321677165221308818289312028200586386400817582532309672448900069588076605998406405976687306426249534710106303406261372753901121339348376228433518853974476853306552750262744556011515984335609204415807680611490874349000463452316171444404887383609466924630363778142247401952490073901850185666416890082268324648102582257120508193482714801049279923652912293359057588597170672907061092458606944603880199169822193418229378805096870175302963625179461377073170732441157086016040067786932766397512191484088846273347681652629117864482276091400739563594349396202397585780750222919510522677723401409967985754958810101576181156740251984701489758591606995409673533109302740399442278343854450661849904692171071739250901049322321961318041843491668887621171553870317628644291231599590768916432040692725592479528034819754107977387748472444656693381830735006885583308300062171567047437672536978992188970477845555578744919681309493789960524662970506137435378752750731566657646334755828649933327665499362452561512153110340467044371531329630540503192384598135144736104893772736727213261065156570605041904825649465831168127073089483357051488604508534848672058484371451495006736538917282432417917240850317047514380680977275707284884956201974569458122615074543010866598652882482904951533612118966735892432550546988464434965887189780633000366786106830342465828907208144735484134906089979015929642395069924736510097629534061469465308836775888949929491928354012720421358849994229957443180153006741009073762221873433163115063559143935282535333800769953972202699072206634982378940686234256127698922820902661535819419558567659114524982888040068688181027726178912265781683683960591318045443677473501337596817357309028171479899271054761537730471325606754307916106005042440584556911497547511276561103870548478814101106444398886360956748789468574279337901076463055226408810438124190459172109588615979364841514644099556374321580377084089675770383628305418428407063309968912856293392498784436679184230023541305524889065696066198756012825965595376801672217290919023102079987733683303867466036187505452771015699261064539351000993046570478454620218617985109412028580695974540503276539391557056825861533295565691255477357887970582783220029850272955854027031411577959695740063736337834972444425743988838264639053626687962376277401881609079576863388243985185870786803760981880336415372464628099945624195569943782296068276947787524762823796382755881834434120961746190253673758629495692827155564977425431581576317601211853728361752932814164819118880387814396615355441096507740486862673117443933155795998211652457804770347960490823970580262653658529342859060184088296022424730679765394881576634724951642913522200479882903271464003707973354350691028386949778326936909152392053995250308318359375832855195682849703675605381670449016732097490811095976439452585521148304578700351283592975862595555907591601955120207260064529554703127504964574165842429337920107824787793402816789431863373038165201429928792553271327581359523121997907978979474654092523099576548629428097137236477465217610904931772553211068167988317154883085725102752170803963227395690248096877437909636947791727767537142604411331881604713741512999425129375622420999806812267668042630083546629594625269603302593075664797805877901668948752287284397933889066282922817569856178636091140537501556172249101319659249408999897329629405939143978942651870702842664162190105143347722331093333494753526822908873112249671750169004439926511190666348176820522743328088309112874565086227594844396747571093202321346557458678736780849417526508514424979615375279364098747362246352742573947571532680646971744639503220201683148779904827324735938076824270877654670290583097905932536484874274587732296911361459382743336888129400030802581619929117030127597282059388907374251210441898707567522047733279439150566987007563862982374526596243602320038220630887716781152366105527080364812940704322989355149824591710108545032750965463329137626949864223147405683752665216517802559504096018669012611680917762860887599048110501159847394142267916863049347920542940046861471809391240549219377396199774221771897433822485383174585540377945386557203175996038116044118883493188964102575470566512389710686221667685047946837733241908536196346462330201584519254904574916892793415445644823795337882443706251221382448035028176304607016841926238978274293305476388909010595263939935237950251866227147291965708717255343438257995078096903410828685838189277823326599269085885433882099839539664131285453109512713254306257008828356200374770268190568478423120166722113432959780581181882163700270828179387184986775878663350541277680181827177838900405420848057389220964917240345507472757068528321917114688994192205234684605281360181490197837110569583574516757566074519350024831090836417814983835701190246747501330566579612343044141792073527986097127413033644292154506819879723210365400894641072225756523571108353717263771939005642893109984830534573076258695158632915624464248041505757444955539049771649449016831291305745498833643357356240383618534820346486980086714870215044122302145745437619560656787590741790389339788190424786723886567765220090330651282988791903954380551798702047454821901438947236842537437144938590606418040907188064007898181763327093856370868918940462591641378729113314134858694714086473969371627937431465273124231653729747552242587892853996308012456305149603978556155339834461136645969788989909069970428056881330749668305839004930163740271497161629479522807349324943096789288236474830112871080070474623891058070595407234036704617676102720005035217151871370168377620191420838601083840342327212175069697463716606970317350755513346686450723317080356017914691490019265412860438719856398292865793050661080963956263828489401170091951404930987298588194985542622067362507608808190227783999782979917772478114360843002293451590166935434910954786824368322096495869639334302767794188125694074505449003036476760902777931967467143607984508881278464231922356574968253628729766026478558508795441588032832508840265662642684619426779485858242030510935990664274387780081040594889464331176841611533520025987094048228843257649494337209785648752430335425702375359527148205896682936387211971439121702308328640897649099834522596111018995647508417457878460341152342156386198128001791626665993119311745495814143765973036184683836364288080129843885444033164826622756218149341408864339928627438617400297162947545232876726163736894723472467666079176797867204193302042447229074647215785911281254865403765212901830023578951761170298908260276247131999667018610640441314539817873162146794048812767119810893863979829807660842175488255169732131689249072123278765483417505339225411138938020942720445628482452190147847247101880784329755075533385540471574439795321250710791768497488179226055476953417529735299181796509160102602888197807639754752253266109463602561903042130630835686412835892268159672464766154348455023475098102208006549804264211021760401566992482834350765836237200505906260880185460614602778103146124257861598263443128112504843448745409965824857291553023161427579749181245402857605610630549934144787159273830791255969077466042872599430030221089937313263364437169596525946065066004348217280704415302637282405276778777747516654212083148906214860311548343540339519897743270910839465244681534633840000142118495444888048044261189021519207229162991323296435872290901717470120613765844057132824661674391441126104071307949389414809685131870397279447906762542396907386955238351308725591942176794013222141707296971992811128152863043930050034701422437413063343356584209664345822161480389383457762695848570821038327262698498990874913969102331458789371571515648933920325994352501555544119029206724845260078945022550529282634883992609680060548519106390795861786022927255493672344965439869982236385329544339635828100576010617336779477501000397394732209915033850292478912197147076665367610922266053078130379725759984481981274452920413734644082652809505429080402937168293806873976927217734343786252404058536572286054375118452687511195518118927932282514203958240844218147732929363711472348706769894375471943636458487541972577674404360454733739065923207174467989887915638381543420185157506423289971995678289731676462405332253434648263718017692301725275304529333028171815872785709624918036967393344300855479074915062219196692727852317581217652648497304290574591044998581257479445445982626984866203336240406581339360141426858535129120462975541472243883373144791357838462690711232463304566269967472126502014919337212227914641297730175113641858688958498441470031420531471376146849055932154575228021876543703054687553768365945149294451564957036240156438584074349210425143910470147228978316918009272428019288180990972110360308701979979891905558444183905988399252056801997638209346594486259383847907181404302416223707292680363616928157753166883037968758127472776868743604381903773433378546968064138859505992653325326221515570274575517128490642096953580385509033344557186559097138367420791366951646782507144897831069566545850867081200165027160567405146193767837903960045261259809227892664314484005137152051302786532584832323769402205754789561738514686712648528441126876287382176232527543484630134839144163101801514846345172142442191137491166958674905915485582751357143866830938367641612182144661738105682685532130925431395744765272176392857242266983060903811174183125101189728066562123289712415484351252660591619609218409874164185475921952336090723478072611429682864035065544809168300713063469437790669522497492029288902171535928361492644184867843142386636774948181791248305380640161573471416126324599099020035342812490701784129345525956558801902770443031658294467062302021122663246786329296382067828102805734117555036166704301270463736679037200744555961132924628485929343079829085298837008190008421203388592658855125221104294192206086547908055023404673611317992596447054323550701331147231795259976641023576750791538290779853902801359703190070627439179841348919993268813352471153663490332460699336509409905965757292039892915807411302694303564259093789082118322109786728861674031163623749230599125202657258191881969858574870338130009845867301762564515031431208725121215403528417747336644881545481005013807954780477629299847982857874065270308607295417107508084945494857249649149308917362782263272740512107847000085342251593328537008087308257954659205990977345295888925991569885858839172969978351957423220961937298603917141382280616258503239360290552211920869523323823915115526552956622286431322685648140600351365253929288783822059109168324534597426144385189348774922512238913946581434191374623584492494699941630945685319056863785513538445250548505337756612847450341161234197809901341557506606826346374601145712177498084564150955620804173550944647265289745657276742199633374079389193146353872926748665255318120508131553178243616965151812680729129710419767853849264019187157628940871136988424904751910520744836535100434557682631349244321915844082968647161790726516380641938331431990269854955626654355966078953203777084959248111465532094478369530089507259510948790113059741116786562305725090876293081788481081237208130518472535552721463014822529968363706393459907649736198970075921496329071064519732306235372804584468735058073725417033331011067858633780049987804016223677038958818240844494303595296623775411595597066356582284709318312058194533732189602356483066197494270936865765121488287317919779123433422768182673600477129543000657086073756556167623027209551045409028891463234336957740649923568480259984141348100216934390538418500380053628920933551583109376137409408283110900719281996461002332900403233106581802426621378464066539369529405469754734397304343282904821293568477955464081280189182222497449769770487407912934961485219096895931434367166114405452041085469368198176954529008743782129845275510294789750685378973281483033412246997780685969679937030653038193981505220561237423831099440186543608903582421230216927779722227269153709283268778379908502428430468794879789828044647153715898956271535970777352881554337016308643721899516328410579223836579522141425113406356167985546287848136225673816014436109817811449428905308853552425625533692153935707402741686366531461139240631660312322672734240771382258099740865227473226265140462949904076637879958393987250833514678485927734497832603710282035080834866177016642126658876551501154526666557896930454560626482265592149993497577240897098158138498983814530538972750420016884388148221068125866004427034039297863761566659732569051777482379172396935336838830848262065149459681535366366683399651860238838463424233956663856738815884418407125189067551441268471849319876982173449515432996741797311639302530418088934664501253545158897719860522955859244014217557012694027048074694620275069917680397380043332995134363550723817799810162930697496857316387914068721669556276995439049561530083628961535693855837838003503877730212403224611847418028085018179637827297065635173791774320800523643922502844790829756667444858033338447635336065695061316679381522828679602073750104158401172820882403317000801974836153488137864112592881020240131406073572211966647698579959697896858678825330581063481837105419546705935837251614419968003162491089830534368343261396171175607622561258629117076778691329977034434370544875143879036402455603352020577008452401311191826522414969018335605385311758215723462365270881225907157627184550010185554629030200919825831438840807901173841922103379411917318013320000203173064429189071901225983567025876096324788867529518252497023892704983328528721128891006874015053633623413803686005087113704997219732811713241656451929955627077043072995348938373066544765117119152446541224503090551036674949048987607658383844772480881319694968093180344541751513650752612717473411548284950871530709127765201878890432074342734998250843839158598664733613561184039231722351335796905730578087374144086581927255050603741686416056097798259424441885577637121374436989312457314062869981177959373551614700658676063653875459386473033715189041607356764639068082621692053920428236466115695060590413034893039398053124838654666527536535328395380380772574648945263036730017054693215954043430214462339302872849659022856585322123951481341877773772369227067028084022001183165089161873465701371163564475342910447143661305148791593542536597907056129802867221676535512029966334950418590672444293284919198009298894181735426725778652458762503933441497015472624649952486950890884618320559340382474961563863326325791175135187313157900408443089371122801096167690775075828900832012107187232753135626528929233613831171279518716042249726922482212801300465446716470636297656839937954913801421969411994194869327871212951199815673317901895605368972603504254432782369590807765399404750756723746784585749507520949414854769053577957428189965176701973409491978075011444545727150521949472253469315259823123759111870337383898415286789835212035653937731459554352621005389816548811696522458653150642394157861395455731252949756453398780044964105158199147823209258758561545833000690898901849718315189597259336543988411074216778241060514533144394476696968671946227472740267717093972867966778479647312409788002814357789974381573137062867880132712542710700672932794817936762226159453352350511481815296698405237883999023927982654575404861891179577958528460116918338950653600271069873541630298446402058013667849791001095443748222851818157976937557476534667377702911856276265900735033718217743115484896126161746189444577931481399944474076806695234987742903704923808748224204131262301363820398887873248586504385015911031870220312287213157212473496429315016804612864413045517397217398703129754932058255382495915576064422091877720475693847817951599446922615498692656677921077604076011020539559460258048060783976890099321766514885551921685107900993815897196227724762688077691363172610301445988945586548396337352085451644401125395666876898954329072489663257726928333898511168267630424736874213478918225685851976328772443772239431848091496010303862080689525825640865053826067648730738984755660524527991363678739303870947766289968256218690136996498784200129345364356702807464060007505877758183890012148925011838201656640858296242274083847243782698096922461887843731758062513694975232222835732543348144455061066913642764071770134888024685713909260580837903643345112646520847029275207338070966106937478176321333857868876916884105569685509616247855361744098084616005671715970393161626346729944385284622137519130887414970651787881273421603568846947345653153714322743602918367115368076284309293319128059265434742594019615985851067321611708408829200482914745825036907005002287659416503320241840846451705052910673943390249370844589255400319507290264110378144222426630012293640419084009337972874714593069007300772613642647964895174143769839763436399219119062828452047136394008793842367196892336604781459390988446938468495597353976526062091069461180532798921730905667748048254705281907635525967962490311784386382207213868181085716377501900763914707883260770670487166686760892224253135112336491739814257171349800824180234475972142979375466780530770090230236941791937531929779223136642854836337584408367798356568525328680833996241198914709515473236702599026366267339336077644990152235401885872542117306681733202543486287840057090995170267140965272844749382837964396640493871249213790365756958090279706022037367823759831980720239898859054007121534144178495150614762761359197472333284797765524966689995108460525928072781759222538728084885370836140180887635580254611137776025018621078763247589853527704612833075259475757847875248838165855511115241415829189981879521646901780796942003035079429695028619452879722161020389567151248326160326824922814793245177593727509340320624328011665387655323784756213280592342634750122685685126023195706346602605796753458397823145932191279859604556222958915433767717936550261093183297815573529398983857687411592426301480348642627758547669026109772507238222522846065734739928840497787860361927603368560319335260363432745429133486779981345437659599454873118324145579144675796704009514405007122531275366916228022224691270517841121973143227504377673818565580393580761636907995950709299747217879528408852972696230019390624146100882825950737392990658579300752877173913598406969798828457343921993094768048456771256718563790353142251273339347357656278712682990682200183522654297153311995379325648784086987703287630128779062779586059675261386232097365829302714779056386576371264619483823103034136161787780686841612616873915230669938427609963381047186863529399434492665505188752333239203224868258222473069523586053355220167146479499787071518929280802314299009970350260099716820352299795042497502491005555261281846298856915322002967967221793147033512343226249949919980825375409249411030842048856338047224185573829733980576939173944358298205014752258267587815313285339030717689720650611655596129922299517300327162646827683132023034836984854634575427262716597689068771010540671158482814097103231045362685422675024946363139176032939145334280765756084703912812096350104647514790937808806234903585739871649613115193164416274329923100484009973451315488747460235343157027559865464199303819832401028271215294439368419266330677636880193269921767864929746325987162762168285025671388175753284978544188675526170777345839856904958949004158392817915932896922563499425547011585227884911325916078262513938092356001211569831274649467394575763551676988052418137112684758701011981370480842781658289212500787873569097293520989515576157009813918182518199513901033883238699752354053023698533990292721020848894805696726727295609789567689590942430241826041487493622685261094606745312270575295149254962698097153091979365249783126095208706506274984102484051746220260779182726906223952862108253935770091747926291090730599295675947014032019177813155944574661244931975827385145339975139778733600613417550942970848530800229030496597417346481063057708765630187727132032135338706250504797321065239021377091915655497699001229421979690618707673703049866863420013527165541617185770784813055807137311413427466309288899505851059331168780120738633741669045104309037352573563733781369774428149544593351510245055983335668881361080094067820539666300278983171083998152365458614228019966390616554906782345069154629010654254133512402981881656165512575663293929413845317412517620745054663845369368287621226065125616872840720482475689387071757368012658791569219761800459985886145036238399699646524321376233517488223943276169003397932015961315996025638666876878905787232605938824444443015119215524496484480258742346551186339797175773904026619796905076708650462203095458859039256709097425464403634616125086042528223737515269426477621637568409108752329182214320751964690793614554642812370341491450849203767835637474489277117962663498616529621415908457229855584537768111039913625348105736820970476717703216975939577091924183466989570097168322205967790747170413287847361078280680924165136674093583288802157716286875779660398902853504853105271163920565305170794908234989777984636941189775443681396382464385877329089896598218487403437235305555673060996520585319686973119595997472098044010415514690779855069524334450062022780779461951349999386317265242957353088717156960979043215380031477335821968816958014107306942690443550733698776868608888737037113873908477002983188149407680952489996150019487901863723759253425040168321665996044825282535547882816413664004346363368176346846958822200545157652604566830814638906915839333952752152074079630352394954121228821618737908271724559083368416245893786763275483474457899743211361217367151023189871356933845936538712697641978114476130897756615432070323611095983849085931357811304151374385689055076067354497276836623651792797300050204497723162146605555172499805960681816277062345934140847647020807183396212604751096207540184754517480713423300788618923080478066527577889285930707989002292751464934912515960001657364133262708636917720931205699996355069863153404898211628728354917635765258238860375283729254747045216987760318827277334847435732421921215536648464294557628014632416297575277497680382690989106610656087002939151362534031195549041982456968018528519196242648560215252438375465249182758670339047103518911425514767288487959627845041994025171372479668387042424086579215632558708210257256811003901871336374694582977895996687179849703845254866093146144297070945284708007582292067001453883369610576057716333323111968128168004235310432175120308721283786601037255499290952928478572261893748108276507422565704715491696938448470798718397114752821308800995902422781662312828289320936042479132053602509777153722894249409211706741938053615187523416848299870630339488984903434517087673841753878716973720783932916144279037143256815870944267577518992110419997593628832941917355204907826315136797051016645976808553020430998741827252276343524055995035911666725987716729288873943940408815466758266283528060525932061458565663375311864713448653918349437205710817023502298075361658599294302637398181699175237870226344186588331443382256093165604555271927617090035096865792948707549379418696895267004418875186258414789762020702881148730051193978810780928327556303732606084136355090671097023660770911244508301725551556481056693125863203012950796851566963110201334601342968144024225592372077520514840182666826919905325096998184909235138361439914931960250514580803573932885939173606740587295544198969594626669129819985070279702758702455596997840690960702726734046699790371596044821409675511595328418900504956802214247794388611659631205667684000336907275458019583341646274933414857728613412032670568936252373605965957088985557692124959724847031462419450015011053957674353178911728832612040651699948709250032626506807206631756819444038657085346608367995118506387136384372621370362024548102297846553374549014077584088060641472088243200272835208423230301682118852882293541369238771054600914467160993359956102076692721693519674980490685770916910078219079617892714798240579173792253853443912288354794221986993533258445185454842144458138034862485475879601199149435698289396784912578635017914781856210061371152028270870337333057836502006990612216560042521328171215840654626509802976570640876547019476285693004899755976224319101482331535524031736783867842932797191640612433490460815132520413475842955736210353019767826955800098174408534879013358446952823452829908329561756210502484820471463178809381591839686903723950748375945384665188085551492946379543773173302571667584047692059207051158875672076054631244131385052253752137308442446598656291959772448770651060016156853394717638176929076548817645175449580451869835494305393148993099639181205745793683272227570659828535637793189158084044710500556949488839941202430811794747504812833242567582153439988788963741546538268944264088571821584774050646424129048095305316634224805580128585097713446767511835990233752432009369923700982089298062265956923530639998859598207421671000840441838124419605624809317065503074937484329402822513111432036063733223327255655315000750160225421392475880487220038633379394494993841216060456059815644632529612611110916102279385454788628847038433269418668536154440617739204361358373040286615879742971771805067528801811574581631773279798567295462272908425740536392550551279720852425419186568105000883605627908134499928798092484676291840718641215556510011967018208876062855390666614556777470025789718272454720897726483097819953214619417570589305029722170388519724509005643571472896540309052287939240314755346799398191649190683778463106869137915664625638826290332083957849039681556201599969554204437813638488142969018714151872609116244685064439219904031619904299014625787826629244006884009935698419145229159316028786330683406509396207713374068819195620235655167624416841363735689109410472853812030873125962055186800077761082989320299336902587007048203200554934817281427916199904636184136519788657926565729636420189544773330480757776330788550553356418115610897684443092266917318888877291136473781087516064621912607794971007279259116273768440126115038018443699206782467771949572182372064711872570636981296856311727703175098637519557011847500206661706156117389480306359433352042941190650600185457587495897501746855661448478295156920409278262743350837642513825900100017447032916536587313203311385293722013956991354882682388387522403888855627782132151603930550066672069866113796271042696881715370227666641623379144186952787400848879671889989613294870978513127124368076690749811950845382481490044114576939313412102302914142612780748636640838681991461887141827382174109281002711203528402603192885657526430233752916802498474558469169715342789415580009130320709415530957936926545829142953472878451993531915641626974581252348410918302015352865122235630283896363938623417207937962651537451226976961986362873508643098750899237300645241614896169981779625607529551895854257537304925019361615039775815732111436363920948928488814180211350722508699027343449360915838420869173120481538958831760876818030075986790838682949426047401673675474095052673058414746205557504793502224352317980515998002958574654107768102815612663908688339363021394019492443347851173838912976466741477553029669624609064437989413127124543134373416668825879820591632922556374121713544730095204478727987617321781855150672414331428862321692716366003821527218971807228632661815784183812474352450258377375961287762500365209038907904252383727271830259529761712771803134002420976618014908111621636175398549852065320593173039298358587830078985719417462874218896294554680954658640074398616963485939564013309231202764349538300021534746749352589467108926893488741794033637273678791750512663076416567170956717167137671061510668679068846519698902154075881100803612710301705730101283971001367647577681416998989181671552447142550704678110454812025986748936353060755246253008792232393721622682517476252871000827025913107275086192996309742784930158945405241031525587498275049295100841780450471860502342661976908755702024707141782624713466500915386294005686981491443394726113893756250488076638237936372859435599514914696648090813005236475444662228259259637517148465725696968746403312958076803487265491220727950548689287455224408891348107551812403393119324408105160468177060965038169589957042834313055213349153386712263919967832827890766319483031759695158008777680780034933360099068219595437659030348639247628544576449768319743665898451893336168705285119895921412575418356142728836078121114098630986501608727360222595490042034264116822029592487980115290171474034052840446490888784387537662139475455485736604423576939085839364360017401612639193859155172766446471042126467358493415037779414717092056065979347311459725878868913971675728044736315829147590834714652623436562045352191598163806458980408644713577390109778536031527674815048912392001886656052151055032922932043346337569189423925492375011019357159555721784816990657077816917398180768678073650418895950027151900641488655585295020538987310686497856699785606119518918417825534423279333189238640706908621468881239638397543713882618157031066594413270028075929594741243652800481996813320400731990010163291168497797346047072854073614423997223683626212620993024289503838950104210916756400768540891362698307534284069385654544971712971476461943293786088962385424507515603298884381714721220532181154482692432733148683800533033219204168442413723282293076033678728000687175411629158633227433548245687907942278738842766011531708589364780946023936969112717639994123092221263409926069795659761444849451844332102683579892914400175723222305214940970477923082176489398189263416832322362869722996226553486813235367111041323836637750588492612330037530131801866536422393401606585418036876989488235411663281284034039622054196609521402301290851031303003789626470982883900142919286759074145150415750052822059562387741353147029104036819855813296977114220900087290116675949482106273593057004744552318558386254957074599874222620940952326530414866544046439228909543648236662549181967552681952387595741210678683538432359011381789553745541820889123853187560715819803707467939829575927520846622834204640031773038882509896278589565027773067878423021630354854067103914044348196441355886791824287126252912077946149102721564090145577963871562127021836282037829052384080978436113504474180084123170779325061163435337583456130792017209185565889894516786397571358702202598131611195772840452123996171903231934874130827793254388734599246233429801621687371214922324774257695991689789606719380144757679364205618717076271757291328506069974754944683197994688091237954312273087478799549620638704026653211874887243783075830835162284676937684528312443174388654367754838876984419867721976313600886404707177901815779533863304480700804285870986789181632867256893946159906893566742900642077277278189923069871515149106306679617818687375015939213537802038375816949844845180711875677685955163248173668472607901271183264259067688032426749270394502215077286367407745456434081304983023771279809724960067026575863720620914068148827616835735973399359489580900556966314548852844314521034460700700855539076672229387763823677481659343209637789628866999989809463507380941467447241145454834600270014893092558511171433391683248998595518033264878853824542597571848717600751677805953420753089259037797196733083756293236691263767378988494627464738527721811186062164863417623591987053867105771898644145372587583871370857074317443327783878299864099679892093916766505462417153659495776294159554326432438794262348685582089607398090262782709824655848238514060005298418833365795381497222350304666968864606920465352238709369399250784100566618353698316436068883455795863665071853844533552288010448586108802859252880297209174491772805039998180727554772582571964438044949470625513378105822062604494737230706071707783535281158701214259873435462449155701108701991930355231944852654644060916366519743128985861593593010481898397118181519363891610357047817424542227548408752979311403359016789034020825284487051554782638654406336173136854044287368393366148754080043528490842024548113871259926728433887097834836860723236741337129206985768141037784493396854284431379786093972472839226521160724170439859270812330695943507739121351235762438064145332963396590718692610045735965963598083850718944830362072119159707874946610427998774211773868575020025122452011413333406923938996261663008393552196636757979630822997334748200048042611804934148429935350251070909804080184495812840329872972276155408180826607112213286208851673070605004049915422189192073506314388312125948007464359522509624232716031739821711416276670563992210563280463928551695315339577396454002247404914922436145986182345295774180923373087691558845684643880299111991767944974612818869050085849762493271828918334484577717483129935974568351454476551409373641692658487460258132484862761597941034573040007654762952946279968984715944829269363290866649666131365696082720234817285533931622176855357877808611230785547448506370421307973308379622624421963596985150775688048547807111399026706183659059772149149112468710348590304495264484600546892312312282551721608978734347670939083884346179669913206036299369935075925902404101106297213064517963093200596280373124494923757962801202662849161437441674814850203844177194748498369400912483371814901617837879196569799422399563736751999228504049536363694465545823488384899999286202543040781977362737632031134540505926540959614541691962737798951209916101061831566218892228681069605370486957514847581440544325192498703293858697568732759164938843073581175779250381176368867090355654246929038346308018649533432511900846970952989439971703589411489379732265663120485036546201737443835490474812736212042906714821941223072589551223339845264117990666636691296702643647772653468633421728665330268030150521081088832362350228196263475053796798182518953448168456553110062003718469193421966698395888072335759618841450543931303155939373269587318346724637623296205177131374487102359454724022094979219415520808771845654339196789788188729142325840048711345506086588501486983802237440580519580637585845207067933665276604174904815196303252282380197600619482413110343525330727567823237688906458134243153633618646055171655838865644007382714671355906224056194395101929339482866177678148477129122869210973645160910088018759217438320328610891178854907116087995554885830947428351464848468019801312040081316407108877846877726698929984528989752445248097037487216676496191332487787425730926377384297970260482424424371100163112031195316560717170579304622922532434645665999385492057203604755815979306929015911754927724497286635752267469056368694909795191151573557421208341280520909204225870788402604881198031715373615203387489150517961029078143809214394803054762579065017140095937551254976827826976106275585717223196256353323123585441582509257182961014221199287380780318267917581068694203998777388733427437729240750455464539177321471640760088613414851792850599720677828885626532579575164607716534511568135199593738498275849242580650668887880827851605383429736083437602602529553953559227986668941675909540974729744431770007527022846444452184223906172118395464196718938503612616305430284088217840533190992104380818827972900134740041905524208747880813375953959890318769887922205487242178472311533518470300393510061316832078227202143483754554155331580042724567838484448580022036787131725636766921864115066237892398616834334418355938911822715868875608047245046376863409646029652675430341302171198838795605877919231315180072255784486723565878009498193970622211261470570406879013885429344990134585294402974046205136305816876890874636684052838240165869890226213897766906508653828860358320218784854397646057908316162217845508683055310359579177720568786416160824021775076212250234779290415765130476129676117248412258766226139891477912661601770999813375982160855876487535870692607702247330132926070940171641405554974426383316832398464959947201101879144258685972097748503170740046467907884384898675627314485462466502953140926154385351074566009297559852416448929319415338884910213020770519020219572789127775713852274499349473523061165489810602227315347524943372345190568910587076228023087391291553517456415906924065306493181658401975503709194933695706607230908766534428236182354797811477472247095991721874970155248244286097581135781996311298639887061936502032772356323880281493335061669173085811542434218418364467553078471212105638630981378919187347663884720945933115059089968986897113338428643502106852822244603594303924257689992659457505051237290900158687759713562506059698848837261431230521058449277477943396976420395865921925021097850040115361021742309374441500099587091150572911585868217148823496203789029735205281311378661709053583947286112224335216917939285479479646809150796496361775951371016971532210959611663514196115599858681734399174157745313095811709826363379030926018149767556223039190820330442564156893045113434665867707457673291276129023205046553674249086570836372906717471385738071568782398226875109952994940643553307934687618990283080105981521460197946022067224743855593423894808276115931116713373054450387315801095500468257413735646812479938593697410676383125702284728931818534955056011732737851879908365378793197600924431428553188659888399115252299055166117584687733767013672349492107643536979757517395141641872335240850249554509134070162222656076820271100615311339113973494028077696036224388654818111439132480572875206722777734149143715943601878061795340104834066335837890577029296562538596942681414358421957493057879725850359984012831855559032818533492519307087028581056531215062775871580545947666255515481607725604605054031600233417412670155995625693137634794573610525918299462318135708684407402307806005688518458865697952035145650350047237387043243094172590046208956060963348851147578475791309444553951832957946292449407287662014753812609491211199675919597160876870238955464342635955947337061203629519705533306403597776627073866178397379820217105037009000451647211703886548911620440860118613521847136900450878669436124715694643248147908640884057085106668214237634992259868526749043291176597112248711708434681970662530398454603735211900332545174051824575157838547185319336092839589728624336007482444524941971940328288386200401636018048590632245158455675012312462404744152802744487445445115608960097376153784761058202900724076996445361348027980737249226258640611914191961941599183661458975219753777844620448580964745579021621807509460449621403397821084777639104412218359258409610333492359642708677639651061844670502938234953512567156308772874684655955962555227625429115332520472803710512351007494957547672957623889871591192780754001921885377669034358537567998319058405609344510288189626001814755746295994186121998417174173192760009356211140635838887957320997229472607841239245484664751797634015624135773370812930984103559490676553027319222727893174743876437294405965957994039563149990815190060719033035837938120544793283925551047280218493697042861023197521717156985008193551853700753488958188050782377418451908359441392832263278730358565926965699209291259138072175568056820497626449103413263803272439459828628367405527650236547056831394802896319215634346438619407825219092099745486897658702092963792480067958102597250470086816730353194568158140607586448865579770889486990253472929471941146480451872775465683812789502255391331413842213543577067978940561264550765160421526336423735766806261642886822713633399043435284645332791605857443702514324270842579385064663546983534222316518433997791879209880695986467632511940671922595197335062444019804312636200143264457626225942766956219454934694876400457898432386878395013319137922124203700583451544499980370087566358694187227936102220718820428447368727615751326402406760668450342846728238874591386102441512559391660077849450405572137457056123520841572390110711260097475541690436376205143209944470582931993433576040975505086973600117742594506249402708409384036129234761523739832683402762748086821207479937323011980082255050925028973387715486020522018633448716946816752460871416109939291289957198231356062520799255694497864158616525146663860118111754402659880514372016039658313224468840536530511925841697511985185493116813860752920307507498961482427877547214307154238112260041692838951029319633276896915609319604361104666633621318877463785093360921826448153308655784299692198997102406975565910111107812359746798175036549984833077184981768233379211803510571485945665160955552198453853372015472675858139996417367755501964047434880173495981341446199806303837971785406892682084968700489379089231412833176170703678313741767161504202758736220619785183222150923813029740265993754303706693565008580284426460923958205873207524014893548683702047313572946590749926350462514691010839603574392422805335423712915633643946203464492571191911867416957868166488975563109645804763778774526314958344035824624648294979222324320069696330342345289967024005082954435222206983113536047589039196836207863492108523932306744277044714786809182363012390906827915357296653741152795098651728068739824154084839750291905567628429823530475651841718871250002534771627617304172543799241425415181063664804156304960705390329216858208138985854366127828150252397072435334088908858051560325033897009360625949431763118706084685770156524747085788629656167475647071563967826493652761205425712985646855192563745992724394441929218244116546519049381075339362272250329667478819464240306320382503734270981830791801647832530674518576649034155367512950579388454043262074537486230132884037260884484332007845686027402037387553796741847106947993312433622542693363748838403957367293671936412680334198440398244863907771295651958959460452492464508268900305714249942631973309408717128887661700737728982549218806067542094380432336629946362938520845212991053646244427365824515582674432407792296537842296912574886952056677948752337557831532084407308251482469118355694779581691230737127431598681671545995317758891664214177153140430082195830582235511612999427547906977008805989200512133873015179275116539958702634436720900660779986395222131426518060939208485574859911944776736201911632452305388428129311593983786891894736463801484998943962299660942826771508234716324686855537253751020556523897571955329521476095477540120575050516837003618514408836426638035707439154464385147640393798122726259385871995454702768868243315980810726922085578619626146619609445878044860096843717330612653644947274644097801655590170785612174347406694509163526568959420942752687284523060800669870300447458174842867221423079817551778523208407089920261618166680820102790845708158045699562259329588334574590981906172132223315965732338217554248525939043296944561845740814956347501359348910373461663423877870285792289447267840665699527178713590401512696196014187826099916014891416967938701634044651881194814049192441634196718549506770367953525630179811355799592783742295357290737283443977400181350053395211394111698850000646049872699427675214049963056714617046261306551345019281943741884909371190436862859022995014351869080822521148217253192700339789240098116647219421940837755135399025212175827621841900581392154332381963223313119043083817583582287223237259679272895569219870644208210087721250879986037037550536290053908979590159864285470608078933994568373578753482674582829373021226560433021551046186015535356195793110126348087510252024390181453830299753636888628795760913816581447613261525603352229163244179711788358237133664364282913994718247483239342642406355701942451881507783765328733835478931403400219928717998613348103701297565754924273098200665956353817225080225414710800600769748415594387692407889956517894153170433804835069450912854627566112294860238285810697370987585771218556624963800599426948296715538777719184214185089900563450842260710212097951173506403726626499069703945114583734749023154624904766205242739943109926437238578349113691167807996154893042821934665303221221953089886259125101657034106814561687373831589313277904737590304667014565517075571315218195068764441701076603539517416268414890901148179378010406833587139399286887772458312352251142317917806717585536329467013467890713499587256929325457055255733289040699641418326314439555981811354606983597811008892019254866936331917186654677198208905143272684353420517327951550575971919874897823196025266324672493710444806779228673721509178514180347257498862720747045827430606363352595827521969516914701173033413022169306905747942123365376569275344766076251670471588688577063364526356444304569373937892581580772494085191129434475087064394535698906048565174896426262294070621365652737697940566372324170563014375461314003227364776631404564396378698920414981919840937788637517560465895208612762423251498060163116627466495364127993680311280700474777616884310727644995867506533837679704271292729913760745234124821811510360812791899803617392415226694542346659330798514243853153731652908375300924192927301057947534788167740299324742264349225806124821932257051047017582040272172707550816092805869343447556665013117217235857838988318778007951256055448014239889018649381434863740242846372318331077235275252942464225498514228711226076605873339504054555516970711627311252654255351427471925992584028301596541066197756705791472063321399270662417560332444703323076480560776788227533628199162838272860886057997845978538190298080207105969835149547686679580348244703698311902827978023607809343695757196419130521487963175570074006418736466278167471924589394931715004353601504359233468491410785178057257740374566448952234790643546750128812172831111974523118249053514617001526700279738461895744603655432857014088174233849341497040417841222310538186000112430996061272137302467601103459220447806907764021829042691073295487441793850139700331509477480088643597091826715228265312047864558715563582654920642138952487525833553627178840330720233151123734190835249313158398385701410720664726373670191060827871500566576998045038282673460249137833262196321980619487339438005631989162408213181925558379295485375824462232338082585499701764643817988660278693034385066364751581664973082675207980316364720285843538199913238351237480150364124351544439099226107871369197458112160749762557259594721594935602672529986429976487198849850085784486930651723963432875601619430235168887138502785521522438469991104830575012336549722084743311754106893421439792376673416069145933011764082597983677416053473761408848562312583244886617207034815988771000069932544278838977940943466338089015733536460666468397327651878342139478569810931232962203285102274971976373841748518209122209998953606285160101059744497738999153446121889840837691925486191091562611049013388312157110461123805190589795130790708883305499943792048575702005401950414170401669962855203605830579141271394889309571671993788323967827413158223184521575774364584473938306113329128161226205844138430134782370759823379900386479864999510699222944074835438330636968138033073860908278027509225346361649161320571128943308813140214275563968254115802640995824608205719227023875732311933646964723848922323939186620162119413068813968853708804849083129957286002822704459749232161978112381332903545020611540046732109090092537306582115773179133284611619871303710824875010144640440141001144547567699237886059365241078650835513124678699393828072500704669937397238164796177116612631075690390794996387815916321778430268137686030086232285301962328024471760300036088404543518595872853638111065413823212678440681363685385930769771591979104127990729583832661062495552717609826505728588841596586151114352448710509826258275726396785269163548590851060005067034379832098010489238751737452989876729742357987643021065154784111610593572195023783082565096157028749144368602567731923835138960841378408049193063382393336316360274884189521350159649579352829700351914768360645199169524091749826989577349446121683737065973841739793287021794696064658681891703987504958315125986038399415160766370161852218369931386843724783573727005020224748759313521289220687509164935527633887097237777056647567599403578343512671542889638211826475960392632777865052099817914225309048230036189667449287080720653074089419335157980127452047375184135370381854306411419038512811718006270322458480949759747399545707775332911291594300314400559743952648575858669382343654001883869993968505677226750872496210151444600407916079351763955594237472852709394207537765930270332332838123678389419069188350655884853909141843322898452395612476569130697604546264944588274603265662865173167463106323634376970708265176344024939168948366979658901108500544711046401074746943435940591082416054737987620078542447151047284057987304832729650549746318391920587306341829761882227297773297637915049470510529208932880498914098387874682769332899762736904867044613691511306304082647575379013276127967943760779182566128344096685102076176179015469957285467130652803323772188137940184093129914960768513429549006511736838681327263988744135675450335968527893680883903261542610549736248258465832858867024382558064698380590421210776897486911384040745201861858103843388822552954213356827532372313153194518583466874169901193192803051389845408560878204932881523855602248047097988547741319572540828417511552318581937398129664564339590313869809253476083133390864833414393772137345126638869133965845638691489690231135947664415973567235380514642489849304999710749422419611578885441023062205378464089107547425211360373271564459971291414356673754246356507150558917662815574998227526827284215389977430241403632656860292181996361326087219464590961764835780957062488529892355764147554534502653117115346930422702882589361658904280081257511685113427361062129613683063987307459798807983846902010249909310021483357541172215113607914378078328256372385525283567234196766780964860428283337370302549654597775263970514617263113706365172288342025802309898530812385398734076412871804844667387650967429772235274026020803581463896726562670794966732328507451768389631306718195733936729593657521411101844694058769557180194652891204712724297994731068727863369942927447675734652530114620452969861221920313684025931216295371053977224451479438862184064037387714658362075370285490413062420799130908815730014167286589409666061257636756028956716231083259035151562887021551406555049640533050310595026668722565356552760920704134553551480683308538450999665793111942800199477329470073064073506804849588550265224052254602847585689057644788169844072954948546915899730307090282984859163927436815763473789343890763802074649810196956076320209014527390947322321525987450166894639602989374349850191310495916081240791384820972378388323800440602617402387357706215322127524461314997150089002104376499895968033950880415620278384488130020195339408570248289746744518740794540345534823726404860128314016700511217947474042649597476289392475279226169035310203500965577793112828432220565377335759749019387910422391611387740783437842801163266093450775062814084925514287217508256042029865794944797314683680063518764717933093530403259240039592401172105789488587483410086780849083339056687357960944266384884665816016198868439403798941209927774905962962390766750208446700795326834133097316007110046772810614737755563375145846866235692479888135373926706166177133237584731776619770815653207780227303986714525543426837243149499862875553028272428626994419296148200463337781656523266096042427104301763300424052210181576528184693186954109483871118694660823193854941040407830424498403994790219109593595556420691762274937283996325486620959024299186297626743193361076922291295768961571341883026790110784387521997254412739349550549652724478076929603978132074354688585304276372435922200357005596101178450408039759342841182828039335055237433043068209813819546934077255337885295339613348058687473906815023179032641227986964639706917932759306732546592901756766197397985707138898159086389028242597584375600159884560104929449533428959222677271982270183822493876016158946470824524339618432924635355081735633723377476963493163518745750802176064036778015840409850604837013697819852837821280766576125364630787592663863540414000805810289376228313240495946086054308844289450588318377711545057960245285767607007685743997588182031432454896384760154935440791925833341645543990344253820973282903790282275525502234851278753376702453860380797167696443616182464872769923365665556585281349447545827878917667390787330739009878044681564303469350792957487290421700859359655041158121815888119914570923814709623082954313876355878579356901770963389822310264131164989511761280930674056031815423230510804505261310596108195841066441156845413368772748353242106369935711264926917413152236710193768377947650490321071828941060330851965579681527409482238592237951376941911317872720538259170388061984801197922831167112058598962476421419406968870291319264595698933899828369243161636687207215653710379906083421851272604228260581920583480369268497560558581877916033611287726682804720829976234333793916096891630308723765752413571786755955721535913589876132282257088021720921238509285425206850673311165146563768094999551498080569685091691372957848049700719129522707369674679033248707798287324527882075001980509360737361177147070532576211585667960543409206630271224870694968668164355070157512616461533406824344786030546382385661821408638734942061849915824171277784683411820139887619608830083367086143362929538637382747092733530839208786238822832755626934774382709571472080641268762989595809973102972705551810941607971433747795407960464183671343739750133254213656583510108946390719675448074022348504340112745131444391148168800921782923325141447585059789915844785085376764557145617935797545537492836768946517536560910449348562493968247916862131920245503543614347540717611321789480361236730541857164373095434964396292933736908646217138289161493115581686155190570415248511121104694597391469477319233442426677095483033489299052567120363161906802495163991275392348969339147767914073942976327374870010662198224716357306756810385912532300279292822404702619531275983983864801907103843740166971779515098089070722847293909149134502200316610397883412677976981198532923893567482623867595966489177476691609811272016494242105824694915300509070236101518048969791555076208408562380543641730806082538270846746053913297971133381920446575045571236343700039734094268956642011810392423798699497423242747099749655216057508158072698799785904706218720000487523185993277507532228911063836855979656695685321415557198210941048530208190202308812900568990533459343521953501794081634596947246399918732377099358741427928512756509606056539862432491969001693452922885355753952592347080482549979470271872854982642171785143067275598648751897756505671741224270845309996936420448587783897713888016977139320931744048896257775011251501837307397866556461557093419062940407334523686085187039024878710336713182562286993346360815472572725515442953179824504685226292303427630909056056380840966188832885797366589837954729344264761958287914796478735290897980383867995979714398184335195320778343395064492838595845635963992920772015656721940209813019388404508807648168391013297953068217820657459155349713330383828489876764270338578055989254625306953892317754884758687303513836914820437430590835565421386188976208893412508768521777999850335138264031885082225393711427510150422233174462125281499414616387793346196661295978085727232372112164685703059668437908056858182653415394607031825298867917701412203480890641629269035150592398608513937495338101700585352342843440608364552097072093452059384613365196947871188836349496455997961453549908313887781021420227439076633226971073285798017541321917100182293169906173540020834980577379128604166612145897829117946402319572296198651113323323102800442913747146215916868440893602937560498686472696228806490032321005041639682100076948652677912580811768188406100420244515948421248738624510274727024620254629240013709240912686534125195366738116436361493187332287707273424825740289366627656705024758369785487927708220465793338833357949334368533735821175973519392197664793781580194337225398547815452640118875422643932711550232220132840477317213833043774608253941391731837240733035290634099502170706021115341205015344088899865743720861403799725817511396005792831620825677242189185181475504971993573251243576123968745522799410038091537711696243765758331633693382576875799906069507848095312207175536292896527802120164845552343948709444405855639321707798136852306415024578350019427049478372658305225065773822219811944700497465391118684927903587154929255295639403389459858477422715356404761263686318037448037969589325142335718225726131595197130481367167841245514210084587732699843362601593312232880430229201133053235622236568449682762821797589304119179833637585303835593152717541657400421175585942462167364709227925504652791295306375957947761181408271482754906607603077496548752811094878463146039470126027410860066758782151355378205454742416420807824845264282194716340335141771696642912788689298826732294316236731271218224716875121354623112585834084225223793136715233191034015647207375401566211397133792373467075033197946871331033847255935064995691529451724544882497588863829560263204354204729528299821379675528714178217109967421833385853284378643463945950563460055135910064070518291318201367219136842434068921890595943174611897182333471377282819685499758279280076188565164676996072733657386971386676511525983882103398492320067190814470186351473693039909524793864733739994923111809757198818877328903714544136844108352248699813007861926182078509400440946193656518643029711406461130844902337095225599246171413366727729710618876244820409238037459942807099459122112701334611467451840368153454915370361407730716062197474490499408431128185150615231137111648582547810144282635589625285755437163652096522104897275516901590362213572599132850844445431377012957776484476860086662632534475440594676316493433231376909875017308408470066691394391330988609732965807408245077912324518239873428374527062696195978792028817950395316988556957989921811052471055800414149445249045532352437023298842462429967286900687601603701947233302614611343815354458380116233732643162425642358101749485213026713180438707958027439418897079062594489008745539117984680245430546883374555695419789248256940075285241615816472993435286252743087603707569945435332545077620723470387420782594245607354393358353537541465348169368507858927343176954708104032770573805964129301637021045112541469603883671433337481777439536265176915868336073587083294612713948102350169315299070636976398421789957469614106833716924866959195799714697408813634178693658407845255054194425452474257339588493745769595529433420511091739980986940156468045692640874269792928609059745284655900657352316881431178788007863599118614935889622699226492975827910366865979442402200927201611120821281113416607612977252305428726603046467085331772498456938320177939363623579377851454850259374272454039360501800974493336463825572499484114930504995505351521853373954594295895462277721176382109144192131015850252652248028923530432944634124527950876055258656413744182934492942658938211089600326646124367012552092357384587582089745366744035270259020963877912062451311164539936370366077133149489415883516366494167405325116121764441097629606134972004806778740864400507606677429925856499904559806359304125822986514150275515186438472945185378069679634126029735773050207214637528003663179882215493078675486317503576402855111507888790987587147566998764069463936359052308665475190441828706452362951473288992412103395044558369613288812383675145765347818706067173425173323700081493266232216199088645102871488915953069340009690342238075419813547478711077034665954313733764385491383519746142359686825124620980525184670873465064555137149685689327379861562848484920266672355647687125531445710408592297216112548618914666780132454818275833292573457274453931014000385361480159735448320012933764107735896817921295075871899652066879102538974324423573378079800765243648107902915788117575883198244092075615417974462674977725404369557901087046036169945542832699939592876805262608443346339932020674639404551336717686927367277443105745689037027354192701811102530249019388992715923500101042310466310917162817004365555234663897528505842518439230763231376120055635646031979075827108761426623702298399181733116875286126101826141051094108772473539601689799905576586436448398668932019162473290454958721503383834328895523421047644698275148529468090588963663762973959614007641462813510035213866917281811802050831108286886127500519400542112316959429115390221061022589690445556072380665956603089086611221580424924101417982202976509765327039402016241890200590256430023892929940011581943891236378728846801109596518531192370875940554160100380382136275573926136716018166310794677035009578001327905906420401549548624089338652083516119022345394593792135838462662314573127937057214334319157259085393363583321826002783601402551624658328504011936789850740193807826725619816980531824555246137485827127996559741208940730398777717472536178765083365420166008927489730806669312368697513424919513972159096424510629012083521912346319666669885142701366757123985859336167521076972477857280726282056061509302732834273553026663130128136528517107759630241927545311862609034290520521483526399699352560582165487179383627379404100962759336426157507148585633952704411215715604220148378374341750730126385152660096253223027079567281475120737849839433554915526741567857406535845903351831816082614540317611094165120357767607144768497119438037020633294054645583212857885936893040759324876713596745994062665468230708900857593805261193757532499649381952780317266339553082738124552781598175906005187954485969555423254678075695583835243346944566674410191829024523043878138949144663014823135061000037987791056925776652420347545529190654138030211211503313613784998178527044398508075930701044751531523110612631014538207173932439823349909250575410854341278343982722382167578504393797380291485903556345586818957729820724525951426783497318882775405075024297932011025708767084564865521723459262369906715815110824996974508761926764347953995130135236800253972821964853702638487175814393157321640262921879781181551050827278713436377442032709410198651542251933933517402862470284745790503134996588467549719636586865989564538295167460622451938779992032470079384580623856980725113499243183827289738425355863304796443916395529818723184487112255316072213201543738190536594706507895064634997976417253570489923311467304831057154931661200672999205020730719129359600035544336566149373152690646586149020925665751330438817479363131740845911990134619088299837137844882406210736717814242048158330560157031102750591937679598164944393569992070786121870856710026329251068163826156662690791685576719780263515744395375590323356549111987836120680918062582655314091167386566824598050270771963897497304012359621776865878137142661458859616517987357054811869138658660623093502729781010435770675053471192277184682711855335231238177809128335996302459357418602765124840888523919333748986394512765541840054872722338644802990786664722633774896820506956305961758864315302420698101170553255910679777813001385719093192957222239128863471691309077517000325764835265859536188797597244730089769924425819845740901981274559822648402304029126532457061272193730520067965632124441016299358574006832948569256899866650833798471226921277105323404318493560396055300287824145097804715064548477400256066103195843188990651895048890716836531480575753385477496101002604264729392059375701807810171881052959651092418580803154786750520748999241584809548167896896128407825871381309481228901377250654536212411190954578891730539717339011428298487539107316619079494111617855024766576370235911031746171962847054121000638437745435308586587466604172548357262731050081414654447185202773904302585642820538926839443578226205068785900492183522307616802822525882430245493290042498391740756401779577876496278316482046650052382585450729283599189124191753344756545097819833097956063405268708421381600973348135019119405609244057337868527096455781117624045458908888753498208844978370319883255882300212183377648638078390524104481583866568430000468195199317508711928380995516720950622458855825336045936308054515105399423378087267240173319673270889676401227258125459535075072174025118901642240359745121869201819960307912255925796984002730788309982640262731744548063581935428259272685086947144618199048132073631270857233323160813750802585947995165375495337138644147012664207529334237882434725715696998592080747901104004728680486353898708137825278706034934611120783079028745004325501610419646775767400962194804534780127957972521713522406753944363048631744456940254346627052883259727608801028909412351512409396412891214039447324445318428704925522483139959703487084293465992792781126632112204428245756175307787292937403766939614813233045720838463254597165746573894371100965253562595323858597894887739210443458992890617874659826747469334205147341711547429595601904119518806611011054525143364863106212078795591210133352777491543104707556090804697699739166765569078205484656142561833432872338781331549024550365333614514322629489528722258959833214521895291425055731390997559509951890863648407749495499429555128650149349230703302724161714625839402532201371089669761576385386502188938587855669484175736384833988327015565154899440885587948709429413083113959817302931035965541194354848751010185688796886930735608726045192069401372759487735331701683757698157064336179642580955040019912389567343601988001662004270757580282823885222960990772389559988662082237439917879073236769569951938958109500156844314016926913930553238497484328946049608239669704441504056869822959391900710361924576244944360176833790071152572650764863593847926108360508307311010734226935321959595162196424793740853051991774573160537779198044095882130075165760103094835023433456438413142019179493248905994802490647559476232812322293090464419671428829589940975094544776434668003926003193451814742415648666437467689610837310893942778610531009860901115401624361247591868191289728295975506740449358604070683229878999266003834126154275740110762380507539295146109812500954354999563532733692177960484177901281400074174761033491385378403760254867340789634018888949583541993997163674533878864157865254204931678197208733594851813116892030065379134196481926447436146307611885852911170329684939070483764624985248634759312811893694874212414706781458903137856256631741543005284721987581695816835309903322027696992468281918499774887609676786242030311282935368313715031021351481546994899678183435317259580489115108134278496729751152759410027468404916174330874722264369040365561094716419588427067093683606020446855234622763914087286937231355285518940906262953251512232293685011051706554924154183818689323310217931372316323540756010991271107741597451425538853019911761956815832715373682523459691707522888122489821767857792356751593402542837968626090338885567418162940926483185394419495193952256136763056590760658876789318166280148711795476721222079601047537550264267238617802492380104971647865814000282293335068218949403133305865934962419004006046599829405570078234337768547657022878360853289473020688155410052641438723162731613812263954992881752688085683489164568258960799703635403881712423186448928785599229518670125963702154249457478613815719530030030218362700391530743804901896250309262859702085318481714113220664904885999270703334394431966518025239431030505370598872682143970289114037708972316562714489023177197969272393986425004637926913602704355261666559359583990564493576594127996196296315524071721528726174465728639352151693694262978528823773188591995287497384155886582566871601880140162589018803116892210821196817908069045191519497785808789838127679045044955759592988430836404904522526367244569941474903745427282892801844979010100378456626049119876546190291367691912315745046065258981614192752852017945933692853823352432417329941375700177408716231831130154738348124190349414830206273089150129030954941035170424065742914140928728661662336624833109803526990194805290235333952971630507685443683831378420556981697405817569418277572058222520425748559752585941500842599092323584498597296917310882898870970079052672853343701383330119900143937050807488010784308228460948585000332552648160868413380457270202019703556085758086044329821608689861830191167173170667637262462270237433228064736124473423846888255313897999601184038208322038396793815264169724438958256886618590611291878187002158581680340565307765408548733036213572191329063370985153737233026981983495756232009294323614919077412958545751961668897399604066170028732855724932741319768947541309214975878859257814294169928544592794255724157406942930113906494956835350995868755191420771856493287283201295475589014618867719156711535973221982179874479329161380399975955737760045972617365340655048938002559702366996685310458800186446104722444169228477939639013973198700624100798192756166015098080356226191222333717830957375844367643834355097620212970906988585757578212719309603700387605562736146939861190940846889662767865527058839622111796662977580987190372000975950919737455683399907022532759934962687182446283349146181935380615024813519681934020608987563294475115058304614486285395247411878891329554041775869649297896436695618239157854813187225566491269661669523048189519265656520379715320616401858377846552989013837905002151381958194534532184455424878368420514223399795968378273942816380064884603068833338641079920605713597774420273628093757755793521818623509310364083202934889621027551699113141236009310737535211852137092016883113717566509655316083442493198211951665334409590802473983648072295471722290333420431657925197807949443204315976723242805486178977744211493285117410773440648831854548338053890168153932973930459475196702980716438346844638713719504842476645481264292778735409143155962095243959008629388594061602242974058880903202872287821450887590090850697606846260877838924662049744144709218561430525807773514864904304957812133736616766202455687984265907309806762576071910913562037146247080984216487681261438763735075980416113625655969181483126463595527515365588307688284520395834329063283741860161289349222731943009974761330270663014498835899692163032972868722819171065521473249968511788623287012904864100481325743370514313353519421358801930680841347187959744691467881613409059478036274762830616226063621922566516705184895384367055403686045537527944497548081481700677610431368256574359541925319491984231271730175911345062226189123127576008615051618396302568983381545174742017259998194556185131238588110959152309398220816451631656239176683325304890333985259778341003104493484969387779744227244498431097642635103319213918858432020766700383664272890631665429964512336330944899887957153192381653152286472855095890713705058284071192777723123014380443043110738536001743177897446921673896108845830685049736144752645781990213443030962188135728943837597656169226748746400780460133959905780631898602115510068748039449267595727274439333851987643872762747262373026141003293691149444845705106859517359689422517999572150511440371197328564558809309483311507489036595104193102937638272337653034315457264641253521269671997208200630813006898725192186519289635184895005342218628577496268236839238611304034458916163074728649955261294587095214729696734134775407324401215938514783794183566501493166648120072778767406739461788127488957405177254184546113242893602572580702165448208117453192391115184931472114017816999091364527923822325059519238474134499523046835884442418123662562975368009153282727270836024968440075926751773552080651839975718373812576128573193153199349705459147447723517269635640055710183716972262504261357960340219754169643234330249139054751896676803720649610529668261195286101257998467504172271786682579850196667426107107789419788781296317426379753036950086055108524055300941288220479353860107952575050720674259132937942347005105876094807155278266150114778665888178795362079078945591249386083007365793666561567329045621874735711369501556495281818628615846652148059525001140281932375945375298019223119294156102386102252214485436428782618228661019220997219482854716755280912202554262391505634054557478766595659868928684453886252460044515251743420988817053287959326992787152511516929486732401733878603394218248688046484778369701447257446567925551191828533389346393483440370439075049371758283407669083358911080296607555493765318806926862575945623653306240886705408883103898140758097982108824581199595420824057535795355557484516895236816892992236360557521892134774399950800373292495217273465027760623374235710057116500418298954532448515149938999511344948911330824076951550535973073482095869934204768336819420213841166243509316109881646940562026559795870382186123410200375038168607219514009020669016727738267210511426813414090876631896989614426697490373913936630444593247771817182319940550970003369406405958548926803914183983226340765787294423578549644179486807672694128626590410409358208497430618738132813400158238098716683489034571249993585131653183503912718919856011721950571809290882907726876721648374088795134021188289071489705064196118446926728884345965046421327761116149358586700794511099103671051785496998165455956308152619945221882638266547514663264958072259007419803637111515155360670554809068119159914453729209912547824664284419648849158980439866628684129893764075182304951357270383966579673261098573870751137095435257392826026289140387173137468184703143446612274554592581911798487955745625622242036383205311107110096010317811714508240138882644154434158579198379446544388314181621988387014499620483123043607023046489913019045167154003462016066483651162377317131538523975804632270994566409144860436763792967553717993995911974148719408386192892760516112678212081907340834250470019707680439242248912121333996244124535703538667441402303117278601667034141037306508766668785891392462150528282177163026407706691497142323184879682414796638393826157208068925101614163721899951415638476641008700358011304562843571475515059369378816018763975097584269903227731049574557338305054130113921347473830599594375777927325361293655835330980235583649217356943607114857616335638269421435571227682678047032580729266230916038282458567975110237635276433520476554771716450261955219718668119563535624612906322741367372423272218791807579559275427791519153209480339474848074905529126123971863926928053494903727923190651048504615346256477877977550291005273503692274273376094637764262138094431429183781654613943011204453786731514680912427944777007172667399804426541953676459369401615139575261755038373620511874230486571045329488402775175362609898657863698358696434933220914634961961496464664575954007116846846305563428801866442115062783850089742938141330276134575396898666134728297322045328368273319347455264659825042975355758579287254723694967252454889423751893951016375863289315834009865839056199035254634203371027917568667849290979350617237867133299979840683441467470446180996045933175681370055580572428828719747779917945239545225002422182198667274277605552193848854645646286630955542693579546112863212559431127934311105478080651751121317817306087948755278562624103290512622171314267631171065201320920047137562916634433710362756775858374637491477724586457603753143501523357294527773760289346216076420882777312724803828786739095223721122552963482048838307972476887155263192862867293718515195462273258127623953795891429020376470750977425354532648221809330650102866917879188975350812093114106110624399774760017646827431176830359583431563468229705102180516727890246672723156738214708516997529256570167145232050611382730593528727705258205191546363008087783880921273025134241459551866087337778234063494952059632250036907219704775158246865359526347036929453446284916814995331302140690022071799730002843096557821507167696808652733305074005551183826833565907493592132104111526701089481738176442423662375715017386726530428471399990206774518691129723721378716224392472606311164280912908073407567241614081459394401083322069215697279874303514190465338781699770672002621781372633013997401378570518286134956044541673045668947204103772692749723047343960128555026660915763273971196483482920532187020586564613660239820040533843335849075224665414931273221823016295851026864477332645608446098442931406047841831638764247596762047122375090978753649113951400628110336216832281568341146531079558665077108039690107921106806867291336492783535412547958429920943432722717024241829133649799227593567732938604213358774174739009436925000916043744130699177123550632600992165440992654977859827170976332210790111356698993319334509867557313460982523823245692900462975135834094561915435980128400330720456523668314780917928399230523562713820027522097489573465211391656413218787161118599481326719003308152186950006248073881149625578791889462329787857753646742974586995024721807793782993731590781024783043591565955564726903324971075076475284295824190778735561405132216711992994204274176740129411624266303274211450194434526672901643366083864606796948290168933097919419991250298561583343285184419395346947141389962695050716823601634428494368838989597954971893578111047891990490166562061828538796986231474551174787367260763129485211415711447086737857742131100435154904606496146321471578520998587152035706278961694689654935440097881327839091970627760955924043732577038931933333810809259121942098396944906304862319276662002710753741801133587252007469458238311995512953297618992603636286045554131925980226833214517865716054987089568793415841184613572803622270731940509994865501204509999605493089573617573213482682938175791507247187097931418940442068266224700858819538461268013874417618382396439959595884583452426982346284620945726569044452302137015956034382228937939648255512078254567120725399430577596054972970465084302798387161172399804844940205012781370751321998503682126978765767595095599911260939014520731108177323997949250974711946976530530218146026699475184077699841523806294961158265224097554366690382933025181656325541889092039867754189435218313317953214262025795640056346959538397628231709208502977550682398930596226104005392276985779869490458434562008488305100945115155201966300276245799021676325271991960052385168841622487512497815992719998847979143286125073831449064644026581409095641243299261253952238365772594368258175105245853266313974669008287518101012142909105328763341073838420544622688036298851143447485046033510017078491964482672711129873698149049418654655498704982668799808109976236252025348125838368257207391934071651210594372911434733585280930171664938734688274791977922130133821931385908959269368070873252550897206642915941458162808785714690939031729249277761970968938595191415133116543729903239072887715818665186044019518232887777970896831258079041679341790668991586988585256667947241510826538101602052095244112786766202167785109473856079018304399811577165911469697266162923067765199014645566379825524059129076140534369980872923036407917187587214049686949165963650753123595139563189384389696906334445838194576498292940067114465858759050004350270110152102425194950717973081821734891698235828121275470877368835418021231320060669717389353407200371081357810179058176152326424321659948117615959786032357326766951589489045006268977106491343988766561931365544504444310403810461599894352925152384344459102131303731238665582570784102970970734302453843304262498481887912164928478356232924368758859877190985035196750000770159790782472258418922500664514134654246850609029490670974145356276665613334190151034646626292017846104595530561922044437281656029746884397919963985371625984251998780900273493738014645576092197647731896060826946073949263538862971157713529147844643755194920463716863935492325020588724379227038245930440597208066986784207422547080733874547711070723466418538682894737494767662237467686467117241156494274577523288027860542565712320663867556159978430821698163162645183428527611476330932090272902050018320356878764930674910266565197871298596887136258652620889776402637179657452993686224643534969627818067669218383604534853400764340502974771594469480789530522533326289496542890719991105972331803899711838528575959313181978086136392568466930323115033201149277829381058911700429728891489639027636312365710302727496795588735402968941726981562123325897058899040411044155494572367000723131246386957636477725224396290175655273977836654533314915325036887703419601968249639184932370613182188753188100468280410412651722267171582753255090719626980109178003452799922442063132375422462948464011194093476931986770227231722638648237652205758796729712810679513042116044273330657955503332439136025340048913095679266980109427294501083731666818725104559560161650380361431423346892218088809885809804552810066245566195651331895497778174164442259651441708847911899034771775124288903534385132535652790216821035105232716542484631681890617446324146863699938541005805553348783424439010625738356568720349102571293553616658184899199471523252397788884491977659881415651294169759347009317360081485893925738200216295116741940513222889880257252876470878731504613112259299902397597371353624823456693936359752198072614111938031514641694501796103804888041325807911626279066669016939417572443809051135407128666704806676618279157887844006723284410025647576876141594950002875018147916363984908727020061522208480986336465236771436693045746711385955221396137012657074326425813280449326056240728402317615322202008367274344652727027674302265252479181995432492011726136486255520216476218160239130998026328053400233711243795937235223255446638526560099755975931071419652686908572788776890655873511974064993141242337687814171750961844669815585478073548618745117210174962999629545577193833840027302809148270188480855410555530956652912738611205535747116153285476687286202720303825611825684339776824344024734949732518683746012863900703381644331048884330124853929729764948162572861002863572920972200612049004687883953726948201944429522860567502006363594234714663743103392548995735809589934323569151461572244635900240461295180485822339449714731821233078830265363936209156476447624659288505997196635944116668317338036477894354049131000932963633087876277975498293963277850615542669138978964265280393889230669502396625444898901892750880163216665864157438195754073204452605385284952872509216861864915845254531013957528676407936067522241466555509660990068362365675542380277713097099654884322727455759941524744201431077166449492403110217191276228200065894487829679154120311904879929094823787037780537610668219606614657828148493900008672617513497527624428537132088424513015147813615884567001582964106245962234515632849511776962207844650009315419800194132360766162214324893775388863752545690507196169322209537204129730182858122999686676399545974176294286733190926818094757796241267350111239248483797642394810063211539892007455415529129957968007760513341883587436782796086631115852308728841345924962136825452315429728842636763023224223191241912222034478517341452883649341870645797631710214790296203339496382627614061359917343139329880694647584080890263656579847075953501325687541218407821650163379330010929770984868316450483290935666836689038161553884288108372636568996012011060373249642911592886851106955391218683051659626515693729346558885061042586565047576384896451621765515790747203248040884236090983327125579482843222363516027005163595871725507506459620077531236066408733653593701955814841705341300701618317675129002152779342484784906983501472564234273808129499275028838428664982777283453152859301558082555257844355117554522144591153651858096670793418913079054189276635670138909980650373176886529543997889581505235692065156912090839502580963121422343925263916601858838887201852058005282956301825117067094362496520482648568605022393925408543707504296196184641280605780291010186283474933454854494722171590227250902629047816084517076604142394579273101208527827432845646140176935184282088826399202180634490481784016358809150227933899591578680893023986796801406213390392635653196955715795067782900712244638754185766921381647033331044949486731886274993506378654938077144418232448943150194118509320648332489118269872185981865710700367783888200664151758673634135423897217509428778549097847993526748618065242840787975955364847587438748533201558078343438910404858506734363228115254280666628585430830050717305266714173230675094611778641901577108761896144620215031480962048950445379384130076649144651385291435984043743997915450762825677493732836502048384696468925816485030966539555081737230234047514784894038578983668028182414968964154572120096678632768282284557177189794736281814088996337092486822299576790331633404157971236237904347497722613563619351739057981607896910231484254448832193006653223112131724720689723939373337903532908774739890443637507852111818363115868321188588433484902003621794861670904158586332574053068887751421738361386562100039084974964920992978086140886536677841526746781320780549113603211235185447979721344835054300278276432375582824759839683347081071476812252259450297688917718834278607878641763631293394993090670932925546361106153972636976167454705824368406308641499469696054329858797972385058806062679180521574363166769896268650941568723870039668813108788199198311899091672239017095986792392375116711089341014050586556765913425297656962328042267987888409039718220725186516515126302938646197295728612441605607260539038854529536718935499816327685025123388153977219802999418147521452921813698733748617247037158130101259493266844007547755446801419131752085024484329204109501702910623154080934177888019848072321187574606510790894066495152060761064892932345270370868720071946941413010957047876617461137324587911332230018552262803477524788473381759713835799238042230563941391101982507855032072682001281591251506191612920315023498353188841093969632713291786793686000719535072400879367010924082977488982330079456979655051541462519728296092151192795694721288882082065713270212519955357590346665245552445839758386649818804571689186857917961264880915886465051188124192976938235817887391648254328039921067172116770604764624000198157360833370991571841289854785590515894396069115248048312515216139450800343526358990918536102002273014205816388128206125221640324993803471332383437379322926948336114623148134685311121345563806081535977464479035774917541793096264500817682321395691914152000155259315070899461513956579924275518731927105693602774427013223193211559014281314633438947608898936182094122091008873361999706066721533517038928816120474132514434312533196049216346564414154922730702189421929790944741042733169299478906179449640773775006726189675817179081489551574526614465140082587814096112722985940282528532523556586214884245491613897627224183133863451804219610978935099166556254391916775534851756014047635883857635149153697466858059482674851573055673495362409277443031367731732997631483693596012733003084113650631394871547901175005695301163861655806883076894559877053297029070676999744550260014899095112756271214734107696115833479904718107490249321144600606871005488548729999719803933905385460983616812984227421185375625978227489675548047199710362220883847405097115930688306104523117053325045031417828866568657095207967807012018689378206226003068838242213752913956745675049570337982010990402665978960901336898550175728373439467504309389768712300053210531001334142450764623093157530364688117891342770345577662434398147275512478662282871510214726260928666895451276492777433908537121956689941851257879173507168200080549796021008737834474783268174716370576082008490529921994563954977391661778975629026538836522390672975742071528949022966163559371188173278427858458290194851446448308562319907029245048423473752151633468359772572439849567369810706640920879285884706061440998986563629807410020301937237256101127442209338854835282968707426877196443263311459900909696845913687346562893096430380706225993425347553593701705569076438932199982108482054627925926992345912464085306302758698956439576144419540037655128070866287675465959128288321383219539645639360112172509667185735495278018267106130001979041926300947685552386484079269078164300056996564828381122635277359755024048408889512897947772475431860520296994515050854972916340844119512374717107796551928577791861811277729525281850291031353626822179180352211346251317818415506930190752229936150760174004529174983712420300133933584364255634687166152703312171922733562840018764727244757039151297524707895194075609565974492213865622209986904839889413788083830313732976980456966094005738970985966928896853203667565018839154484353485151927181706078970450450976589366767852251439942738356799680430461290796462226601800695215661049419917651900069832569046779724693853936702510089098601948393124500234187453371526615588259340363745339036885940574590845599651694819678912969646883297778453092477707471149987145140210876479718422434055319767070487929223488313782952233152478844321299082141226957693600801401154077980941445573081255590681726123845737914438124957343311786823486933862355106002343687435927179090016283088006526534634011330032263340885997842531991983589237501116678483454077204457217239866216113327143536976286458925407475578820088207447695694677688960249938688894794236478048261951658862923369118449294854513166359404709697230013838403502073825220915889434564545025484644406686595351762233010373657634178755611182277324828370831287703065269131922482253205021717711940979602980705015062356463126469403210647897535321885060963486393283442875469441593679988762513705051088084568095511898763173206621093793803040343504030657077549594347393907483238662072853658126709474696445525836025904568616823071482469036888695364692425401456294511269378760045406366472752728998900000946981614098071658666652114720261008190786447035657102357767551242643524278393217547624943212098056275048828440274757213134720698685851513204740924919001960398489958846801187348470864044021958962087601430361232279766736886726629875058028372962198108545269967403199720254110448743094325521003917974248982798198874132477590031480430556273416514711482152453058032416978585605436976218213885140247931728753301308593558984569054305259349900576645586816068379559709908103695413931876655400196170489189668940303237128828157976031188440889406326301552098558165070098579135156950273000234075133907771664581741978306124259846202828267774245316922642285886292343335991880086448779907007580231480349463151776150565387648013547637142856357237037486976989818692659345474658074777045670637274548555320415114047291291786668522785748395572768815182209180498632298744509962883030438837671459210620325185639245509249822440152403695297953740387843059294259948210452133593424145575796683829427950830520574904962065523152368029291800240238427000771307348249625829172749877462223574726556306123310015981748328439846705461255727939444070634745917632261165732467138098219010826437895391462407234718246059900957522910340942735728903032242592280926330924493906269802147324615371453898318790604228429657069907564957910075971635302354808549537595378457775911037162718781336575093233898354882786797546224584358153904088665764289959246359461924619186640434122629248962442464137804442200120267067434857656576349690965378616940330696269617360857453097316794703071452833025688011996724543770035112776098141325338629427660359866922971087238528696725078593634912725329783899570707135236162262261989838620043323573689741519255437274816831595301828434508850443547362529033271712822245062302072346949822485272564653620545302297338591988817280744650586239796591986268822283536611769716366998109599050343746158212681770178275585598958317704048275509997487460244436880427189806875056912086801260902670405403734004033373518015400780273268124239649366110261821978218711304990750179988072562831495650439440160337363305592002726881063559119015014303302614303037666616689947026344539140862224021092340966467200869875359269329344057404238922759820093582024875687177337525061771589319421705798637467666961898753806193976952462774584264924870983079589310593483430031715671668190255570950569321772180006430025382960448922931488947636972087904205080335051993139587973078271853330561630841742940602415540789489409547784326554733179671262879809286718789596227520012868138177261030411993110059978541978469999751712547760822824539825029356394977117292271176270562823876671287726347119448474623153584726540957723569328359412068622280168219690345382545422590744291299863882909955513003417534538001300216708683946624725468326690408593098801142315698098227733716233544393413250977877114228087560160813604501443758704378399696478084440683401300842579838242877906507898096077596545515416655508735928707187424100501622955383246132900865572394657549213313799793393314785841155533052655986799747686925555582023292845075902876781752286618133671559378452145690239293607887291163589726097652600320220059782574329779584849256205108606744736421487296917808529562260623053403619274963428326332172099320082464590046450454443217808074502740716398985550078249937368769458793615320101222976218338573970960504883913109679585656078745779213945108526439679146755618360961172998151998366484109889945588994812373723474168400591594947969495197466152988859985251138065224507357412589670743292135238163046317064930601126410787725040487210973511789306549824166520819398234408913817011506810105429937447406751609172095785913194518345006294779671105916308154284295240749208781421016676121346745494669836178089736107180154955173629860355226030743081165849998023651656857020531857015214145760887829856291819593957333305283604548185519376994743020815920000459288442004008996579221807641850480416524593134210068695571658648588751279524336996202413521313346679863984653073717266973924609998060089219572309769506702124406744099054640911067260520302798215071602621380513622308574294512888979416789411025845324504590945085831676432344235824520648067573320153412605358531060277067127302915451401335552685174812959168806076153875831372448979437295878838375349348597864333283632489048862187794542850332264565867648816775915886449250321557761584957388628897944521302769872953706159130066363833354010823912693288244785612789395707558436425605271297456847826409301970024532128036808571612970427128092694297317747206036903609405993149841367468190168544816068648248432413516674345208336379797088827521296843175484667324242136465355173970014068984065192341529139360555489532584239872572594008777334002356331252735088962864221480697324177616475389881727569255791520497320568277889624162163801521962635421812547823880515716160738940363051400671599667673413083025372214177291727928055745524074501026688808557054417675446588491469201240535304262449801700504659975987444975927934543871331771638602921467561392046041659106091124908781266954258247369455140782970242819036178598365018268202501628208710455043884702483692833934468417557109218865807231961309863856515535063408832460748898174025322365566733737534711285162085688269583384012301846193338161983003948284630871311873137043381480269515026839070983940561062973480102982824748297325035131737874185079887599674414000356126960528656007990915990191063463066196368671796458517336161258701943836290360791008598146447499531953438626642495328821919751700386193713589730143409601766511783797252024847782344249685729023935293660934557790116994104837949430198922476210955735948501503902574839071411925467039173948297143475267718084230279911522088964364411075041677485556931581493049190366911705457742473663970930576467862329482007832914940566794297029846330872633982874775890816574224701271583923099391236569657442661062617612932131998919722945124791308869825020638010937269144511858900436608352885948862886868043306313890568527173476239883488193820334562548759726289002616855523163843441459261791136935329816724393860311778428062039720351461267745654012831984916942184009799163265131379358779340813125826753981806112347208639990848385001116816906365026547744606415868269117590055362488590552127559469936751808811286996187156235328923617020193956440158473479897825862274631950249356202301726926324625110795351938244221585913815203902656347453195995673329938604703142220419037451776988803445348595081686869530248631698040229579923043520289675696298683429217505959614875651397296321866157507606299772787643548454542391481541882961771058812696538637244349868267253125455365960017429059433002617622045749958382383498191112080216675713148147334748018537907299634937088732367448136174471677673081471243192348145627761405085487452984882544748143290949724901590868768258956140821752143862187416593885534178905167659359884979568982718138899781894830693490216204341403982331590750239188151009749292147800853749298159849525870001426773571603749233628004610372284983434495015946087327666103965228879184155875608417791864011471758565667037886009730304760167174294862184412920239966141756698023695442867494241018790836048743508195947783412434336028998769256226301767675824391275516701811120358202078398501230956020230139497472468680846922464397463692666277353091204193559011450990988041161472525393967917750609583471673175903761247302811914104268465974569890320225740692191252170898437339672283841084471871066191362153067716860657093884979683071887165876470780003909858312593624148785483223284752415271886615899359449671040579752274208616329758857510509263750001082782894921866180913218988502201243834862007439150685793698263050754387912757191155691475482201540904634527426699960700446268577026711651930133217801377873333158917729159198704640297240590049926016527672046607745090268163287422608589229436687317796592917063134463196509426515681846504419268258694496346829944393374577971387975473130339326015429315633940131782470116405160181578675264765283637770552168884426362515219046138229452716008797385758963389769847727249940641414920233666942292371778037608533445221599273391384456247328691242709256722174886244873440510974045393509237394520115035604042146061824356298720681697118290866499281215814869204674202753068646200947458829811517756275866459514335637408123360103189908225975277002977267815061763478847118716317374576066450124738593142618068225725566346002180736297747999575000233842541178912655746343439612438897746544026532033049638794875309379333796166447082591412911086154970656512786555982763269956835573152826170480939437557678639928213820710246639840785711735877914042682387322883660924672394783029232255005855143902018954412493346773931459857705495899880469774513175701024795875415476295018614550993007286165020040426833464551986451090797126364650192876801794611078470835513250050242233522284282159717305172286280742209753799682061687502908920083329685138748170160944305139114733937676038361951466787021946209535844781068431806400993032893537757455226210946541512562602978487347910539425541314634584366756111027905738050327942264284273505974516164973337697269337296685135639482902379033493925511051017064889780365999579281671969831500789017487177926089251028463576531201834446214427733256507003945915625346838248861649379486796804453960152077477651879470630356485534080420143967536695478222979655915433708606092973787853520745972758709103759574216502247870420933062699360883834435152978318131111493781105543933189655768236632745716969554551238300359402712347504424102021965804923901085397281180725052891819476406254497057109645599495179242340842597756676180002157181466350711703770973613312488491990823016292255535213085570135898559772301715258065686082032552274036114957993421171360665803189984784946406918763745192033453538676794713892116816196761855398229060441837692612647891619939954354332228299053244005618047217599671964935061557610160544543400006821430275279869768030605285882613780557990312305313283548253969262714518801713418372411077016254312938667082913919436310249373265134364725727640142049366730122926076336472505409273431001919918706207917591243611483429042329406811469620142221008211720068996803000310863542074759931124684355708459984845850289224005459777391319784604693120665469920431770657696527587744578178496045975894625093823155177274387918263634501705749294603446860382725744660564184695945496858064038261024361936448581320873963901884007571122565891242785281260692831431231860571968408269857338305675702874256495434856383621993403514888516564741431089203445924998595157810726152525504785586525803165701933368879347034039417378002297397671014797831040978342962421828684490237669012491498278824006197091279810419703252716077609403232293007152726964828470829612014202469581822049875385866257575240214765932810023513140006302003637491526176309380426488133649148095286780020291111424734454423462387548266335998659144041335529662933298676922131652745947879906384890832824726445971701405435610546758569497514749553432059906170379191565608251026931971509994461853777213015158505295186947221679082668269430290984244578702355413662248979537985958961077789779252775875293381093075960660411399803045166600420031516987318948744628802861174838763699446257499901782267575876944810069933569488655742146163919594758520122099893896041016390178031381295761210775408718756675274393264426592458189571105408975744176241168221545787698719726977830844888459175910663886216814646458950454035646393898869850715040892166530084789236050026285088066470929477012505930054499936239701871163491455390877212855335027967142384097080042878738386331611365685684259161589959440764900589580063833411197933152779663996461530572125665643759980511577126764485025386652803161956345610533232509123734752782047270811781641439438959591464680949303804577227378664405736426276465345397024277119377170026728308463866447054201953156640589683849027292919087661466359404403518369035515969891154895201461922043474094274852997946246424260594854353817498708487156876809627383425110412570127968883402578226909284559242816641956286091523393603043074197645318687346213152041637327312844785065838319232795138618231469423588314617516536831944059717602728794471305731813267337550434363807389317646707222312055907296067527828122478379400391029217654397080767315687129649919985311007488527455591048366534100280964332255708443101425296862061643327361237774105088838573325167668764301551120682313810682376738286904713555127059823520564938402649062485386216146950412820689425243361191893150151931604190727603131783211752685853866112188481338823721685654078726419948986046189707006136231693852102214752978059237958613338657639175099658064572181176145594725261580457866823647223335758123916691689458722050376069545956499491683170569013666798154082520122855832129383377388264116904585044075123876078206986750446392852148017030656322660102757426467724519482716836631457494456491781586023623542253257527172847657235621469741114366295393835020038348388456932673388810189745187577034500492014563646777551581332165457749891557367727365678650264678327015771630811198144333893343261624707446061133149352441959594475894082193112997815898668759797897215233060792160840257509666634113569651300426381907871669265009006058237180485477495669720430286211855402232180175418038840342149870856403319977067388377010604645986139700358806520526073360177651452906108072891928665122662757193166681009992130617133973371120335493662122907753948121264611112702648449725655835610629950031393843054805496481463447420590437786783138877832682434256585349370809052084778754284930193663527163021847268591607992326576309581699918224368999515590510698862678910375955247866846833751058062613926678281912124228744033275187677181101116738047055138603320248008657765547295061833295576139683742508501541074508129097727468481136887803998174718294040186099880647129811807726544129519836253808352999104119384450656162322846946315022205969855760349410401044638677875284875268634044790178798129671524907597764326392168542601528322783941868209753694000193570325414219636235289990788255481311778344907819972389129683887749938524261103125323752732884103148201997441649785596526267194119405725585249407637354815133499840907340594030440007952786115193185825429355138605192865613777968128866243873636095473871353279681233099552274956947981121010310502813458032201271406442381275799841164819086599560597258346461797686701742116220321490570089501085174635624134745034466801522438189541829057305356937649329028245596216354557521198284799178517504998395047320068575813892624043709788126565015504074121400665928312078831788860162942091556228897692008749176816692872685454077062997802138034394087633415816449342181057348226375193984618143451521668349002685965427163488739876666185629194665218060332051230461695198955008707416012338363148170615520044036486254365710968007755807606976322479717357829102720462556718041609427988543907802008938822351210343528552448320682770672437486330559691379209813204804371898792896434904463501098395878069207436312449536004404876938572882936695880088532934360467813376885639060627543971869625156742955276320309651171027418554015146294304942007270306069681512563741076514438205434922346885061586509334280736938962937979630940418596489213171657757645904228381627292140941399717293105321823218194452224623926546981068416305833568507666612465353233889606840166877576020657397482295142967355827708994165127385268186401466264750736670770406909133266258762810544760618019794642301794451926299776538283552432641728052308931471183484246974010999178212176177873680595980032923512766442795835847437972669550740317977637899082528146729593117984964393716221349650241324677725858226668505525265555272615460923403685641650027853400574715741914594273328919982103817074884288630635219246847901446448247317403570528631641109530573747470070631230181917582181003214317683944377102032797933066131930943650525567246354348195133285975028922414616673940928358907820732326776797563556358554356773217587912672061603727348298974273341170893633144638772157230288059526944770241548168047823608024770300271374693107502376776603267806111577170191484288839507013737108821867362269894486666260619316385375872858129782456981916842792287095724104794748988440402367286064067894103943473836928809899962927411445753931799034429829718818783838266966282706183573684731539021422744037548320163081537654916717348412285225048811907521600700374259706075682968701818883055678362833296581361387027450848064510373775378756598339529170197419456903355580024311037753830457826465496536365155159160418994002256717909270756952968464966108799883709382327624228006368010062542243259204001317627142832516894603695650189089459767810454999513069491876981526017422688031152631612725917710576041547813995839314841211603884178366200922814964968878423804061411184732372398158239787673861327759786646211712064991351430099285311588048090126283063804524791484322577121455289956624539815208219833302878617449046163317277550776533344948609491336717573038477184469574897002486659239041869256137087469224563654200824852838119153644163376031806542163324046068201490942047041470047253499815478622083131624858267895637029040950702020618624412244964933730991565726412106234092469590627785030081586815565593070392144045571393975822135187438593475307792504170832615776079027551296724699706409020463755523550919184425549064130881672820255319926583166514530640992792258448021760439209776915443681980448488247287612360017423260157935876133751340928656985515698122166108749135228313406080855442067819537291072456609740341195106605718343907114189618455069566310187628997928179112293287939848412921133071762079523106769386032112957915305688373190733714887148511417005957359772602888835150172775607512641292360958419184297111465739126697617932629523125723324003760133995846982142151486573616963018887221215705310329758507903620288724474862941853146723526474553603987993496877558623558840808836880019993895307645603851693949259862451960271644607284741247602435339339597848851843778664798408976306519680565718125778144898589471979368211092617551023097759012983569531039723880324695844074232454975658745589632525640262120717029964569041955962537859865271978525807211797225066765323902599773313078533875551657939057240001729915832884669966390934530893431317061611370646110374293738659921922501400598665707842897458152657372148159985202230547434761309800932776026599625804464979671336745902019392258077665984457196352535390193122571694599871622639875071025531769515934644143737810088183091700101370650199686740097371573173821653064871356317110692340443372201833538390235769382298225613622623391220154211319831984898266810398023438231570979585766505258918389481899179096923851353424228601638870582349394495097143351766316755929846292677002751054093496001535792948580815705185940098348946252428330993502897920495872750820310009036555514971938914767458928540955449551183565615068292678084343726378069017288430480348485495183800813057714114441687755422580694555931195476758592460518203985113868294566276373142902092246653239475999505531525108973496190507981269207442847416510506619649365444796573688124192468560038264547373733999746873989767673594476185819229690771407599531910367703769754641814145313923557442626451547601584450356300053646390668623285637706341239760303090332639806408080274169291012780548948929504280963063743148438915757459453584619882349970063399109498485371300268814573030593850698715583163338941469872708084641908881986666951532459569883774313954091411966840901229599641919605893073916806319709854889426830799874025395516403742995615322167110524300851769659191282045884054826319950492581884995457501611010870632521942030276871027316803455791851337660339095661254396955262396708549682586655927797117132860287294165091651706172205039734933141238982863778398974099148934700626804506187464293195246062298666037852333873959625200289501346090951472695536179706048944429712334968248436249357668510015893039189328527007701206323301391233608331348290764645510272704376735278180863192118609436503502129219543282874786921615352886834704803678781451906297275452354615564436667792259024413620195761708434815525873282195856767175505285828724780462083753657542479931470367940809700098011121938722318333995306370370884851354250490219008638134542725748611181079229856727600373568301665203972153357961678743800258418032973943086148531728179359366669701497969041488120927476835183428382245250892830656793731746783454234020412541091363418222464509028785295735328670021313678875666430348012174119129735210230107393155571260950696467131439251135623813419057356567022329612805778944118067690874270091815852567676448104078531062182723280358587698646970089321945802243381216967706252316687854204853644232328740845035976596787646946737353386674364033210974145962335234189595157862805606368939487915171653278025243465912915260625086453669640829632204877576435049366065056386148637537974335054928034484525333424945932769693844814602176339563619719784522044004011940597143168636305880854175038929377197525985073346280328553649821080048529985676061932423343694251069747854493931716116348016871454826218774084801074381814131944042534082875635769279184016912219275566020735088671970551065885666685205950468192849900070096228864434561217521046221418396402096386176526845151820538754858931380296835993681940937380890976700802518216801823299309774520512955083897655486290620070169208560086022680089169450581028118712980600322937254530250005989745796571581962029853861978093075269442285760637525379094285171359029906033856677021209932744767551766488728039577843261602455727850368541554245033433350752018205368508320884677641119378636462874274477114148156168883974024746323512080405864785472688131638081031479158999588677270111476089107224077642881521203117571188128084737059577936416771681423140136256421663427282294751181846220731750400525314183052092819925621358296100318434647609237541511300315517657866897801365851318432917577279701234952426820390539237233676752376873654315500842666419792580254279866626565417151436036035229426005988197159100301760031072658707378503400600761335712763655903975981032316429856118188909153363624253184393965766550034062061748303815268946215717822938572777268131640552412566592123445163189367095624685972749284200864199122434417323651181813736181283755259686999705521237850078927498445414117339724323840886740545311486757439673871481971068669094496327951369871025270759670276447280153428483396935178850017752326092174959060630811895578481643041258229600809646279682563749009488200068323530053163341327174245429190377839990063127579710320600061449741538888214793362092741387226374491751517063352092039573852452691058806204689775730962704607762998835268472632214339238091147558107163012742696072165146267563383890912877059232537935907808569865189380339515115421899156495495122644683116865315700740135800403678789616212419638868929085561213276201646515820475557763486748954537123456843139509478225542089318209386861627329432280815291481033876939074184180157521077825471938150873781060612112061612568831125441836734331590308702689460725497637886294321552997929135406943786704983812744475114390759544682564032659905169526818283436294641744104114875130235754564757890897351802338783070662150432731618725949963361003928075084496975605118697729412934944456476865263760121271587809741193610570673358120830515976374815327765356595296735749803950284186220746145279823113388307148647488437440366838696146298371847411445099725423099737528043798304825345460291760378557141983530968478090976064944833494515348585329707099184144180262605677110333124211709618417980918419465515068299219571678261264833513716036357963784974365696969607862164366202456047652563712373341664250704266111449131264093806446507186296929435003779609610676332173801444259950701989275006850768945507125321980848963439260004166832927916514102547325794145528282313020188486183640118033364100391983571576438557163595779412101935785692583438358701109497571440719988117422566563236779747339748098451646649342742637464160030420177798724676252107950414680427669067108763084231326863849365157654585166263866252068615068934691660870343722855254943971016222053368172537664468523429076766719806642982171261797302875874944052615056402609668548159157388834715472012667979120468950128721128280894604320134396971256719599303076742550039033924213176309600947175627297932257636534182041813117569867412848213405298284983981742308433528075868149588080549534096072312788209724990291536518855059871868169311744781982389338900837016336611243941632372625936358156167058769902272681090147166153728963491135116006836262659877890271300305810003938028804106123304230760229670694404883390509467931507422565289815073500494399426854625885877616166818230055376216816667254268993648873319083545138863123671673877305996207872616141408875229473965292028179700217200546497540143321081746591276885954622301514190263842896294344975013491103918027131908432294150021697681323100781219919074590102304766855412770969239447785012605445146950149529853236113348867076268025920920642363738378918751516640233631492505390203897337559743334878064133654531652631184943291975547205349414093557137815891465417352630064998845989963440616382289943825133515882347247659425162257960850682316382693934028516673682874913457790530933641795643000345472599592045237048624879539496464090386283520790199428547825988119097877438870723188043801260715624605639849784399246569849398625963438948108850002900324811764376479111048354122047669643852583885056752588362854839049044749735244522108162871137928971317056688062847255966720533116271883283710977751930855130082776629675119670212156494406977169836465209704774969513900313686690721330972638477636334132195885317385932910340701420858155715120738929211991484731141550501205749203606309018557803071860737646869456500418720579237610452101859015784108687703542990320994367031583110297388082984186036217597261113985064135761446830694128031948110972432564037078420685905816310242943734290210498862414193544605634764536160762008790108336621425745561475178669223479271195124399871662094412469994476229244020260724990156683534710019063068978261744793832089386852781288755183263051845741090883647848513122037864799199860170083827632315518723851171187192483019519182925442859399386904818725047810401182371276565453423627001008402908378002520054713105816044466389627750860367037310212512054962293968137821995734304918179798275533361867322241500233254373954522723053285528585030261207367589137111039039961310148616624739027227911337265409236214759173685319965805939563538659143064137781004812818018166727035653040364082157168939019025965550814231978414098101813374840219043819189217559992986139357378194945505928477686688676555639167121262184461554230158075934524370671366134297162898083154245439856088198406239598223435849034538408032953796099352872644152603299131356719185452830949796872935193044140839452951339623238561780961205788966912448261173785190994656683034136766834411360627960046580216928759060051308944207336794212993269474897777419923576290909750416302578208237041258394215082746685132859820994172784847071696375987052326276776195087102132871677846457645957161188342857015489825289000580174845145603946581591066357747660110483235881543954332753524951560887878602768956053524170483495748463112504356534872252269798288592477266716419278581524982066026564315106585749562585527917994064728961834221957489399885917964845111368677948170773064203756303223763349336279229357273601719673111219792642854379153576292467822350323772350808440704468915225945548941255955630671483746993864901514459468198668682389566702714887264216196732004113464087092624108695628549058854944184992026477212589230309215396945891654732330008898930321719274956267191555899232659160455644038288889335805602647912858798712838332716872757136059345393594564513806442935707019948830163804119191439313109294078831971139512078967636770967832681223096472070618700136553179941327523796876406875903486538930199274385970131904963970407050307210848689189030789960003278624742821833026130986073830010746392257891144406737697572485982319137305649279765170820094080624588126324488775722002830167706331625771645048031927209140216152356423788228919983421020172927201627246879614035889766492828732893624197657614135382147990555331765610581420156963170413209968055044899213938825214057767008549784185979954638850984504454417741240293604379353010363428379349337746616704840125099739671446339440049450267208459741161546884440659372479350337219885389637893048400516421158660669105961408148500212192607213605531879389931871838746451489788088645890505630947569721205807123898642074291280775881064957473619399421930725037585088639921261633104859367509976958878164653904593113446126957345538611903805008315884701800984212273792594686892354486328368114185058487336136337606424231121121291880943304581507060883535735065737335579567960238523109351093370000982385884023672784383912416906027669566222249535901377446566351080618502659917578496971000271485221863592215460336692484302503912976632004069043003851530736546104051348735652612236937331115839874180375196485072948569511922232216466692707335928390569537378336256850454576826262011526071166762891416279160566776142840698231238860173072469865389102409242307342609116405991163571851357352193156372721814025472487296582216971941280147915342845950826721890640385419506243015797940283098622643232661609254513806946180046386174131690009042996501685196809793412128815469523613500290220495370892087946197827652494046690692320981882955978275062306005295480173634299243347071414181156498146975118048510324068343228197078535936892884761318892060147565357660518390874462875808037673208660420545046604021089907785317417251545196216113766634048408889534056705262303624442875233196636842776275364343809447202038272671535053270608317793709611318436218793503438489826712931997622232032841826682301403742687958968003729496166883802540883922786013987055983796090001745315667502320249932299901017641577200714481089902286958396277067501662184674445936672775528722035382174856703336518408513178975106461555600559463754547315406470551237733892839035352259425005967651997514341458597322174724772193912073033415611817380319081530007710849978563430599077218191682822093181161658573242301094598192443190940830914743363868466247875125069309361267178048452404429704608919118005888891437003596517022855686525709574735156840181099039752252747366481321519016177395057096561327084674660069794288159440595373370082102245123766930521571271854790532056065650812380567364942270036460969335497334364892506456208030669189993232071667258441853310004128710429367512070627914671163091828851778186621268726857205194908110361214355382491034758397441320059716831643355377239962407268664778364540284894063846141389040990870218605524576969864511753110937087329395710137407427825066948220055791380144175583041401341930873315263277602993116165147786010318042377117191858465099645263363560347504884525078677869844096166928123996036143769300707865982201540670447892553738725098598623262074005693455977666528325979422579048840396810274512912651558155364905271791414172896208811052713325852325943084244177513543069103490602449775850522780710797612159355825583296552658579067527085048734067087541940694505026334677305866621622488046989990092799211519759717904101471140053776339005856215149873876470765943226798094507469357287211718038442552694700491209423051469703503883410092321823918261558617411040415326039473433261999834558815127791976802774377468051825316474705070888792092065034334910318203917855749736955567794701288805991677384109079197740157037752495673198993284333736700139926845339264263670477280817522943652174779281609884097309064213639635222886916763199628998036202197029235574557906588730233430885258522075021974881837112607827230126106069558308762896073621106499854289756365009876844765097861142357643063077691675293992511516971530867070540400966404371257023758075035770165702837241343190643881803001990919647112643084750353337642423275954462657361255532480914174157874184833902892468626059033425894889081301338056815942335151498246747507185545655607405553111626320497280354989626294160572052518757114921796010008293977223071185854898632635244967032790710422337923379685613477220023604562132921886744458295157165301152966752554090597083797393759241551233890756540648856837521622815374094019309862069924763386631295193738887070813037360693574865357537806670595375879442473472626315409794103189191982344308138937427918052666411417460815613575466739552566057305478661834365204464796750935253619536547332128757447507827318581831471767215538298761892000305251963790241822507172870281429909649811710010547003410587016303551740509205158177418063367505634270431038518596920400090969124435519506495854792545618443269389674133355446169338335087196995765622892163408205579963814865966267281116673341665982220415365957557596932492127185226582499672169340440371466662202766704463164157024013104221385589716507301845631510282697572842819881228814669078672709779772001527885192851697684651527811715206866506929112256651948914346515290091658172344675974004998679218435459512307938195411236034588290710926082266371803440714227267096331900449753058590866490805981270145428248558869268482244937193140873946367596202693636814958405511469013775322785127918274453335655012329116577296349193001906893961572229091751665932478692813893279633297931672107034129851532959249117692856821448492157159013634383418917232538488284097638140592151605748794716973268570089775306747807414215607362146050458930589219675825269493317742894610050800240980092154526420961299660182066710536373085789096444655634961480665147510112076203361907788699901816825655166786646224888058138519661660120995073657931412943514726873605591283698723654815451597220005888934926808948658402461132624155670741412056321130756348737569804836636929618920145115979675208346192007627838956412830523033763735258291122997306435313105493534084166540173774513171376173163259730566869244787792808424851872509054937786225492616319318702529042601701584589482477914372100328913477080772368418344927504709552302163184286435511961543299022960561407138100350310238684620762481165331403533114865348760983866465860432721444385106714967654567467254724891022378105219825743417307778354680882699746542920644659039112675072483092017078302094130839852976019959145513435878052527484246680616967612600413775436894017946308913766940842685310823167647630510796449968215749024397873935716371126167266956951181240753214141687778018462178249440927644928412452012277618831609651769122421720063172578082070508824948931393650404028452406945617176057592664045997136891080847470461917021850935515895299050070684770561461661405203656090976115309516073722457213198008930280402407177276554857275499170366098915834413126028610585882700203269025114767455540059865708333730833735903581124560305941816416858507287591341818484320822188990192904637962392897204600999651946367998876396264896794465570506630850774084661733850807773454433768984146796450309492533256602642419705571897897286503023986283979182951574631711931595868167692846644485486414763072555088769375032017191196820839042869169676120989584923282051560480608244949973967058954578077971364048831009523704034290819068840486236354532740776790511795351563261877867064502496394129685337577522087571245374857284055923252137193556156868612375316792454747132245434390283347023304105404172164119811942893047642035867725202568849506762439787793764012881563134095358776251787184771455381731321631626739735841659492047796820797201521042744416275650972013452669632149025027072634603067812503858607958941524730494235060404801602046924602081497599632639803815854166820829424158243802576698479805502382069608946650529526071088288565507973395706964668202200700650011539200502329272186140061563640609827855699694029165809247133036467810257490607757869499180368445010253084989533647303585959405886659931288487162788670348697621631505749134942707753708323647084904589153504917508223699575797748569790100383975532690228548099060645948485366222368142246678887129287646681513212204626030694365422848299883788389845297132357710414937258152963271809718358869409975734036305486428107225327187796238676728577582984191640960222914059207927079524551617741240586445216400253614378408674001624869335495563565530282977726403284610860375869077752535914820929836778218697387037451035921702779165382222058171408670363580536239974485598991431645132294852188272016233106423473482796444949771082499256315925070222414710193652882822428484981085423424569990046723545073939471371894913533648262460658085941576255583083656780741363029586507074169073929382206897146056972828953408346531322109459493496312810751683663312401239414138844027283089254222075090923780309820670350101939331485072850392704391180829665937447392203404693105954050458003469200557280531333532033894543918128224619715824103734637743656662146280094565781240279328681483547162563273089735469382941442853256716177580938992326560886038018815993822883252226479113539633429045663338941003753468246046075372097208646498821771885545698231445002749251547740591663223766152864491742155958725694259320366344344134556600225400201255966295789077394741281843725434687569847227502652385086517593647673613999336139583547068547176960497967959949705312093137150809098319681382854056957467438158325096366965663474142266148280787075296346772482534102733583831629854009980915280588053140251616995428329797649920010148091031905726730121299962026750419512519342981351420868759512959535511715549739955792830796642010633206066862609523722248075534639816077955399854514400539502641950998411264707486842814062760897337317118938066136720244219356168234366902028661393456993114729251745777750872739637197996950188224707675284797398672931184317417401399454587932392494703895006740030642430119186681782613583592247885764848315617171335355072838266203493072997431373637634180355272930365342655538763258906461118617231290768635664919922863926712032415472953436978047027926719568588661161635981844062292037862759577237747276256429015376514875879139663397687809639457616969269694479924130003330557591669401056122480303357969644715327457811390954202725345914628193296741917815952153698899269853276432216961592376284752483693320641550785880353093412713979822425674980029293764485134165716628309281326040594613751704688675467235496422524933775385229476128537527922715424934845069298941229779118372797356343053425778761080552171455570394788914255431843688462912371942203579159630109857222610833756595934570637916049757384873853738383156245008625343621916744500398596501568128620605757606414934279049147802477621008089311414119638881861963942297271187759602342174824805107828791261621945947886419714478890952849421141105382693759042342702432216264611889556695948748793345425197327772742333459033783265468364363982389481066904974916135410140048278205584721394636935743645373230552834777849972303047908759151771196478821417217617156244082044839190648635233637002978495532403748838389944176812770030245924898335648586410202430203167970542548626168680232376346626734681431757177450648627017529755928741883386683013060289267648193868277671549190072193364661564838611729091978650891362279845553717326496583830926846356522884137811554422182770050058330820648242616055114344146819374321292649067618310376798310677485513406225201060704562358298410795747427091357906095765917738187844236572217499689023813006654836762764655114851780277289683747231272962333376676074690711818902014864821512920163424063241399007731579467879525925102335407304982573739142857154028354882982491515316465869335936373072090738733472913138952384557747697759468883220952292766447955612766699320901442078114163331835218843942951364174047688677963179005556191590006133646995442784988707231026027022865838513782748654364058999877533083016040289692553385355829541599320468004095265192887213685396816553915485852654167186707867193042562770691853081508064637679474159937120992926353600755273224190012395667424078016237658294965991835570719901595811680691574297549300897172472501329273911825246902338067123970414640466515849835302695675391229696486764434922365540644641966468154666523807089139893692226355234646328473683302897589975973426617969619809229723398467401158051968279180948133306380865375857071510804850076881168220853475537527819429302435456460303258234057123621950703218875712557764919278446435001184870290088696070090502318773951300388458816812700831700029729546684995323348216738501515480081081850552429228158359545419875178763522709788031044438510310472745419592863141090299384145418209959405998241397897068214771589693572674740110308433851924965887230273955688615529882779438478063338573252872695992066000651372331849312453594565137780671908820257613745165155233739226677770492013068699791135949819831503269077043943072193501989619698365866594289916038682607117245394674325056952884693570756909131256431653434837754451080435322377584357803038805854974697398794557268942054642212576558732490558512518367800525869366300133899805815855576249502059829583294241119633634528216451424863995630632859414291846007070688784271538976207018918949895777058647865275454290090007710034766303828380121847208818996600282916981589702384112213904656620236652704966073502521277702313067277587200468227284715768072505017361882723843079608630820074880449469172729198695328686595513284403091843880432144234233839951348381095505107531282309501679213136193392894045407169568184457262152455115422254097294487987891333059683711040355459994193123024669692768510736999719444177541180348953990010537169298171026250869743329630408641540953411366450766080343637710602735245232867874169570876926789216081668886919953120890193282734172439555705888203937038496525779457313447193186207281324095720192259263785631125926169679533446652677032993431990818666546016245010143041524634703392911267214295616191017764246978788325484665987948968565909653509728491892559070548471625634700990485691797053640665684772413212145800444194561314194513144864902186190813688112790897835617818633825696986770383841820343601448751667916015409097018383494573763431035608335813852926525932991459054985473175881245921674229832160816039251377444392856307995697350234282592682510244919626893603914374730054596288232627194319022937951262832034961333389970924102343394304467424640062203248206770205602889763511311371726620199414375716927072283048564695585499907662171881586268263842001000980430694214667878985809691310015917416639783049255751070930555348535284485710091894269889791871796677280526013483311758321309249875869374230563085966616049739395512194576792957681564819714101106837328496847743456960922083834104147637600669751486214737457318565172490487497577476448035303143955135810927105470371095007915847845573834758715006457141251785293469654965945913490898016461772662900029743391806450601717316046613030327017240434177150791280324379181435762212270961643736857646506081140576244988932195845548592172604309881773042141031259182346086948809652812387764266480477381345070255785911273761814266077937679377730320051632555340938121250742240077862682014643988007986030865286691050072492406866792038526663237551231741897348780038569335651791581928436882571292273539841222121890105435042755278626482999622414381620391880797198814008088704740344559505358873519343171210727824034789823334170771174125018216046431526613211604667479236497080704820500238756299764312217752304070394440589123222380257496347703490020416835282071652020945353659817711137814854470004454942814413002385910322463515790532775887066343268533254472953786042998161295053358908588738492220149208829888528444525731904566300989654829147079403498639608167791010943476648826766235062900076724338708541896007118544983099551580024454741134710216566041444833486556853897542219213100668357028164264010679593415482959902644709570214380776610677090684512970700902736724934098140803377217992432786024728781805300465126233674969408796792248749199160310596155110728657715689458689841387935409135144262606900987209754974549968356744792504463393302242663727619349368806924835028978332045094521516011741922659359548333040345921511111833648865783749208349829025704273995049322626842561116959457525817900966718204309339007899299695378569872601307978449213624015810105478417074000049735238363608230328197773222095520178148477117250030267421047739164412984622953520772379780140933993972808100177490368953319359318039824938839905788522947274370147180666785370190514249020100233272046567603364812682318796136521571481657321393881185520872402422741681565974593766094230086215317770903188525250552545699330877017970595038678814376430444876432009488623779586023933575108734850522714849123473355529370086860802738434379379729850065816341483078612846929902231521383856935405402391721761540115347188306683176860491954746956984420798608800856464287581422256166903023323122911472976000545283143457829560173005387924597769301255693389322985174717238934496671836946660723318523094761900850711876405908720590121499761545919252490648724951957593244677054860112657760853348813169414532365962162391327430584996611862970800606170032548850197007596737245644813659470500086926741215862255520690319504635532127033978442858413596609267719549579404447058255498765062359319477634461544813505140939240797571639498534816250325943959278524516387119969393629893827324090991018345351833264934642402383705158785353460645732233430899301532836718766322077487607366244349808604758423186542864696961939982450019328239833614994728471704223017255032912730911427974514286572702604073509783576093510119891557360980822626935254857200556071862257782801021095538434462038287542148939911741267241987206566544475937776648925528280287134099721844516497224841079379373352485527547688567944739458085285562656253897126723158807642676075380906029810404152003970380082647577147791069603899426743505600089157461617267285966365791877323482906140783102441446188452060457976720637610446514049450728463995301849904049542069194641480642991454111848359313175184749381098507374071569532773366916488732111203582778699896236719597911809499021641848256423177932620712424204051202914308527873555362533637350756974825716442580145055185479111237085848437244376383270280134958784896199273921820226361477452549467077420913305317989390946213455376222115976949750406967237329476707044872753340962347215099950067877616583381506439280499155048484257464319242163056440142698905342606857659803929390021227601210334654264438998911763762695236493304805545434589950253733195785724266584882006840727334785975785631985619338662770547634514854475633067588826326684667270855163987825126039633967832700737987963786578812464705062230146749750057050742164922035217091600018290620317899483359879265570783608855359445587112358896906555731033760760115981821461814147368786621672527198824878783072848968024747657634718514861085079644923171984969398679307651164662799634753090777621998931962907938842519602611714154530166380421727663122375128841958087756395426692168925477946917630141717504099687160885622994474156785876943603838488606426529383966424752798272571418510898193671166700667710185925945982955947013185569784614413697525912907129709881018360548255767750712374238983329154058346714416221269653825855105026204764502964815886288182591758960730318715181971624128817265255689950140007052782218099307413088208035155354934533148100824507819083197579152697752513074468012845000490482808810248130166322240947447729041372710262018490571200978769310465082703131651719113392764575728533881733411318966745915590794046087577563292490838772717209306312377437009739829015692363183883572417783574610498216565241407711852130639050904997750822178249216754606646292591072625618964483643776742634757948634275148779705055382279611427986278498232951091615104115929984171365158708203292062653906159154383260195759922876847865647717923818698233135285450111883811345113547973638824308452265143407891567859378294469865818487273558046595511745708957878320762770710932644754437771822616183549608137300954249878954483460288059827979738170930678070541321457808521778212038188202221128605970121886188490238252420408747884607829077512867921177872171294812929042713582658756570614230241614185297335780434930454225170014116163902081141121953697019515077099760878067714848424576246051188358264826765499704046721915089436128661107723080666317948403358061312677157114203517805924755143738695303966340526333684933120789376823959617103204814900657989394844913262632058729847729904545927291043869195126950780239133582911565110404713215522777214291297010455519949970846049011563350763490489436047300040089887338414306040987947435591469868158661797169527207773055507859675085621036567995405617243513401086153729529613133268729070561251890815100970226394998582938239400411534960241988084271573124910116422401718385789370708574467335047095405414722115483055991021389391425589426143444798678872667660056301887376664272583486434182853018314813166310765594133831530364747667780959980907532728494644164670689925132144808956071493090948469845740679514940541451190704626915522599035583576677527520599408493393087195920352084646349711545947848846868036098815960041422010871177095959372439338215851095217488573016206952981532335327656104482990647704378792869212267080555258076272624523464996063715057578639109868336028154628712180484681090027330784792235020548799201566080001735176365186287852662557452234880504147976276135003224931025266910343846960381414282318544068816387221379621131788061175908594849106493144673341851458110808093329128983241700821412771358570863589261632061548477211308533573542397205617578455101235422302274966371408135406342758581908508636134983676388176833052923405691626669094749633554355278437373976010976479068865196995097139374750442880152821334461125720396742176460613330908175354395356079939870277939081881930179494671440725663159561596587477874398037755684895476317212265163621887587638688202081102438074560475474958613378419216093124609230827461295190643343315434930253278491421537036074122238343264664538161406443494117639512355510188534194994231509415342980713925986607248020498058144714569083747587913699423135965539634377180758949942077566966044446521060425070748417059087618386192674497624275783467555835868809113864938219741405501596348230390516377636321958148721212398381337324450883465990485903279818118632453239433330924797571154531027256627417809723033523592817398540757406194361949550386765194424202071173538022665435275933148693381463385758629243193698250352791647618703224971476633434516367723709337766696059792623337337864405221124049325602963041956757250174748179075641159873081000990916017065643788183371187291331951995499916062248916459991438782398276969906703516163248346705471513427155275737644720787975222687985225449196339282299242738142596677262039790882628394717961168700371278085731440851141700184700877515999436489364659514319205275828381589956777462879816971850444147177028351342249159630612421835568195517029067112018782688917321155100108185450499099938424722079043909374410132424909709576018375533653513242375079814888287825596219078167422050882989747683019007363162846567263924939118449846206308311619337831897683630478872050465011421540222002284563503227816033183507721515097545354447465600702077991670702442507551723709861352998683138499122482257648938167249707317827542715745274191942720972821458596863871925410305277242189316406893099704770572167558719177273269637083688117489314806076710099380359478602256016785372255031678435871898363227021224346780603556050410836441627811790350904070315204669071945025032426813869591648978237922855675155319293809391068118906977404930564562976797131567114158149874631869424979810310679368991027253797032809797288803096344557332684690952096738656234215179644397452207476065604101539806701204161638751485918759107919995379943466578977887601081637165304658277029015683608205296211276234978427094328221336551686834102162868127094321710078771458554930487962544348732352687776784251035731876950772101844494736089291924032323211782563690305291562779833539742088751779555127117886615029727954960518912985696760812883441923391956248759846135220071006423957911428434562268325162045774525136137017005834560099440629951991327482657468005627354033952589696170773835146476590895349468222800741999047988009467767779145591718333042687415718732109200613423004722734561012013248798672088073380723001752934198328080716893059347600971312624551279279703934810229629504781907025064826271785647968469671018110897399969175896418069701711889628212149055055999259484942515259836034287987963701566471922283056206363192482461580446397730810677327522382485241249928441795723815078419783054199510819057457048280219054157823303995803408795107672360695830668625588393970848677192433094683747955401956847318138662528471192757504794886553526039131971171318536231655780551658339817319331263286103250940151071248290795317364010566008213088281323111913033499304966497459723491557061085131714162347385566154327429628523884680758916171686343566643420849698196804886121492497608022929802967169394333946700475031231955756615191906600367099706355298997416955629447748281951364301735174045512913903888483567701823058527513346484677784860657351061304677901619931900194122361177220279377200110172149563839114544273936168748555053607454564949774176100635870001891154613046854501203921011450388674722478426011347570550763656268365480141009322109988672842359687286230578107543467493436281713406033930842537237892371683455243252913229927628587605609367285808912886968166280744177792875799986946236770658776178135782337395524602483336209073076932671261841837183093424381392914438434133706322987247623429681853874048208765984419286102486163980354872359950283544105085321180709524130403682406060210776682064397711751990280137138368455098381786497331448948320877096660050825137370318144880000294975486315641090452984508559546481461017612247131189163999175138429825913589262878961438575554670244644826073413251434961425066660513838617578843529528723497258402184137638519935959614877765813243360581758370815178088038513600972891908176633090794176373565536669828863910639833751721136538982121951180337959536744213184409629202233777687185548748762726864531588082476773121587936042994898290057103995036736570155237334027908116907966770093915669969887705291511849087111498179658240988916179297385546465596526439847760342824765124034781917787306766439036178951328445015636544321503148199069260803893365040404351291578868779338844697333753021621058903944181593440845978672617640140031114840986052767519381922327199425786660880042542928477662174838569484492636581872840509238390388045440557769600228011602570188746460008727417398775777739258412419353643584827670553351138465024299902636713398384482013463364756734227228222692184243164547519249856805599691517007621273332168988436323778318450311995267461566093327639485795637358267395671902126563587959327057743930724436855152896426969951245177287778721712317718540071522150954623794284826242951781914483691453274994433278229544771846879719921402524512944548500014877127721754831278434079192895801392801057187047050334583228287721996944193861728060485421944440774888120488805413662089636186943775407889556945126869669135928415220568875193130952955669135076398135926311214889310815126867576138101387454394746616575161939308931120223181463576082563780717247594756283120673804558327895263557056963016124224792430066022877540489980912299138418830534322817063353002633055549456890531862225471716904563461930818307403114382109186791312565911172040509723584864524932091703505882201874932396770847054613042500998511744818504842510169788870692855007606002186052083149008035764426093196641167835189903421941523068895670879982450802814212686643743025715483420165091183214094193133110197329887358024266131356241829315447836153769776462750625044916783506467558076206347122744914490312657205252201810724314929118799407446223196665359325473273216369897514183418006338422566262255315617806800464244897445646049526429627316303400508352940091438464731747858990265630878885618665921769589112586566055691413443742348839293750935215138988861575943030967469594822692941384028184568952953406640487783426234129806149098701634481989523144539658891915605098441056304704747159413775475014821185215248437723229860695024673625662986164242704406016151552831240147848630401323103921309970897678749842702645549705016686562471346568033287924837700991801019037311030170505657162593091920925354987773310896517459230272368879701598757162415374245850589224630251904963512448187772970354544202797550468945889247091692870387814141675193498458998966885713144105249814875295410835118674933516845243102958705765100076440113263380290936712189158157863138860329492828453688696541445441088331513230135530560198187255785758888442135800540022019715133436755388066294999531156900337791996574057945995333392228069822951802176744184414490337740577548935160014046843448499692983123838278785576688618112857843946185189930677850195352626960867746498605687870181440202225948358562480259962524211530271449793426820395059504833320732776537982317572772984973201599835000602109873032142675534858779126641469321887419783035955709791243890561572385108289394241778513600810885141877841138128071968440782151330984992828038624202967589771529070246287231746777321789280335160436678857426894826923170618500215654930740060965908330600002496187283200402024082623360195823706677632204770990463690350671720653357322411451089155461036246748103544415483209303466475992983156947851283664397944745684259215648115397525600895273481871047331124514578366106684344412799725570445722604490669254198529269529619976852491330051612177932215004262772123055815009335934585059382125556510365580948655517046098520028670867214428664447709256400741598962338091405199975469476865343344169099039352935730427747659480849664233877675286729046937711871052056576433283205363385404727138051543920106479513590338395824123035284940078420255865507915541290705656340491834398980886805708129085452924912933781921081704502002855834514527826615651276479152890364037252830109101836649684982089014359224361293723788241723646802967219593584765965850075911894909821283396971240708432723506593522059873671754668767865278232185541168936232968377971465126339889882860490595322086224097246809024129449305883830481627477588909586597729521697058363158027221386945003996500684657733361746662385867322477630940606813414525854447364552805386201374953494738497501197562525569416429982994718537033664375961757765819080279774628795155281205995351664460735412881650700964326771787155514418634512447032200576079433114503094461601898218526750586904923845482666794082088797971743012594283914681067659331182550169268985162964698328528242731594043436926997342474847022488756463785599502016340822209531649294090125351933788721875045678096695132256013882291670834382532405582732557868211895556698090064104403521230173803848062128376534120954551685719169785306206117404448036301226213672565548653239434407486443499164889617936184883781431338618389531311310295698742087960480938204906261030485460236697567767946888032786168531306782385853097519134514753168194913311115496782250751427015077760349070291178562790369910632923750154765687467658135606324470156812386856463926096620944939347561805410500936116674360822815883501987715491792568938405330176663839476624786789494372724006116287567191525873446596136527047972155444295126417170067528876779594900755971055096438980022676591448650801289224961126652485185654950707729984675811946248687886674001447822474769817861973506386772595087855633200815671726733969493827734948327132819054223999129165373891444084833629209328540821159604457183579575117162798680217739514107960008024970640471011879783502067425920848786265722134386149048496122059584068302496305728798283816568046940473284970855804129406484976706687523400106042099082679392955716865430612686459351245326409072324596240506485322470736110726018575284103915707289551352302756565222468016575458414103446042123155207355068667519748193551133602665118536282881481580748298626929148524634870339269673053745973657608647124651028126503185757552038300599028145774520635215086148818018443987416676538822660557869683040392677007999893760445176499765571804632527306177501626636729341852726674418957749313689016279123249213059595147052530155822107310102713634863584954217712195721944536001886982684096738232987012840415468294173826226669008298935260376055189955666580078310581714003418961710678940057499075450661904386756917710190074402550512878831036307259687678746532479560612995523073673562809774855277777824664895005801242523548424716969422352896230107111577197264532467897283536696763767196154366812924879181995634998796959804727596482484559859073151732914409916814626206272868531861346343009020222544689410821720703585139186372764610350184328447834655203299586434085688154478269638857733591086757241052010119509606094818626705474479060379181449634472977726960337656991352847563730822225933473259557715745354731502931142464179069801199493839235285353897579966257813163645386988483316765159944605444897089140595197713577455324758109383806463683680596246098550310687604547237423494927073293851854315106382478270219133863047011625836756212999189727826409353806079659957780287221281728128288350362445819435359350673971614995494064766700699387046536265423172798237845615458694413744338709381383728762834958210705247225097774556171033635349284028251079633249841353820033719533919100802578321414151531808178097003214965772112434157686978172500130810825800169042806723065953671042060414071560496581108706723839497839609737403841187520059246572841135409714490238390929899850227032643938692877253023543979842350405275785673549227587931473345658946164508251123060248923422546015370769685457769958438585294582025818206502220373426085582488739793309889737828581915132891758819001797122552618199172036265619797471952884224747856077712440472931895419823213676426202603765668181236482818426182602518244183543910640699115674978749200448114037823877948955218457316628886367169028995257848984297911180570288451605723143686592423198985221490766567587700137461167093882897664580441739769886714544222426531641980534499166834962820549177504798176158183396721310665403323460921206201879199567648708934083249898649568385296852218837047397236285597889485848517802328295468275781052196698917770784530734256265218115230080777653045651928112219366398833985024358984081959399107310191862020145370106938872086996533225973191662269492740811170447208217130017013371610781343261648071036037352067947533936630322175317516014528093874690485430023113105071610279922996067425871165194248621245354816983064435594256485913749070855444581795744460138664060666896395855851145945330439640776605529088624762958878983886661366070065699660218223162778809143972479412772326398957701308625445262132415483688357907833604511266786287296915273583337399532174711000669298576122604799532868240301578702338101297085253447571964412472247714825604591034993157787928640824753928340238272205812442578182428867801047090486360634626984395664809236169210141932051999776559522931838272522840087636987423261457427827038951745609575579205316735824359814808218750942860175324237199527202904750785307618137478753167560409432107484929267450542974120225910819546510405782838005387336509931344200212748257380189440450432808347335474264750667353893215066053062215747727909514203307643512751427442555966080535687605801321962298932589614534961397903283135233281069812617290806077492238694489025994569080361439481304579959330101080750570956711460217130372845191587046500163588462062407878802120601736615932175470529319645900460011774398184648602520896145561993708389877343668526131903836527418867063150406692456310165404946249644220718888410693947297428163219654145008774258374366906978374071082828253386912282189723311078124229541370654265122937445392344693833714422162908030522698071694613385629967634596852840757240692885870289618571218344385196426513489689605033568257894124417327356048675485927544036588025730774100286885250580501631132917916845369724475636853903003217983216652479716092714042714808319896586765219399228895809804081526818797815951268799686625834104087516041152771456850500564550231125231315139079950845303369303321918072786838450482671120662414107843767027787376068294167055352236470951377322722384736511108468535820941231455637439702812882418506321061554478841437740574871746698572886579401723154453750033241057424671300119944908148525666593393908187039037412163071343507227504949384874938381941843783288243491890085728851152133051231532030693024523716506986868670375105577081325457226564615384057994200454627729481911862801017057129571923814540296352885788280369908845458742952216038528039991052354102823197337758319108329023678842166295637811035814557974668002289765178294763761128930553589128014110656094639285273263256873008760019846633564476650555298360198287434150936099788737304409699211278470702305064047881743820043986895684727352195740886344099555583036936213329779850364753161896541842709814607890767037342560106381003010483190950701845759352129301138402043173960113980189268769625631571264114350160393010693569718269894857888280143954247903728458498276378609529358894200701945055574025648530184808693510055965941134884349164650065160234159567492917499624292947738993330180862467378473406413962782362121083969323113246207345826256337061231845997466553532512017806537121716629773712351684811640573852213775091946076326360642339785531946112342389786158511308426970902064253521871468191703891211169671490491173181114259039454236057033980997969533915615097838260005532252244287276898748049361061148173099117249252426230041327539095403018663074914209301691720557802476009734571094146306377196822007924030626870193533234008603728876253788489977700329757018500142243928026491209712655514263616017116554814644280242883143424551905690805038517994796366264409539770628330335325510441039648133235676115747434737792414286761766353910467859493786838384644417531446000170792761022584878708145082533758643398684384190619876809236251645212972721216025311284167334954701406678651240588916907295125310522990855819712152731404010104915409039910974153750685268649768043822204056774249906109850137531285875378262162041324002756454557165548675366238102076929118158686393146574184492838015354680820859896921788143944654244127271572413994328177410351367976908799695739558349053279533037275531982666069406140194085371298606423408951478563465059464303167412043872913420841304984767494851460283386096590140510936674473109365967600694717854346357701890424463748082829191878928449116570163113919789389327516687951455038666011144793632516048701040972935490619783373780000978340877961170885748897222166155405330055965698548305497742111713749674840533131430571794341756761156253792235249728016855323197694265303733459792761521063658626486109625870489342390283827616570672985020392231058666438673141403410575776023019672196579328854041392264741014870761731278350486412875317238587472896473714784279224214977146751775802987410136241536030076861418960132085589954560281497002272119668434448758064299618052514947743051765753840537002132511129279376164172147603491812604981488537089944703776219951247540008371237193197290696064407894089145602003545079723403724965763896092555476080458915508143469730245280565533821198184829163989145991389901522154540684452227743906650563712046922957102062819297052598341015629089878509550933888647594525162695875527143572293631780554743362797251639702644690510202426763358242660792628207235943579154381427580100219101026637159071250630893105399310120388486250068169222473597800500773208625339352561379404948531999665911237087537829568156280843215497946863537937524487387625188729135274415743455113496649645705562797244650294183900924605688636013996452693385175665392695607771950900981391016228939894406516917745014289991587478442504953477432643563461398104527012855377920495877475456549026893932497029083889861277199277687816105471908210738399383284504510636853174251960550803569091705805102534034926360643324318378673606261973646312668496409572523606336547131319421593317226796882915832508929263873755995309200682440324027213351583000799299146423384726381201748982062025382320686084047399832210597468810917889532283660704619619332882541814640572065761878938689884490680595778374171380982696047717684883068291001786859783054792553678308504259438625226487840552332220204264588010252417029686630565450255154823140557415443250079095487305165759673143159189903362896290427130800857564681291887014167868659007224033438253887147536596405143758275850274284193083049517614943733435858886268488631063372791525979948425422858491704091643022138751487887413512436571492534626433101285360005273787666579236125024137672345374174192622373025317627528505344471070807667345958379599570194754281735839104366196458193058284179334071151368713538184020820667552922649660614554336298221951392120965828263924099383185543611579219778240899521581941449565736246524836434675506514184334072942157395073005581913022229165552712899096412025320785420247269513604958243191037659365425942297820420014708670614523521852769558659495138933440293763555778015330605558222957610192963872218599841542521976979224198578075247797730301275443243711757911256806334676725247878311059226457052600635186038163871181830776625567644730532225218703208485911439241700782149159837828208206532985100636604942258587959449592949134762267571630780223976049516983710312686120405799041348318177538656535669767260450842842735943820467860714152581387243580553816006595736527237825715630088596407622430644491962100797040623919338978728741591573553178591089746613645959205179496804129591775885710416892165801902422821590471832344228670018268926648917376926205719595066338490861067931270880933335374753450032482040054298846023147258900284617552337726744019984447250155559518202279852276604517859745348736610887099838306871710443601072680606613674049804569155825712959174436789212046620441555868834961375498282986997292701751258491632636456583528724818247186224750145153534743659030576735581400074125896285167965929809447121378777254502817898038231885820815016519769533185008632436397713184117480705879198361507187380687200220059312273515279453641160414683715812691320032668949915725135100150616891625794061905052221358099377552268265826145548314315717203348330040837910197296101749643749180641369513622400206507928986326587125933336339000870520189479714493279120984066280065127533044698693103073492017602297219585205700574958762269215480409109910921063395238899514348035756413106736716361969879883961704279232508231075968463725735349179016922144731109232926042833893613126196104700231550517204596597222847963581924581156168653001051224105075567276286450699045232695060408595149274574828325827445128999579160815631304266600629822547172930289737941235875595839219534856687872790158529398106189532715719223852742514026987233147714620236066425020287520343879047068436824534501047259076192796221625576819600608357670325299111206255691996174623864474970728103531383166321840018907883879044988666033806093107356447877251506687120202307022282185020341257044424902155635898446289846785917388404177084853899074289554859810681964394196826292736690692717602453662500941083781341091679945399263178026036632010870639045801843260276989292889347989848611170742669074049424975114534833883210753441581677156001025095422062781758712144614737960862028077403059742137227860780890890750672522258116242168859210385728737203122469813453584873985914079847388723463242404451610357335426208424768031005977760341256420636930611348841308690282400415353096300825003477846119397875730066318005095837521863189831424312215066806560408641123086753731709527392411325556135788416212508319137268346373166136390169161366357882027146461410780267862293271571210590611008470361450265908853183503077277361132029091573471317592572398179862538398678762509931183162501952673625657771057653807369643076577811789876192794279305704677252808832353815970786627037713046934430228745354972670121487633096244442276886667120566270808306980540269789397748641069545786888131875811700694850446596265707715454427905048314675082627274778457493800566442020625487816751549324069715884902430330468338870626361052426247008177410106279137788845650220680611238790449126583822431683461541192472204254995957471087787204383808817501460140150045585741417113457315735098605046254607377749558307418712144477879607911819801938736808461342942367246607508740320786461616666890422465782286573922439038895951603303201721253962615466431642996948098160002941859470284159578401610715054879460539059079085688091263466419374694747092671783648351620515811701927421676264551341884922002073028761211534620290680944874056138654864308283364024660848514030644386501003695897644878725817170750750842985244685350775986004683450693785841338808320318573526749829122038865346898267093983327344352377113590419155415981912236422924583708831342716546485489756320688181274477910862462932246044171296425356133280788046530803442607563423130115979971217075853255193378834211356112876060395078068029286815006021954877006476366113102277694506678765604583597724331409866959504580644138413968077247977028124072880458157414811149541056996433793090418880865862750252110269093601289296393233309123874248207249364688551021800254296043686135370957484372733486810464548644015646655121126154577342421051584167193796141907553976187134608916022792061842819019912858473370960844269946385959391406712358646580418798002576923649596158506403332948014854056996021979215369843203619037518049602396546199700248734000130870744876548914198042371460072314231008141278084510219884673229364040263851301498402822843204367336616968078992755731646836191747794896306982637229648255831858469186818211787079205215888955666744972606935882485948450975761238748312582479537925666622304474230827117970065353561404663700880454037126623005691717837037384048860411004561155577817850602991055210170485918380091859578676885967686471926384390797189375296443301634228932694109849750295228745037248868976168094809032947750971680840439304027167964860157803272555089169697334647249096505916192730236945184090045350976609037026668329964638323389959846092956442636454846635260671087637043117966527988725920263736888668739262731845363436829183819121852235251111465124827830045526543292928378719071426835973420948492633446028403289098933816243877547407844177027359997874308612749832675116630560803623947808019141420702343813096735370851158858384568935506807247594509715015729523928188959659347646032847416786760091648651992810295398988306570312605746756407826756112551501632982245196108067546216673418737112320432394270633864128513212581559587309496871146544146973489138784789202786844629775681090118532165131144979453974881650560206761575312049091942574852632875565041679940831908333346082387728231815037852315262110160018309611399711432136309805448926607295988295922419444750909642328329980915860667609103751667063603298908091930697794189087017712044388193003935263450189500280418479543838664817470211159244804950001273158806081054953000142638325878943774516120474254183213799841277776951557493120198609361792099341039778071318415120416122531693810873100506884276433210444401368456221730744107809589038929593620585087548619047027894087993338611603911363224097575774592901684464745574416692196244657041349649464024088519769487154577779968323308072719680905436410582634158453861348891306974337981457061885659469923804229765512369667388106278958177104423466791334324496267645290524205694001149162864762611715680001647626807294208659169361647731560921398072989042644229779570244926705483006361482644981041544609846370335117736454549615940340644514601483619159212502350068823755842693343915817154868762732804396880534647227426163993897216611673931110223320096745943632432460447785207771175495871646393025795027973258899959971451610787349437720476776596648651309906008075275731341182693763385156415746066145504871178529064588233919646314984444310157646334659367788071207873099789404028600045107870907906516722771187002767528669415031645467286952620174677459864651740470031022433885453970779130248225605133106760720657216771282782145610970070968529025656554607388269262994048153982109746308673102787929209325254448491383091463869771454025617545992673028314885175082870734591697041621750510130486341860621214169900520013208428352094179366932692577385357979994106821219085218748835342677567176120208527634148604421226727247322609219113336925961091124649442790917149774881475725173404342400130524161779836244564939997086177924101612770592142608658046880517825857793646005797762264553059200806561288462872079080324326149128293027618134216840421335735732447051424477939416307456974971218198329386236387981856462628469827415286522735881997412158152955667791417768343696722694768359901412146933712777777036986462954100355245169012781324136506963569365675365799958823484231378389821528169619349623672593396220725889998495512698751431211788276443652015097548632595408426293188024385582363833637258764329459931569797982398030346868431685027663174309213875391192043738641105793547393514031012030671435854050588656085166261687310311439854067824776136577872526665124419375871659924022997091549573795065398820434526093110390331923518860636861791531234280013257670835907857681283435998322257053381106508288294703757261964468625800952854101816915311123726373223815274602914628122902241580126787064121158302473359937564725780455622969827879859377952325902959901327117965276633789415323865600224660980224854902252111454966723638353262525499631489777560908033181451600846940385867182874926832235697117690241736995738118932048445721025969579735562592295861335109372810056702921762078795250989072245893821351314656866533776283399156010220066169198514927864988213472428645037163177662783356175576822595766401166955478017847982799137911955164291202266754369047188015748597615488278521662387971693836387465037155928797160443831575814435351996404026176654593008255707741476422777550962830142859927167271784721531525703410422891803534871487773538545702901787320678775762197278642485883249408792581051796525267013847919530261566478718133881046136715158241924340837314649053402515129200068994450561294773174916438434398770007397988143868212625301533537752467602222452069497752949536884772693857128088492550372866245257152239539089236509091846409530349455658581059992514501864836404984285030203004173994281123383959794390767574964355191349603505843456450939698129407077566242072581428629991535762380624087349718915315395155429383328045490714769452401477493630215614568632985706505556895894773914696588163662452943976904612597268257823927276382901608306416374283407609811177242653506530610440620131920799595266237515923006514684919328164263325660799443013550286818015773347480300859527195044636190207706051619897107989075478036975523163344288315582784596020909671779065714062511302093034401097226150914355349993502241657471849750050235895943997633491420702983137537006219938478591013948011279082658371307078904379732613055922411671847321593291707455701673232327284014994482291021733903390767647684073878360922262353617351203000869625418822927455262034774448647971368648568706212563490125316459990931152635584164111746599884350940523781354185464087220376189118454468406062580620826353062970795970323063101176342052550225708515505321314565562147965512998698691311063675952458693163525838916822134535407348417848332022544427837722916954792396174908316953036930567032328816329030590964981690826102310378177770789977741831921513846915757870643880861782696562991313488889379613175820926687328709134993770119487831049607428201686081574710301815151825718759850066551242837250408910198633393151310508004896867151631771331667122988679034245936181945465723391949269073982006507384891718441670428591278449739322858746727606720486319009888159188568464370728260189056616116404716655919337290620460971487529879770655043397165155519778951143454605623669088503769963429580572539464757582094074508090742473533858159645041335430747999369138031179507052964624517868819469681731390844384811870742992522999302682551946283922752832119682252122239822325999957744646029510229114324685021012968093582009345520412100202696308510662192626226350261559322674880326118114489676744369503958598224501953805291872567236532482489475975345325866259685574218855898777681155892395839525162227509346476726388397317914308248542791769596215976042107063502028893420249591753646365209007188027441987297657251766312699774296681917322918262098933225346101578890262879001143636952205714700457765910356904929126230352846529561946620065924224800693839197216639439449269080912109873102207664046138062848459690806397470696159330907956898143069666260805549264397748195870510263193038036334096979054840897614588554328154738647340249386067597149859639696436519318552619103686135075625719062379111098740372422588287001274658394175025686843414327943260635765571027156286986572896027857262017129528281169722511837768604737112097779652073499556646402148426994603709545236787831557212167030278624804179917848535737103378527050092367106285596780590869029292353404200143951406361047683567324959106225895276244337392761114893284600879269115327219375353412756589847681920170588060089074354783992686308441814444848290412394535956233895051168708252263527416740409080846092293562472736088368041701468196359522866468429129069984466332477094036989043367472034939271183893940515063836001085549484322988971931712938243648707577801693821115591814892748101918145036219850298229575350930357314882171535560503511430396923954940643621970118936884712754743372058864274696905083522910422207668847249257600321669723284907264656225740707473154285136001051185161818645279675387615412470900403682200623472997811988189631303575857982573012071330407622177630328829188323313327659552118975579246470103445727146613986971850359650785800312701572223699603776201337363458683562024986137169262169512874580220277622002202960141061627912992805227144324365867280867344812642371183788544188814442363072120171147892309106015151913274556022138905960628440527252213651209443829278159139801038947166997392274538932145492202328367466433764998041087608301129571784397706155914615666388304778259092170633074397851158290748007739811789969265442010958463528426107341330289333646568810814131039608672408953243544200463628011042571520540113488363543106625109352520250483181380537983970316625943480109989128523479298771643531670864495331905905036293149421065727742735159480919760697031178311316022548064028904231235253254104033973837477933398729845367346011998078746341586802796805251226895182711870774528398393828060143122858401785219726896294572043221712114900182828363189123292596803977852112797561038151937759886783716230469950175729851175186052078980488732468938728814375776925782701344154512701468529473916394713625538769908331680243574785017583214058672240992559976384129124115770538446977462521153474698330613974397323161626656619289092154471563046661794035429249396891731280840064407961697106855335362138293828335924167479236849741136785071482024003093999082847456685458715655109736578125463781100171028684118323366602356690918684019348292394488808001785748544338675614730550468022576209617512611129179216088213187765722938623384824402453749159465968673922136747548454164948255978087147456261050432046858959872368019539789755395360412147720578499584929770542664003108506753509510387496081442042854209416483760218727743057804761405586614856675502304270058662042982710160346139885278468447621465493558301777388010838763815947425240937677199441373767358134574060302210251521179829872947015764704570932724894715118293280801028663585961306776976509560929700634877164337061964732959855795310572473912937980340913978396380285977418948403888231848203619491269552066277826502280534650718737348796476057806373004020613187759789375736872003088985795723152542841512341937581102588212265709871023407515578647425506216040772159728464569120543783298410638640374646373101710541251500969706220786123966731442809271971076454043109285850298603370841440282705194821992116467786747059606889364969813804091639633912203913035603970522859416821208970544062654612526061766467935803064862545124458533974203337986289653544895847356236457608236856161877714445983917443701357049594375214942548192104514644147308651404366279286845914253150726813650090945415885497492433093508399663399952579544991043797057329587827879073839362685229154375987791643337624281380448783796738213599503435119686155894755427820882296106507982741194236922783676342419645784380796099323248501001106474917288441009647569374736023951047664281417263574450562746277487740489404971957932143677811943278388649963198344260545794801209474016170572216655855574337771593489481875178522690532963133114096109016785762109165630025688995525040409641439930131678540755983249775668734093030897838814242864360313232188934220435968928720676029165853515663238907094341187359076446602359311121810456094360916016563896305645662329157074103651558183272552223923822259984752397822453161212340046112497593974750918563708052953393025460973955876076606443547729892159159836758377226585616849141599682654285216770485559327938290456114482290938593894669385225687288751669941330694426801275018759509997399970017465208028954407713140495495627952713995626241542999912451058827615509056406989785648785229902332743645397494184508817622909092168562106039592687940055871986706859307257673090065699274190338045138469296629193103709992149160494228101782284935071502332214712911704802274336780681612616338421525385656181740078263629467073536405446010160955183398455056801986227345161308429814761001915009845609570959967762344648832259474100294400455176019250348410912374182241891730132274697575459556310652419874879964826499505720478672248731959218252618456362166896525973336338181066932220441497371067177976401833705564913408283683388967252493291717462474729387635919989415018913999692029302717324808657819020261618075317186360166742240937124130909453014980798769793477425054822983360947133409610202626604335100541988555986580655082085973159564174446525480915897320949107264479244792530850527653181872819856095753817520664619249634619784981922675395922936907027098510775741762914045696687482429315808651176318788030112265748893335842814160720312688830371602710725347732941193496239224230828611855137763569527892242328115855615289504632995635016040630083201121959456500820418431024001022717068429605236442870753785161375202514904846287587348599716672445512663675643004148537377528228515720013300637280910774078195568323588331247690279194335604545653517386449401561522395848185350333176130727351647212362152541492491531805823589884238257941177775741137962263189904102708920804380980415911700175933919684842731153532033240425853031365157390740539290453681013231936701473383494584200387237118845834210996418095201993263390666589317066332207507140422753013479391648408423490776104800996655753929587296807772434803064845184573603422965355814253579696197875130397588490492863946240211038962618390303804703967243749912135056700793060099389264818724477831032524842675687332874286084459595020264803708268457608054452157023256693226455533374225417508048110595670029040769947889485602613503300542040023334155938225819940472424455313303207061345820265522137458392054323598408082496793171432267048978540260030110699453093034304284557428400124059165919835345302544359338627427327408569921321624308832334476808925349076953168678473766210694982610335096518437115788735129062301291916012639683213830647948305658343183047670956309989586645950568313710140110198004611838333688140547992862227112599994066650548849560841486632801403722332202613756705645566118153921801319579480351590680060304591714227044126313923747736780516919251915595168773234930014837662943685455127757345507657708232531095320381799308459817310584106364488449696991452220444514437212210783574955809807891876981340706110639072497823118641205323523183224539842288864631206090749485845635247098318713642739085527587123140393126841856012868829593381268380254858313722235993451083968591685578731263142179442627233257447671993524453588597418609582932366940948288236625899438964220354464031663336564464718403259262318494751699872817571224982006673595711029215670894572128972615890259324011131905761314408181033402674139251513308594961502338756845467869728003578290429650739355580808030679737649587097176897070236508716186818115256038438270860025901287353584319090376164298504744073225195855725268049705754532315483443473355848501607540481854611695475072110757653929530655271461413902798972821264635398977954008753036392359417268986738474678025047467286762606351339170726512246961113874401264019858133963248675944932496831135117224621667403263545366034622466226501827352737723402627327666914298374726739502185879737265353988099892171327858899109342168200557561147904774057385249928347046341685438269735532451762798674342654966069153642444075174075111769376280639671059586198821005127729980764705839824812393654411626559951368396448066235043978782597033090050034627318417067967964136813139935803379300083306227028380727254216373560509133722434836196816293892836774066249235027856234197476534318382059027450358633232012282016452116868563744130276890197075375334165553925038848501663644791210643594063719378663015710642891102975773895760522809613789766493352831510169419585607777207908208359949835487958044989951102441429311154877257280551473410656473890147967010401162560380272896569625115982307435731524656332660765980529951814731379986332501649789975639399152477857149669556823588336065449296609766559999063177417065144369692040726013073074217384336375922285782048949955904792839405563270571598879705762238242013245096727085836264093607654250603444896432210151661935687278205660980528213294393769962214725356588736827854682059076593499517512058462725032364679281802215124004402697771772822321319717948278325999294478815854210179192832673223303294733121958013590823131814139594309766673584088241680775323034823898016169827661403648690998685638908082955794775958173655892680726730653533350095973398101845640668404909450954882664261917596014211966077695164483572888202314318212825852619702155308000078018307894100608262861596289850744176141794930182886069598919614148494528160254104734124850132694207228343681444602316819706253150462690519552258982053063845383937182245705734878454214340013567595490785945804033706821691541385107311700424589916213919426192202214066255094777902521941470122542340548092782304875224351230624609972905340253054139008863393446233466261542651513961728406636567883133191544623567588561056110006236778737410207777581128193720885125115419684055042887947226368205014030756194312831973820274830537200312153974065664404632745830204289570846933269922121769298360572747976577815766249239861505327773455081870161714284251192725187480654866249601444759727435668270367022558627466612680295240639302524959890207170696533390811067067049818463819226093132439103601561312299568111966731873710526866676087534183403074184489064701346121858569275434917205170740022869294141240281355969150347210577537470364121945518204435662285862558143827793288003005715651260294487529987230223598093673306254823060958015306722775403985588738350866929073671075773315086075235052143328382509453750491014844348093170661163002247111534131887399305749828420206748941335960104791805300905988963734137920086141005917687750017382015090047331346230803322478430599038358912259432967252391211940118048502035569978015442667240701201003610219313714777474146581426349274092594245871244743433825925548804458640650376037924600156853716552343064759836141019450120473362063086613282916706025427445495337059735156371893727113387149969102408685653299595317113969954389391025503014119511549130667692945999924414709585055758483553050448439006909880661557903466538431135589740061837485461673047760329782037815679427286824538484094841983256266161394580271206729753878109567755272047349976088404850987617841990796347808502125809427985279447290200487061169782367710699339090937823270602102990698575960143989567927776134351747184740886268527963424069858843473915221787856093958579862833373616027835058569557412023545715297467316362717424373863369282808163032866302644672109334655324389506813843251252372683578205640177995658195122818128806321244352242978817075523941010554074617200634774585048711613769930292550399631113083158338395543743404217193986072281016159208948739321635996633177869761470261284489169179330189889660185794815356024442014164645713363211578214632873728901477730777652176218401782940664648159665997332911003644140047876844651431238008173294547228267860555228176106699662186242335506216420478536535924107749940329262590650181891427322513323592802689711697249132927708364072691144739861044468454126578163584949985174665787182836823345080697422958635958118949397296238646911337925083258595611962461850711475798074366967787626876450426821743248520731141581347383388814662693449053711818378271675956458121275464808639434795657830420250933552125513003174636646291812570248891621340505990285452553025735793196027466472959709294438215263427362759232543414605037213453491716019446477978728627558636107758952928548854002121666243756377610075118670088377561498075557319414066828867783796443340586499159149495643176131158123065998181026482148729905469146133937356825572957109322617696434429266303968138898703618761138201862276577059737711206066444252698903430673454004157226548819964124611656280775258963775606649169485298100368856578679658739484638044638669883529294570749753042871540841506699792697795889189227644168399111223612776175162188600081789613605835910423439362963041033283230154963004559602070250279048480168023009338274488532586765159243862276059246868297938219288858361754602635090932513833337304043575827710177159175546006244217183975470069174029462654526392542140076597298074603874491343865751036419466577645495689231074593325365111544402321073564063733197920461088451947651329029823792713557311717609920446159562421753515093120179086786967268549028838729842759165004602801719370094567787000225306543530640272945441975191986185042759903205881606344949907696121027061075060910903366548352117466279410021144367421940108614093768250449272485707154813392873623595893437295362326199219649548685146928282708821636915371967750292478478350600991261712085297983344393949685604428604220905637209736079617692880659837372296503228231015253179065518197968567565824829922657971303978837432554688429696969163135330267043030113483652011100513847306143109828754546187179369764226400182912240300298880714149544524171634067436153711819823726610602978889806122554784466137454379740086826420331186508616562568505751594008236549784693577392846028455352861245097230374071556727243655722065644436034981297907498477391948677221687656085163146807374230606233250693587522160887077432408988208871385932206211001947248416537834795447126575080680184201150932989171841031686512130166199967017250823345370243961740440794431313965640362050195035152745481969975010946634157863246268296597577257598305251529014965888284189007588597720931356275244705515188468853482010803689597138179269443599185793115736917864927909400450315659464094981550356634160237870889589395423036151778936294649450246238658055253417009835357781583755060241421915540978904948791879052857116147567336075308159667563903909269538292788038581240566196804914519554413531227134791312552255426628844608443700019865299713219398718581587543368116589420955667013351085676082717730872674944001237220287696760270343498319572348585686463863182835200224223294727196214188694563706450763656581726621649058219432418654406091993803945638040393678394277183941219769063230672771353420404290835766527095888376877761539842464374348993980240138936647637894916255955936489070100024051389484118800055179137637505735431642145423752669813723320268677561788273964613097248708149112979215570426452624717794310394284822854768868310019005286619245861644477029455801542562466912868285778974711760394585617528985372111502842208044756918954809182451769947993255125183007034195398572481730649130962474729398271277695425163857062003603240401934422271180859208849628218036022535177061785496973963112333233468232232180739030009917647555922934677953598032610791483452821919834191715889486749690415150795967254619413098082691735401938772259191129056944280853437474656731817763563571672172522412175488181640251069169338584222347135399616953177311028636320425020614253294805448620700983586473808422854922388475926947499182390647777353715426694215862137346074993705492509997432507236724778955940021493671061694111253937533657627902701324238361590960022233937721745098064404602721539120491451133418596343250868570941944997779685518630871250117638985752813763825897973928179724362539415116720926547305174150779865542527647718379308299363916380101170880616499194669403881101440978522050675574199575689338789558786914678513307392623900666398059334428143842515831543592709630849932363042804716123418843006038527180889833151848899111298302345902097925062780842081712856339913140604221852623748810488100686333869210255164718990721069838236599368130745309564774521363661753204181919906162194029622340627199023002790036877123654458623375135306605420309659389858456527269772986093622793749562811571912484403649657583055801663448452961520249629016719309816590003216757030062397047364274551498266799578659085177909963926635235344054725685295743854646608773900313259362819090346145005976400401525838158695292682242935598815453437494545920839500580867720264143801774350709375637730732426252261964986424955995911795170692248051482725541825625102280061495869036198227012421469195880778911815439201043131887198607985993362998554343666245857265300655579297565607531090507637024962012568245216960172024812989690195484358713765365938433626396415926819552325612616981692025656023323095704840537653879019789135176956925909184717156256459086450465498152680366837958988290048158350119331432727727823486253617996303915897915714294252133166958278728521083825363905102060700492609663033953637779242438890668585246175906608910571296139128586634945670148067186296414884463636139198428541730261344130142367835968815885518581489915096862313822314782267935726208746382350887947620729029827148676426221322623858341342568707711202538974331491968744169667417259710492010037063543033921018781186839510368175898199605551407112700021105645858243662429015150119529540143803425270603041941501672327501182204097491192499344884999011203887637917570005331542304846972841030007666105358538961152968957115007131061414739374004113014484233772197031655683357217113210541927816208450332896243634277548279737104764405823185399873347296937285307581316466684384017576002284672290188610649360154576283751119953404140503193416333619915904873664848099878967317171877996282879534839560680607111647064900582625389298147183860698506265627391572811728436533087315079471008649076941186500458137001327052943947126386662458489843336480183005549184234556918463183912825059585364314075470488759164188381851268955150959806709560752547564790524884595833390450028034405910141123112745986562696868537258726191847068115609245578681686879223852450210431546927115354953284427252268582903671853905206563938902408563543440363762198467825971581399269682508684336451732989718414697354163800488771442322467304235567516224686633930509049136603133092243015888015387426017142496405498314175731451830686565868707500781666075783366977312853832158665508617083753459604524844784241210758454641783587619491549972227259281099258904447516178512930901338743970811966376819295154495432523298083487377281266622753801227168530795275497446775612811914662991906475843302578926508843720207677378621697329099627651083470769083064433818839395016293789564037595220561009941448678847780386541957722776072421929656035236615785238975895446740715860585511040934474360212567920098989561907517977583648896135248104560823847429362443137810864320955553084599847515949183637602568719064117755110168007197321756150787904769735600612496074235748695525370833028870480557165804097864278853587089363698250713719257047684760227975510778352434807987573923065949333834376071677819544858890052610111400943068832935175630214699205407110392226481850244424650212466386453256951583296642591935316376066905511695062156487646309700427173888263861962524348217835499678366005029864360683626351358742723426019717465821872761125914172795383825353457095552891446947796884010380842153852280655063360836561824073060259809786203915736287508558900347954387836332161121749890710117831497539829625201570725389937551196460168189238557684073306731003194386978659430885178910366612118792613514665803298279345285279593488804586964236581150790824296598611403709172008731083701398292775345228956270203007838532011869086333817238532009863185399089734533436142748314015614792361097020610117723932832231702199754138798119528798832388187173297421720549862157942690239146046418121310909691297966146646249256474643141951175167134696326765191699652120465187351008471919231326445494068248066962939845645748389326696214104691907041508149207553109769040080929160560095924744951773311962648632035637493046387281789487398926757907432916669280436505007177515332370513712963322266195435114835058336459297476961170046577197580806044282977541360638158820153488545338373301643574443961451421456968685024204507720068827151795424988911916919220014032283331361859464012209193456335051076392170896698427016553786022539320805091647151871900311916352650732470626500184329694937415210490379822341224752867936365503542391100341303930929749055759023581280980500600004257540666277380974634897356235827168349590010023760864845405500378571462729786661792317189308467676167863703719381298787504219973209709594553043746147388522401598185874953004981148588552700243013631896568066271990924896739867082037591479892653888767875144629171650635993780458987440121082137660980026895597859048079034314796454918940345074252371533432700229366444774021707757527957754324818702740343231411521663863517202433505405902439808507105980773524991184336024310652868109749518623193209724995084267091714158736842025514826420039775363285012528266697158033675611203885326107671789274191721548391572809482739111682177835495373838408578421659180893657130173267059975092495863003236658436478975094016326317041096809911662049515014505887251537348523976322894476318703213101171635053855380059523074607211623895422579808226779098744689661351698111327403755797709254667390862592795094709956205542093616698035249984522513142101659138446656047248859324896988895041089022591238561463861172838843718912523361609107071433490590444961773703395765011835885889916420887203956562113890607986044847627685960106616450733225007025991206032963752344540999529476778463341374966128969626514394152133028331772060256629763070274959234166259793213103024373893637681809848603232255658171645690657565399864625389192435828920799646423465299081894991215055497211297321718091137760520806049696920685890048755066483790629839083203313218640659680047471872226303423170593800647683514549059744582260152262553569155828827643945450739082242007687175697863609789021549515871784406189783509923630708570313953782508094903257796016552471236784524335896611612358182046723573736238563363040217653152027043275355547047025169670004624085416484848296276197485468215986689682188671119352628899166504170900898058559358838682862898459495873948340797876878472728930686002334892180924399981268044257840378936583407309588585437543618492939636863089669753040370583721188261789051594081958592274056874042383033224177635987163278292328228684474204702955987446039330145891373771593242894072656726995357460895905755500550193712989581929069775474538962243890326694378015859230846053447093140728663232522691837171514479515996622937492161357548420779171606619326631856165711418084113278146459014363074769622209391514421693901955630067248926961300645111080220829375222205718490188831923950866561515644273595961665319749109932970385372025456719697697541821508528912241025711355431221445129763552524918612280587788744117822239068024826902671843370563826255345216271569992568586134070446547797117388678576132724413895900697900941029043916318912437826720828343281251584113750397248403772990969230768289944186281524479854820592931635055707282628053987661706072278111934242764929456942958617292236541223976417028558930598800180681443184056195664312893856870571202733072746926301663854489733855892467406960163840760149244186799218711673084999107372333332870199016047620173580546822132767367632034111332797991798618108876563094574417892359482685103584178924584568472950291102074633121196262704309483451326919587124637871103453070042860062296270265267402356702737942711992908927606117510847398592525971936034872543394482298871634427738978073055618867675942956585051865232504408698193081650574284194739683278756242758155812930714411230126937726824535354140768341513050728354138005394934701193706646431451328592140917806405334122727772817501006604920345720165296259877093369427775564829544399123582565481835588411515498779447795677905766724227269810587728660398556702093461343068651388637747613451097013125819322301921098845085582109768053640916585525116430423772749363194433859678711020693512170573924728932658231750936270589999528560960414537361176161639833939119846832218693627185708901323384105237567562341907960950240474281737333969955217657517609637814273045644139458713709182960593098682085359620798372062713468626132540087497427553618152330370936113321717424170293047738033588826753437131089657804343177111799056433561349082949188845780150687795222933954266323565807273434408340609004276085964445602699427308379822004070520365004674051621771103431692914574562646855682716823983433411309111450518881856811660318696327587212263544043843336244011910184084169759927515175134293583260812547576888200847253856606012078739294036087299642049912216746907532119807487827294358056331456925790853790016618149728131678481258417096317757875528732985128145999927280214979106321745237465554088238490094864624833310699372645207879017022600553888279274187291928166315513202308239214348176263614249579521001139030117392851831356861053738285916990012636774770793785692810091877472377362931455297590948838313564813129786227259065561826335337679222952479490398556328161764852843249437020702373084226557524795140106893074547507354362854533271726387132548324818853223284336929093587210474688259578224837277595392687513544555101926967245536055546289914214397918305311449288416591638806665800695226773736569447570595834654256377638346999057599754777122435819592945693144531863472950398224740493218863445612146566058243223456853912732399541670808574706556740516604314081873663174083786827425335632286357287617357393934395003548064865405659029940018496875354210776933507793402204842123764346071283898670579887035239391727084089582769978392792398828732887740622357380706174728615111633307773847178550145647398581837528512624266620974457914083372153999481949488993495272279710079944628682164773968518247630116325430078633206649730166989633221629977100482921454684959395636711639723744975556893191537820052081854066555585400028217224398422504427053889368974837694300606304070519046364957166490467631259787664863124531124127914196397133187636986375373337329516173294933197144357310352099656008165764327287536464453411970425974267667413894180247816898578811370739560987954603077146616073471228423052250610199093287018499061625734149971469336825177458136337042416855626428937861699979787314117226870794788563114721242895216508531108076455348131671492636347179723232295298901724771772357741335581827702257805744770952882985375741801511032811857630014472307930141072108375658859665796177658326573184574832215286505960646889299178795113912810106372405378859473883694126977476915563428385187899383342321982637879490392855393850041311644751598558046750681784076411237908647637196447614409567400414549488795651536746609114029040060025934391713937689837819225546844577290530121950980681043482996278299576542016779773305793473255107811250348011822635181574016457242771514625754596282380878220407351775521330610730429796807538994289929747749106993411270682477696601503245359002488518335627606277274541194589066075300613635204105329899639877609595638115871409909411470542353348996235101650695208220361858881961497438334807149723937734642191239562682683107350511997415342191976229670356734218361623771444090667779282651009747040414454915028646572085507811753647509678690799870357962763715060437017488688967289854880029885866178931529168253463000080772429700020932160296719399918880428728952793690622034899855776426118597882010546087524143941151017365142202136528998320272228407131096221256823371047403047398633111590098901827756212522261349708600835353520417926856557785910677169382019261129482730103160975934494634386628471159814021218909180535102889852893599754941625118575995323389866225364621287537717593159329204769185846168637527666411768501708294257138857999122440581109134545545620347289991931126887341452953970849741090071398511884390080553219888001081302363220704566727368276594654422205662821299806182277698605543620780749420662894487180119457050840825328164811841166249804547541492109555355219644026814942261103259873030705719764827968062666755757057040052745508518515836301979012965454781134158635209921088258319764068309620023260159190825379012676153547605357772122115086298420463652021580676475440013800546105671875082595005823615309633835890371845473196210467880082837151042558323308104824909298835772022609062323911334399983911225315301884050055494321010072441487474748484221832854286472413408145347960825032864418605607459088224808341734446755914156264054276648793613501350003748865817856596935416167895559145729678992650609745872036286727286219730881757026763141295618606836231743913916552766251971129915750340640923120574663090927511908150059619306861964864438742439602524249975799267159440891975165498558621637851452350274109121026431316924672288059914179931341852802798390130729707071592967062571916579388920989145286086989625677985455982605264666158879923665507565615655540887904438167824990246226952299616041050353153853380587326296227895049549107509080147226234666734797166363997128341884624941206667844019858215745261197533828040354679684814408644746042775098689190638630954643214781386001520695993935431349757309087130732163575861016806787294087084483994088584440360454677245597613577754174612867921903266206740323723366804259327491316070569710659104098994635837986978807219488734051040197527710516619661549632290182237884316522192856792173057008384192051462009279512810856174764948180933935010596425547875586464274996193417502776077370195914635084179302194142435182866900326473405859723859965353148689869246798679329294449774097140365778520009205626788664510804841977680654257205730839403665347168370869866774725120309832934169838408895672250661460835163595829920328838369655077863755644289450000722773231430557068476995377339091832592296097810842373538545699270572825504206631457950682708043680321709726101821900975238570104093411903787395103402400239303358422868673519583031226556081595515017598836434262819793463032948528706288632177606877778529425493903484772408712599219696145815451033300480708073373531223364827934075192110261363311700234898474931200005038806403005494468425223439621434937583433160743033707110736182054537643451460920987955277245122787194048895117511258923247960746576501324895870287982912502221465445289008842585209941877708734481434659867797235566198798130453545701614406570878279652650428235289078218225977784200895051150545378221297801264222540060351265419880142382121573421905981560593877717344506792270503718537867632466081872740053002817358597482888717151656662879978578646048206405931954942907886914437279474262566532633985507638602718296612720856136144070297921703817092563493619540000702056595885020682440836790602002646780461573712546764506326736332593012605142923776567720102342541515232756273107784650476626310014785881604917850253531307617832400622693564981263394766786171108338856534958959232390923801992764292897732626217577875418538113028980472640080622676788747703781418018015569846658776248907000736643306541714759764858001477873926758972148828114357970425295823087761997041868123980615971737125855453498518538384736419680258693577223422258634077085445312951758333949079558284006499804653812411254160273205193001892695836541654448604076152528929518677443387669874089477825885698911047395694185229447928445623234594525177016204396822583521867458785990996494630461802688753889003155717966487507309016248895675061838672584470427901895023655931163222095023087330271395236622963866280862665150425943048104710102391749656176879941755633105964043749395235824457756544916122869902173470067368774155619866694354068149287400898967462131486914691194595732110141735845246397677647543979376909275209676591644164769785010693706180972266111718542369031028338034044325779417774632356145650784860582879398767249721971107571497282242312642468178754786485793286707468502217828634160213818269015738746792878697600616345898010616907255303311956761411520421024237514072434726658302288632339938980092464932498220015339546819529046276819019462975849092153687700548206965466078336102202759003073146782456831003443316746452968706858105113855490273173132442037599278679948414800548073958286656434119926305702051012670165631263224976838453570891508688823774519307585260649524399686435423061041889372380620885238990034148656919993482207534329469576997993633926583346807904868437502358718394919756369595964546307571552334501335275515527776673548853582398148642268283922079568511681650828417592642488721545947847820425247185632339089039287409370167183262713294680561812424284981224565032289681345242367486103802453812177903562309696073025544181664855473220335299153060946639295029587951065101722857897383747942251646138738249500775305834453247946341875990429810009746397410830451798920571008738153328719070489344811204028758961151027604575491576108145373185307073252129673493823808473790106697448794183931879467800515176418946907702913014643582328591305287648515467961312754224123328834156837885097411155495664026207502166739097552688935961111092021300878359636358451779300915404142168044766309166448947043157524456127443033895790400525727559109235150552374126026780413880053822588837055571574998952766269429038219878136167739097856752311481543800704756892351869907603850873895923986094486310703416795498444337203536003892722085166380180373844827098723240235974775750131937180809980921780656686572341583766514470622706412157237722594330692598040237892693768809636303616022417367082806141317790885806794069510677984259003108606416725462314175272153173721967670650507702021903542543451895344351350952088344920409224374735093801477013068843691163026071311224633011354457822626505778043150702056655437321468688729819970975252350223174033005089263185020677398702498772245425721023634769160041703257591075251328427285035573415388913053309072649347267695077655856173812717832300712024597587296619207995795682056629636906523006457604149038671394327271121519859417132475664242577365922286759671014170847989500244608886914749685133553847384704115215791492779191186775598102360957533539944026573090760391468133856153483872103228388396506098609279224639063474000012825294798663285714920677851001108221870700420909113875762409841323380594780114728922502903969443331152867050929297268612771128756156308246367367265907869479392315454717051027571100877585088335287802710374803067426720311850752123176757349020132441033265904858435380278999331486308918340611252279181540474280678579787654485412817146123417210250445844043671275389561003156092258031880999685590468838416082931701268395753352662356264187448994386467752266372581364545340847275274815827488964507929365805899207974483308181184648329493207860559593378051851493078438017670799880939829036155653785264377070195010032407720740558722542580618035235284814740149482924570471432849122187430306772216227233301834843275831536716418542606914340431356557993006847122252119507718962822259173128398753789183953915807425739639788417124908660257661060795725493281776969225034949733923559749426050552561392992698007452542354525823269167138494800773051788716343658553729186809168268296410529814335771128682075128560291657969205599454192305765606326818610814998010640272434374622364816199253251095982060762074075672719981305285801292746364965560336943410921641221265023938052390130920121264502354431596929273514842354420985399764417901751105204422147669836735325096011651198410959888558620222982360395866578906929150598241908314251029910256650243642378732031640623748239954413182898036706308985261887011044826389295912266801148860927370553638225122275647136365988146073976072279756994916397817348191214399845174072839712770426709464301846660492746281249772635696960592052767925439987463425249475948167524530082295646280247659320277225562232005907315097091076269451450992274436586283474125998409830691234574809774242792569072525055766416760119704623510386179460953397575092708397131930838228902317153591552620536830909927215208768406181519599400329484203292180139704311753323407034264835457777785322698804173506945636051408058269700461506937753905602029324895326976333670853336814544836228788696525384370356471560480846285528722056028063048464992841472612427435244295164923469581621748144481925519190709140654444093866087389455742597848130598147900524332023812136179207594028853163683141439898307905106389069046140624647093878576492780669615066897720827608800183174267561032743187435269976168811250775100951965573480573269933696965706617626008293496311042227921541364352418019424427455353984789871063992325044471585213636876059600605711475779276488321835610889237631556904148136344879597347257453765277160684425914842555925177121715427890421460654744652010484272766789597005726205586330226519594257931085975083350881158101921608401301963100071150054813486897049719440507901146002896875760497277877987470114461798273939234500124312073065935794422883481149464419811958383963960196640212490413566598072914141127252696342145767617696259042338818161123338503159416977025508770449544214643511794799615166305329414936824471664904170901434222437197416735731683622761130426160130807503079339406014326502602850470177534699361193601817104629503321964917035016798949534508091597012095124806840319905159543057326692555926892408193809766486090071544249069282510297678768406603857905623072350994522411949910387331556352466090199078920986832130675690483179996996774033010927796839241927524505636052635970650441072569901387186349643780072180432067827271911307169377915081985190141792375151500748867905579172957645618925154714539116722398508727779567674991366871814756704491896545217507774473213474837003229467057395075300354905392887042939143495792871511341505840033489452779205285325925817065023569786705584797716858072214543081304591550805024818934171926062198464267846146531727235448417036738555040317812551850452548738480860847900140102169174767861951774560924379831020079630231427025505160820630151538729271638565609913311541846483731833274019306576360137599374182914380657807149364443195644282375692229689875637519729841951421384600297942265560013918543922859865500104996794954791679095070901224046348327377152620832940278665601322044116765916317259315608858704170623370208407447963523391761178273308383024957442060136648617835527646792274793933861290186055132129888247466885240246111795657960457077796972566096353891724026120500545494169431049037383376932506764189816554960217917914464993712188629531236144336823595502661075487464013603878026881607603866098908219538636202278185852976029969282312385989367082726653837379576060816571735261688809300339070004564160608601106151675867167291543621169745046571110439985581259161024422068266359349405439959271919435456994520685981331067417609550701797394104721127696882157952736234555123450707194479633127601901310611990873274907382642452433779011544487587863656872525644913421786216279824735931705025806577900814751836736668683075450427641691358658535333543251670276192855789792215675009818059910925651010514415980659307139882705957292400608655376609723656153655060926217965641553850882368785700680073931719252863994125371604852401903981074782262425792995271317807426943147960820183052554904268097351101166187109458446614127661104272812056678976119325753038217199770585204594330586589754018388378835216779802657483264252376392139251809363004930742299163440825631920812645944375141266379968652273448386884536077314683368158139048067733520926354591759558290419274487900547566214196446464144350894535559485698121751423678172958216191512157203599884356480284832352072433846500597829046924946813397270829968749246567550888675106537967226420176219064672952918393541438406774056161946997292931798328355702926444507764633981346258846995047154262835522867026588703935824073253093511278743332203952443912776450325499018458618228749187622521034300714959629549079899475784037037787965569823154751703505600175409325235583808805809295356007558222988877218538925766881803107477012804205340987445226270290659032108715342934373280523253668715985389503924810184412526933880416684710935912860287094791262056926080177356360570288489214056166498888623265773305773393927944805063627027172213428012701481674320691337498728260523673732226915404368882376837056751226642183120946105764783667759656597328368361469976221154915889009862518304208076476454617773501400030497322978325368816888095746802563213916658142169106229133147871763471527467804060664710678770404126482930145822372398583815390150343299773648435103127666199241076469667689907196972253548515492947650815908827328033833362731206632371362564696797530493082744766993481119304983845789258391755582871066401385836841807602938291168026841977143150635555226032659303080902139435092260701231195476049277695856099240735778830029459766175766855763817754076885714133567096537417597017267554139151594922986480202986396416293872099945971091415753231263455438304112959144774650779687102537460585547458808776018089974983111428060302070770065920260607623195876822719367219092550588441493689328813433242217023904954727265975821134954626879144700783871411595434099532465019210424068013451375841790293952506719487187734275944870469545068646104055919605601555275249504939139874199262893440347490722922646221347836182092965461474383844348572581793170340811570090746842274803274506682288549654349348921257818616367858551895685710743970839913842373402653026444024556211364562182518563691816028305223544734091937463634721223550669645710315634196316398217270203789971005163876781998462006389578434597624797292928310333685797656267358190590563791108984590123293345834458789571880490693512028069753713565624037113487306855400335268437571142185565562824450990166325035213631750855875246238936211758218422658322938660977297008824497142588326533046573532552857245752435904009733548424445538819262981530060699551381738302721668999549145346374585916726769828384104817315642275464567316849727863506101022691454407965204313153763401455849198842715589441369658125134987947385812010250599903766738458672428418575873046874920038957938085842091846844466954407016638555544784274753825287175065166585368609959305908229297679994125064694454755000189685459025856482415129687590034765436573891772323245350881424691059165392316395510270531602691563464469395910247665778040818600157386199170323697604375763745034929643231762584601503230272372386434362557875093993643771406240802477992514157188919687321640421920900255828695320637653972724441807643369445895667129507311139521229348912747158189374292065539049131622347485719733674488310812147427937964279659679475914721562222780718845174050350439913435377765198902931057351931262313453383613642977573048037774321348009626324814322487885737986564785771010754491503932129118816970136994161432381281734473466847524437135626844067634048054842749741752955622944564987072054799578132249235933255364813521527878743991521434910935934358872963054351099806943824326260772401135664467597173504767894148138941694990660844594465105186331158052964564204711577575443007185618856281401133501157677836861589017099558876034063663547273569994078343248159230840059525507494667019413870557248320239880141617089895753664290181540994091844753730594154586303459895677244491840557920588037285175697836669825564932908065003327048464104154382665157998641701706592905875515602820225055808973317881233632068779680061159602422062446660668220402686430959542953709229711148365467843485315824956236908311363651189649196902221335174623430163572982154300213790202066554185868790083096548201807021235560724565999261716047838908054529592963039479132480685741861449024482990380693155627107920114624111752119673467871405852163433500779568304648530565736421010804924840487459671601355271388311310259842097419744876031324435694543098306447440195780397389006798574357094607620231889402521372824316596290593952911979213630106543502651791456335221731111334994541205562363278752513817706473476766801883964157124207339852576599792179749822375562086594241544604678073073517823544131774133044731201863934674892714842390641107468488214574435162025100405861997392501343577110460903211565592209764071153301449112646709013972269827330118329788092397118370842490053170485849077220727853021646861680373907505522073017186380800611066719360270127988856674318142973307151943041326868358786011382657250529293021150749188654159588970528602175736724802821893652871033809964131526335153528211891332811991691638369760522216375404697380422428575067330552710352391753622626634649772521086431085736533015405433394251274484134618393818506405817256683202608247828265942071886749965075870028734749281066331014602738440229615052023401965107743163203012382144079991691022768523565001281992416510585147212497933750250889114188237797025227614253209812813939757464485331693372879281206648742770120031089681590735355655140932851230186128268253201141519160052842869523804866898155759199650748227950769429266506718639707776014513975024839513401135704376984425436839884937699521305385499086682993075582504419969149808167327131547848216271707677150927912852862781275385438704742743500075685058911369688932669046847278280832208373814557637058774788144196903323066135525141794882543225779514257675297998205197976657528389832361709988433917921978687458209793710848584587092936900024004757696000541028100006894691517170890701920150665631345922916314719517442852652165539174595581396209574056905401059897857042309819749515318515952691008511860087218855220345817527100148146686776918106326841520823018917810524395029326600651052413676400544128285482293135817330717424033269279475123516100650422524408594980051938856771007160236134347427094777465111927826667945003880297883505861110879012278567483030063647260732836293620386070837387514264580005812724593755506941954135930913975466627463833058739458461075767542650808860441032584770753595839016082958834200096051869915753664866867069398826984066151737591977465070694059015449581997200087114855950712875250872544626508413389086648760711112462565962483292538113303521853663888608096390228864075875994795915069843297618368028820372878324678279735994746193472162337900508510043750296835002436359355310462377120673548681672700943656110798878455882958763945588391753410297425768311439059545162216278722503157652901371252573876204002815007971796078939150997236775770989874717951347931254388437147691563688374317863372535642769897748401091063909136431274168586325885826074176970779642797492785557735828293959470884146953043646916581425886810120818879915566441985720585137040515501056997916471696707953078436747098704711162158586492911339525344751832648688896925737200397735307455716033201211161158519748931501501442873308095754680871437935547000395936996211788573032760469001230187646027556707876083187164985923977498210562933056708366646551997996962601385166514383234653103162546680627375274993181654189602433522827423196714188973309729128423381284452802531734039792573035397322487567046898126590574648926249214742179904290628875959062704912324199434020368362076749078286865376000948997501415126269283969335238027927951250715519257587424918598249823783589976307902289530128961571209404215826187165326701830598478602885625954778925198002306260958978894080751390768290383066870776652701964723419682897050391732306615780254515280649749186586730033138113466677540820849244634444516423488916708872246465498751844804554534809406353155513975017812125874087922102601101533537932912914859855709972010820324669500409507638019988350738099581322379558776154414704989580642445871335828675200725246001077744454138765929509211297926520515334040667471647504057921811797290703634528786900271367152572506580672700863416305367443462928475315366282946461750023348590232585883231662737058555725967685642641954125024289775790097233006486223865019732672286541113303395886703646887239189033861650237504868753957537212916955208237002941532816955998335343625607629524829364854586708397193817684858593561783829647075747748700031311611262428204177184251550840043032107198097052240035372797296953282701178194463300295547856445296321421622048483119671189663197572042676098779623898872107318772322246076196345304044030612683982910600230392015664589901744049903622909919714445312599261251493922746142614607373045093783813716916127784035307720520932049348273042104725921300676561877258837571048130827255608311855990207136317605010628966324031169049386440512696884198438463083980399313566817854544834916308366387132531470498855413061996018232903639724451471264990771319633118286568497413101614104828767568770166687683246077657938988172794532897885348535355844083489816014750244589690455490741222730439702357335069572110314765771412311838431670697024077266630366624457449518143732473640645874096126328159887501767363457380127282600559692951383418154491613980121593925894283937404179452194336328861685695581941104636634096189667888162727729253763752232917537132507088757615016342522141034716698266713501796406909514247316804655461865020384580147385120999948432824016270751608723845386028565525833303537551006990737051444376177363582425863821684016025579239799160250703437838114441603211549495757175425126658390431974940585444277441454740281774377838419494453554186684993227541526007912571695966896563856943724679985894333721985096208020620585611634837975227005107531328918840340404447677649048817463378994583589173696514923576739180277476421948897803188953414245890277597300741401527075593344725781053412707238203144099166792806444064553268774033841007341595740061783706328563874619588380454070852258257265663558418250902788520260839366760197551225866908208662335375988835605461290825281586924514640533967340568556034573157207143220236416626014715889442016188196110243150490963068969333617021197666816032267538133989063836481264249719933950009932962246313777067214253841626819321954015115337612697511380960436954504975863343311569728837553304576209331451753705395808271858201540442414988187431832390454262279069544163868322198449620762349593318972106515091331952438442210539236208876475027940100002607054190523293891508557871677121504969038230060072510957051456442954284835830271556960033380836897053912664552965877250719412645199568742249030765823933292625152570858706975330017029480193060125188559475510414827895906384553392889842233460829097159845216913466143767214530294505033022334496819352626921301595400936226323206455998772838348603130624439120949358201538947375820160782016227584949272928044537305848816490038440818452033855697718230053177867159704371670661639275386171084537865197162128947069098469394272421622370630836663712546191001311303264229727538629610923069618791278151264449009793143378119090996780099594538953782691181156791165398050348063728167108065398808188499641416973555670991585281622833610693573756296105368242500749345598051269572185569410372428463513250324140045022853411931687095079440163353055910928971515086600924880849429587507823654126013541323445212555017022889845136351421802030167027103975562526318872106442111958560478829468662565032220208430807182023920713614401350039800410909079423956352989448695940339420017452503757086657409789061564632272944759953428150562069384392892139310049795973863254998215989887760420528662753704596763915232326162695664972679371974491668204567977717145102482675649763611072952170109531210675037540542463364522599504071051713653747585592876048705035476274474501948814219208294602211436441532956936954946832328016639176690626186468915579480211549687069344795808228124836676899593064893233106720800417596602989385043591054382644439695073028306021667415555292100564761575903817384235542103874209535874421000060346472639149004518499058189230946393434432239275370835159574045295606932601381908181470758588207406340005522413316115695347254233473892616195900301381203867781215586954572534021186546260504233975558224666973273426972026694662445853608641081714632830158207886754035236474748865944184997255380654903569119395208329905317888046367802497709478784455616979808009065123627361329095280177674192785282263440609586860938202579282454637568949760795513106080365715033965277875318538350916032626060954673630770345777351706591528791088096733334295830222433416315139639225983346101854691839636114407578351977881353317631058920003055315926924446433721642512973600442501967413370894671128468943648043801859710324345637021647566215246003450851187848227770458436293130645313478840776756188671655984452929149381230913461048527669426424941063547238054771897543669428611714651415676357971550540488785681612237117750402532524938775533491156930859861472028402507736806149805592083461442747923274386171105843945819027074977569159184261376566410085194963913916828658717314047906310792914162964954226359934365986877436225769489837624994764449273199522587064168783082604798381188212678459870051842758084065039260213311269838704962009464104815996739012440378989696578562941097682479817404911637164970215304701181674451019367618010411553381035611557779020122874285716032606457751406649147746954157665933346389221194629874845784358307241279926075637933924317646412494036476480718930723022502269320899965900655148084552387525435762100801148755102874371541350659670539438326233689042100887151540682417988574624504037502493839495114789738073146101199759723850291108604798341028749120657315930312481794377532190782627697699682390010726639799187266866802198458607336676588916500770290744428174406016939791703725327101082911243611690948636760611033731064147219169671411145019232714016841339464158020627927731894587399320837751091536195159180871504626749612543112726321273122923570690895167177407139658811655291664136406571954698537740041356432419808465849783971122460105823521855280575341288369703083971317003175359187885351656578795657395297317158556359451871480553758354310488820500300072345229089278036423275766466953333923927234680805487024899392735763004334317502153152764128135306799746513166576427622833922658139902892895679868641825631827830463685053069001359918019158325278321734394282985502949949504048564287239446967515380276390619109890580296598098206738395043118237571103166998640142412085393517682991008532637588589406731159799956620281410022663246922998348247087852405934474817151981453590340657628797401591687077215141306111409328794636050804503306371075458823808031716301896639496286875600575618549850411888085508647508538949497315004938813841309084472185549074860104397870640302700037157731175652295119437331632844175780380373592927607149252522718224520756429011222414076008913093272129238825250862580776158829381862966080137277381355159846086931966143892464549550013327687396824281196564238145207556084685911683955621569780411481405122311708135689921263369242946977134129869170245516865498773638688093622723878450170036355657400250045155919704929718898100071566593148524501430696880271343403493548560975080149298357448087480046957897196034447547773781564134370827232267709494609591155832752344714110985662900113131416191438461702089611146929583773735104721128635181984045740878918105558024037118872772148230638051125090266326990904582361128465653076842948890269441313289561550422878288853115080428250459155086125205714835968774151275518777458289731648469660167887013415203977139626951544642173263291611548626603284647465687118419681400811335639024168818419905610557144611244603038367366013100844441281899692408198902413396132791730238655632309240380944382690686433817561953624090897518531817485429012986313774894182251701081652355751736957299773867007725941437888419270191887501759871506172832807044612650650429878951206923008807123691868945335589382602029487745536688028077139926517677757950206759830048719277179549033841389578997443678273332838189000501396893575834672264079226311258744779619919377355556351234887322280069550266069705677504202143745763445276075801730442935826455253798318149762719382072341412511013548610904567926997778484722235409321819558879776195784266769788279206464184061142588908886714617530408075097279697960962197155650829898118874804348750113885539430101153271584817388142085338698894899243842833145049296103774974759281334143176810940118865414961026644910883597949814919053578161583934731848082926977886849407834913920438188236550238867979725409567865744785345922953624194344823586506410307577303523564468654008841143295674088544195295752939830127869444096296082340987677143895345073285990326242655516938396648616129106704617764848022882259312809606257931032823568089160968289548097407364468002139927945665078146226982216317062369074925820440415467080980258062547737038431616576359129692055045021208287263293440568957468707616791658435573838944368200018132473913029328190253113131888311791255972412658242294122962976566472423686990379549167344121028698237595929656701320755345045527305846833008580516799869544119624653243034497325614846789548272163656782052308818109783446331673404733119222006232084750332393074039013142185281418488806362733827087421202922946657654831496165531083994172133733524327251137495251095554810080034760080722270258817291139343805571425146235294895323947532949749301121755234690449214213804710522504092581511064258195169567088763399766528905891394782131885024290117294706724366453270778468384390634347997128180483110583124704051019124184481465847140001488990421205316942255862254969258408402648440291346286258406323600845285199989065901159504341786951607788093188802272805382911904684486822474749738286881964531595806118480243245353575822295550252631153149704106619768475450544297783980401630705088641149293190358296544884878351698886693522811703270043284827483031974647942275197328849345085845798930060127039264211952549082107345926037435702865584193738791855221938198891673415747060434442118293744019542559583207108054511224808647570857112833315895313603157496531020730955155846704858369621071168385759857033302768337796499715161546402434656208828725539907591330756081713045079029894418657077786268920585139040140066089135786886694136509163541216896091422885715320932845916814595864951787036641265716914976314465697280669585380578592014835394723312591628242490326048696199150553148022906923369043223831363882975859837725195212998169994900448641848841199965753875396778971760328609466576213956172661490842834942573315002800443351871432506321934694285324704082647609204394743943146861004821648545777220826989394225802370218971684698831869335061141754523988851301833776676705005012131591931399912003748556047306629777920812241084804009657036308089881145608246195693295120117164226607657727270550762459460066671762634178416442576887976413723694840991388802024335089340243787864361532916037236401219872621016508071292347925850770010794503025295385965994588453968100811511182301925247707099566044824652268427830862203145705553882323894742233181237676140486778968752080228668393388780170840183507856256118889959811334929533414077000226650819483478215679804273770959213746073743021484537642672702024666300783139288049018906236330143488698183518779277438837422757466853087728028505857523995035904379586285194642177635355832331202176309598441095524002375312652082738380163482486289454221710650564658360382775986507494756236296767587088641452754015750493744705026260138318761808995663135386392192039787060256262115353905139181635220557248067084380039953181040849557430646410544434524845065175484698059669990819587068424716279153059579224469894736388366787334369136696270292110521966978541168874096117908649883363152545732270032762057660922177104794455103199193198854252326757274789690516765898911926624214487080186979274498804529138288224838962749410118257174873851525685267602980322149114727451115610225718114221266830331928723366886690939394257555814878104805866400482676883645793750798942289680498056684738815048292397535943369782882041476436800471003736529344289534300701424028026099199653787649174969387968110976113872947836774177635291530928032446822753947827882426608858791064986559427707046494536777010367542018080244935599221904360534317483767559383383501039781623667755204109357544754080284463045268368270570768466136585217793201072926681234667614379762231024167663636932256332239142903552749987920188234380382790889983984216871531818758465554244167809860760064114648408505284432814315506664792169569672506012333148601762970245478743293521504571525275378634870523968857336968593003803198705493968603972696098338607767864482119333053312780855976340151826747073700594649019255985318467156788775408657418264934488834853921245125661656009070520912484022209658176456793604894292613304112928918871815053156210050388130249372904160298216552356711727566150778973805380242813737916100188085502755034885150407804271147035101471060165079687113630805146301755471599492647003811164438854642596897442793480906644356980361343112601340613607433952956256932963230754098420544965879920579260521608680210999758162854525794167806377150003200239385283618727570854975978554425145637169721966642056859115296331695428155422152286114995779800383168433613670697304675398729821737648340647911106108707056209443777941782712046326542299544342256271222930717713410191001366712943038880182884439957904073239716470489308279284910408039618429849842004809043867826141173911745246695870309047543648716962546243642202399408433488238401346811521920481372149430695948658354568194606859953082463843934570636436032164808261213244166189728414362576261018565824052890201536688229836902960120649775759648792156135411498729010457416553982746211546761452093989938235540753934345093062035156857633941727460486609353951132524219074282153898633087629340674437291982966746988527521401812921710153957926483270694307964030786736257951771268203032672954064837715695776065007241637131492645500400234774679354742005965443874057144298362225222840645883052865475836157500306202568816323003338957684876773291973009589771672566550909611118148689095802356091016939913774938645867278149247563871589098996631088261416356610069950519759711252183153596502373387634828982648389552697335583444800478382418075107041810204033654397660821603882361546458579044606246155643643447242325905356079583033690824488275675362925074164751578687125763855369323742149151558980998224082761796322973115170782657210507019516975227056331609765741145598989027394092036559313487935071957089762798201151731601355364841237464194278074708597930680294431288945519857936628717812288427163431196379852793916758075696751336536588061113408455466219773494184649086382944232826918011932263749764398262811775235602809145530783988060811681749841818096659544545704839406074825630214986373242227456817616122491486577521603500650552910111478139137507193911482922579698666227166589822337564597534650666962688550171323763225961968817087869762267399499408960597489999745925983358319135442999849129386131283242273618564586661263851292112828881746999520082062145277896905248186557249905130562578613441363596243075406302070076422270673395440486347038111652765169425219732397689486714603475738915766183616727905190871301309548138762134773755785152971605515038297879382637373626198228266433050093927402312905522761595081414136824317151761416174190154296784985530186503882710980533994289583462390713950638970017527905768654118184286316211503236185318706337021072036448897420797477011440932013116196164904012817333162128078770870393527064030676062175821460778644353322436684808684539558985338945359878933443221655641663799180534734076696032817971887564004991754838455585747576105106339121824992132732182279948147922917123161640532702107558569673327774795935661022499332339383255388986395882367979547044194928996932140574902429778346204385111363236959902450634940117478440023903602241444855310396203128196347297764640744020948135259275076366030289384420962834516279918884295843334782845844338508020380103092165867563346659827426118825801189123727575677960543223068687828959242330972139918990397993791810709376676765461827444674854288397037722277751327170965523140799838729488101162328796640005152696604912970101794266726713394028402050085288026741750380718089031737727569138060413341538323899763919977242596616849449719245703145605456119386337218278096971088229865513714905767134878240132586615969596572135322164862157463135278729492569913298475701809373670459493086898332965270733192430938397383868110912801388403024542421319650740112886386624288773656710563826719740021786795109698965857589329121917400736899552630927764418900678689725163222477356429014602405790634823769587849498900606810574572066453715786442388617727199490050886496437067312080713881413821633495315182114360906191684603801859028840309377480213196215522526890018023327181658570428466160146057516004750735117631506337474543595206418531056101448155539398935954525962116413048890755708648649630281534656659247850830577324495321150269950212147223486262253576962116891028881379886185098803131749443700278142046893407407746557653337512111496426858509887790602318474446730211342646177096943564688429540901657330490280943340193391906445770380356153329914699367248774998462505946336248082805608925014604258173474656841947965096948252135289498958510532138965412490789378218390723714652091382006139404279086094781182297245386997367645281780655921721322716684481051395154731486450215504980148112769384662098494054407146050862903599470469654760360456401261816597840021960993053625134536386480125806200233657447087731249769049544534022486485465348774649124151926957543267754562732734611009037600276345087831419085158588988428509350791241658833432468040046969704268643636472814823623610883514945087385201940814836698796008530238184256454465967602989626703184904396899898347904649237253509321310070819073776851715417849434426785813079653809521043700357357602039269755534292618522349854245094367736907151375157552073967162764972437688223245330459208658444461512014755671951227494415915668632053689323838446689731293262945628616095452984194445114497125567460519581471914083479325142609693890721429509937544256321774331735092535957537034277251210143331550753292174566411341801603184361807007067376739382033239752534229128708478048071942409554584309383499305581891045883700021117485327770816297439495108856571933466099849840949508524953872163405936866514635623425588360628309838949215259255922794640021510393198498215964054792541384981038349822759372811653143953061843165705481044445284051265573029660109022684643795945892231109289099551308068857314318400030100151455408522559172891712684989514679224825760679108024360475715092607362290240536706259051308428446857843940054909839149175019041354924343573076987587030014833709687720935944452408721194601034421869597997685959311181956070612102063560293561148244481582590539042389006368807842073710602198169141421083069825676061114927546498047696246839695612025974031784092656695876476249469287483542932064666686437588886711726424439473765584356197539892686651705593273170053908009701800389024893441764595564402333897319059025181640194921558892956271860083020872555578446578289055399228218550758225831167655754811056403520807961504570573114635836079261780420393186820395230729831054216039776407299768162935162737293451294672893970572068036443786998562124490675652272140768109259750894184030535573668570501828377781482481386400650223925637866081947546695316767529747663930322623000855406085982472859614622680710646974727616029052293806072601984395409901551429735665441399417498955748619389448850256103672102946751665653007393881328453800046253755973032424148126427009790380376979232995074177003582902646017896237332388241499249443679370617744468283995893634793952687377164731773942305247925145584187034121212349432304856064990464502960824816169737107049209112776094602480220369520522850950784297435539808563586025193247562056793176973460379638187246214457009571165838163818378132117065453785458713515986350082122898635073487396917559278553042427299546274299772965306185441875922572706246469741657094452859832899775055092693790197773458560649342074561663552273066160454639718347329066877030148927545360692624215736047973281396648917614537244658625692171669406949503358002868924494767391883879293466085535301415904864484723574306759621566522390696453887991247487868393471666726125902491288244348290768269695488705032576289546246846376553054252278197893988809201269043550600538565824520692623814925915017768310886598711097672116916311561465068087790491243046346112782980691584615675180904994623962306309758692514762611346924468092096795411781437960053119271173990261066653803656345562820100390005712390392202943498111776437008257197411336675984901069499717394339842767360259662953707628265006883848393291091405206476271484158501792610859908827871709766258860228739531004165045133156365229177466478027624969114787612830729739787045906303732639838772466180462567862770776045722467081831326297944670180881410205360559587068925286380025240983112795169874067708479964931976092084107256070326758466802479136601435710351842373482859210503488226722407734098836340433945216761705058431766007532622467748739747658046260443659418848385881087448314196215986211109367601750541842308032410607038830365383309773630086219997604913806141531228277942074544885492814738875068181148086843478773317053789778355429695346557083971540854528368548069498951607931231841807388947661522549321942798956464709383385727988961468029690531458213477088719721551252598597244849877857200451618322566033079197785944650777542238422867142001983401838741859041918068628692428010205509707965244072399351806254621864285385993095008501672644153688883089484338586013701186752065995294535228948649020329941282958203963284135613152172502618250730048406340153073229383565100806034324467845599885006102210531150625161746105138570769571630755950214962966553909929550466209363585524362385437772956321112084231626663193638115207982148372115187932986058932003587006522245038064173189303739609648420154271522519936951267582735285872350566944741508936094574824248511267469496895848911616401592616292448000112263383485485385714836989819659597533366866799640405529603930251615030446917057959621888827863079721589658473851025896538200519265788541328585868843508467417760660098803838140853572392688345947602435080430581687250049447647941294696280800270852894415793328522791859555322298751365855967259079498543351430584146806103088863535913842629160293813031684187833792952597693318092077203031898839152002519265189926282314481064821566843651254301711038292600600373398887424109774679492458854683189428492711453663322619257351796123393994366383812952004942875750190284405096601344584032870228677721850665663510608433562525013851426426744661056276309250703897268419735182264726902537778553302176215914764614263444712564879190600050026542240386711345047508520404502165961101208026540798947110384757340134982807721045215492465532516462377149722120031562633797656832686160386839469820872430350952011319450841704436716001689101166699667771468682665805480901451905782218590666308861470742368824172525492369499782821777284578431987086104164471670248863874453323330117155858246521684606993077394054593266119476767739301068456637518227430532156377876044015385439232083880320250260911983719417750298403414891550634167030008785262564821944899108095312777878536083192328220111228286377165457624408322983451687716942431139718437007969567603223319650080821717450459562988339369996001700116981171723043200045732271158780656643148648238497045236363453392531111612360712471259889465876332492156473829804147514324934978280375823936522416764114559225152576433198538424373154102630662546409130344058971598862096814724806245605302444199491423399426327460724378743968349128744458536938902709786808223955177132210635228224900207657726984140697893517662000945407545754629581817701612847154177348287567437519154825442225500938175139703051148567399795530586700801848453858505198788411262953587945766117177272242906423075066745228244753558926644624369285605746232721326835855827554093367527663154362524285099652910653800549166777341135253034620157654246057909878375693994603132280886141973389047197021391791335102676232304277674749936738134522501313351677219288282284966298833618842612621818651425495643531031369905431132139093402186957147366052679607976310113347379665644193905769413855045349440091355638102787682270925555448677874101649546731100120111209150757708266845609626878163047358704530301957768717630843005772797512067158288075776441838944278274200869915793958283512693024152728826913646135771779265023672191133154068828189214119465729754702000866802505002849635426842273398787512865260020558763376578157181675602658197243045414176527644727201774171084609880015212152687216315088040848605961542450741319100656967923680049152180906327760441917514692246811808759416169704543049164457469243713516530192261965851677908824812386056792398922666496510847219188450776138616462867818290107125768342829590923038413597441937818651710108028163355149515833683608458023954903136950436174743578169606059757351255983004858091436702034318860183995753855368934280859152147222454736425723273965415467016346996830199318146506107498545464940819183124287824163316410380924867706989215829994488074303070122378175133528753242569204813556500591787359042647819771484281925434725781028045016567920635261613167824525151051815930292679145275042493330100544640304164118883538896893721138626662112936653972974348545231419296199989001774910024871075037876273684334686107485468041656692951772580385094758453300056997437266765827980106234373504972480904520232600640418609123778289893422196928385727454395844853502265206819498409142817638042204604605783463397270696780668094092059218644685839055322405810740187758199020289998273019272228834550688017883476529367682282504506377617608884743954716269411250984991325740664409113229378501366632053939562756140339733196362236609091535866803697417595825777235552785520219653010131553973079988667628030687619013733185886533951207678094946056988899232141823157673383063354522718203272440722497375464843893126794739732809426559521231207685090316513972919312236141945497944490916675179786261192857154870347322145821435067637484540152411514360090493674284091454232643925533969756673824825152085206863227504002709195005045408056027033865709002070494195420028446656767723451947665972831533253505353416007252896778152102817455486432377305284197889329212209837273517900391840567952300542623681139346140069340707550373037214665849483472026093787023311544068460019440691589942355455701366628836013525872626179846583879947991287665642522216677626221351246838486713938987602846781577591531741192646928841721786507356397872034852538020108461336017813233387908088331531645497496647372001866262196912236805373838140978066658557295213694765210269980493049867917805617896265216800696815555747435871961347204186499749457947881601226825644154180171923092452115359338634595316512109286493009839944773079774174807745660835704741468121199078802211886947236206310784414545314104388516017688988300614064291169998402823409715685852194768810046337481076356289963317756440082269345816301328526567184847220744815262640319776941286251590238816861442756188421695265457582948223995320722962486813307322910563725455167553334184533774262616897883265531483388447547362988120558137370116128541376300818847559158809915667806108421198060655013774763968676775164648697394266084272855347617126106234474653176420562981826819088306753137609993897322756155862334355078880733004528787141632960856473477709386494330052240904972112318574281208972552305813632146570412316787522426469520679580083966776305533492855243095922469677973737988972855876081701857939543401349125441234238646786929555737549028040990926009713284232371704862613358640703263542837594948036881363513915172402371427095758389021310032863307639794095285308587569837015964717175138337574553750962794908707620678347969304914001785228809830570062610654883940859157270594871036887718583081039975394584478807878752141296935182904485489503030975905703845291733538610751083326064728721927924762785216541166752012349263130624529708437170364891547367629984709337161869110350600082391621152406389165811441423883114254753424308070085111592965384396041112299168653140959325575162759818006217356733994934187231550544308480754173494704253648380259893039150266895119527322725604688211814572308323005492412891156185340291886682697907145643396033746198560652732936530270526361930685435441177168726982436331670248326558714250387535313809987176571357302915598438822518582363572539647503814349592877055321384325765638327352239259345266378041276412907739229989152140064787890763521238359849528617752041142127092109600310503508489464508241072483198286967909941188150723754885088092841943610584725805818707583063448514058974385562829512367129023971745399408773976217587693650127962739406529475794789237446759763242848574076428573536357147651452771471102556620107277001774405552808357248077360980746016844208047189365368073798458081605623161064499460672919987531106550927373890603800569297569544970004046720613748504733664703054707028853906160567649223119422782023798097021610388649298292561066111428503391388488219423358383531840769470586097682634282184582337664233679917266283632121156503218913612000754250063295941298184862189559400840283458281698490344053022669463797144021678911301420111976031942044337324110946013759465982938608494242939194531441822755601861829735806000529966095845383329379604086522038886800414684604395100792258507360742715864030638715438260887307813870769144518959766980266465771224745601771372789811197308116227373382764940093427993226039351006183061902995679078044452548382452754377909748953019897604088016483961346274376359299547812111979405608885434046064746217897899623870580521937878845425860601644105148163043481298325347935078441923331878605427450137029362624972323351561667452255483430007811959655520909204476659077561923456478295633577056337558600800367888149313510615541373005795478381031684552519850305675051742127397439216301238269483815557117802163208818783446255996443093364718808709133330672993448064778829172906742557171461289454534178526722710026936127550378222911650814465282790564498078083308548612648034713174959301748371476966803630094137392166137762889735465302097908236573577785233769614324744883541303141373032536158243773302974957146114525607177693566098305124869115659905892089844454227510801735394567319543937334741213156132723881318019284983437391594209294836183093784199646972137096841323154551771784372289640884342007208879084005702179577722416963797384301929239330815552729634049599848187078621985708293156114231991669700887680674300111275706316028269052765819035975548390209697588669425183920887010995828035152670581517706160186807972327204612493193623373464897233057727613221743584040381489885808066465534363996086995954859611216601453676057286923872573944509602631996654914253603044032150549041496099352797216369252833300405506444488785820460688627727324831889311542189098562429585167294055505175407436124937617791543998912566708356158044014828364341508983213321783202286684577797820727994647001448204181770254251861256127355878861747944849900789450563056902026226229424428232320254647514997912485670515101406614986880910230734566682574750274147342018848065831530864057061330578120818727648877073667245267836687885415136340372313282940838075604681205877011379693031501087785220256922579283548936958567691274922388979498588988127485850197068935614373078232961852889026572048783877407194154745775619883926496069790750097747558018098346214463221712601743094843712377774752181864660475094226769185270202118685745438032748509717705947222109755459917782534647362367545495441617367580479157339311381332615507159863911739124009819311390305050753270718140211734105822927557576565036527359482327333603319172822092095758331073018609049399309302183059594521032168946255364671758127966398502402107617411599941449275160514349809554302080771490724061595934761119838861653507226331385671394901160752986901913507289802652000750101252486371094958267581729888671584834698997994395781947215710125917863112798094059139832085919301384340664924484005819200787942284256563113001995677609147664910852661654794565192719084372498142111071815581815861331408400657960923178646332180698892107333404153826900384904219424602921177878471166877696836317016312752007712553313802993843352579690343764285539725189854451665645761740937248419605396340780331865586463542406101250090190246868213780934422715345976004403643366322059150594304949348865282705917869064933131675787502831488133633003234222867145209294631416794632138523360148497402777252601766524019053894779247254894582222696406789563238900463185986679786129758017615835503000852301934690891286312195325920701361217265081655636956488135782128938890788129480268243547457817711946076509397561299420044003088403031493919751707665426238911967744379190638227396270412291187740563591921586785670246020254554816883341985261599579278070046471656047361285755132928358717686313249633492824439657770492477561147537015809747703557021860062622911376787493647324861393692101668890468835000713775787566357886056494741822462906603179198124133573597915797710162330083797832381478949100045868311138374253380558867736056664163210325557086194049723398330606040346884698704050752608838085358054198808463757833184276533864709849330932150694422965945363174362450664324578180855149760050297762095728654268517844970034953082693007904632931380721838583664281831471079065051234989709511389226463606258978148731059677249169534491440400371024502389832641742811589960361919164350239054023770332125200634510657208801658458744015091992991765076654489347690946624564061685609234009263925808679970335611107165367512315502172221682753350756417763191989940729915691317739839817408060015069637410500991903689947591505034823699098027253878443909367787493595029085744292004160785794876209476989067181914125576974482475278632993894611286562404850270924543062462798150376062613974856498646440118767348205567474230014733279865668514499537520320066898243981566263688557563859612448584258570722705289101276741427071872394261430547924177927702190633800096574402627636599532571324691968663647190828299016094950168896589050964874916507709090055074888408938569358728033597182353036064969372621094202969917362238741961858860883029830199883389184613502760495206313057994309102514227185750114786184476125116552846066401792889477698614545270261753723037617967220964712055036817516761253991609992690866361023020097461283062378104544709747206028107432209158387910293753431823131610694320727358248965541995246108052744615503683232711549068623217871973446466355820073536771515252773867958352276155274330485985991176311243367135844510424081689454014666731660541688740029935646269801414166077012951374150807451694586032101990574498643409980992993842233302115812957244228793544093452886216087394101183854481827945585610297177663361706213085735540251940981520581910038509629565407795810413213446254557529134079076000439862754888270519642780762401960814229142653501472300087415269926354214044512153091206294876604919503497481581357473469926904952806882889545766326245120462193504723882495533314225297756096787434938059404227909745473114243429984434892235272497878972512612544550802852509203275832945804348878206869264835764116283700284787292500324145282734730279749134010761700539019293076348671768321399833967002048602782820033877164885740359004176046216988613233889970422141767186665317218198523793070484490251890108384431410457101521186688588534612256097588417882355150584435026598892380943682670468224160100705045453813109590083680523140143609187571849001662940896796568555807770071095450461206112988130039415940729672464766153048609029698152757548794907865808592063911933719666314935180717325017419870843892093144995253090364812457288776098102665320256065290839124705371588381910939134129424890448190907077774930948569355193367134033461950863137656159686600651139716905773502784947407427030138638978565819387116797581181899701532522900095939463972167502546992329343252600120216645760509183473997406415646813706683748123200198930237818752407738953035672280202546154158642298918937566936615336938810373832181677370931839449783330527353991400988288529310621016626670753478722116331306902415228622856296381608513443630027039141722058552403672277349079647696882623575314789395087617855933821964032353976189352771201158890130181712426064529115897744742849510008916677454891349873708846543035886363903683774053878040432904011834567893928301818329477830634406996132072732638347303669222560819747860388724848887399149824613712955750283895607068929648523998511099625059037253917203417977507523563482704689631146973367034138642211733857877335970404121554432881774910835504601144178174701936638173843783206279818848630546840087091988140970763971746806436420722583931851900238025577543891492984363597267714019586791027212555614047331407224965178730985871950398981698645400393742269544475733377461281574131690813022791035005401203767235293761034442075950270292397864327744259114654086944685587229957325764055465540449068527063117559306486148203559510965598996677661624362993105333096757878965754557356735296195393511696258882911488644656761020037001914443701337208009542925754516259569097102822440772385729054541851500401492794863443239366060222208061460516354829029699112907837903486107109133618852945339493621471398782381956269291162176965596561312754747597621596893067258186486509240377877576962380398982632893371259384477483571075213926372858782123389231709599350842538305480699006223348506455446424440159554095884839473603548339433902804303243445601012552226888091709052309964476357013329878944132795429017883553586249498017013667584901276714976142714249004477902714590271342094904240726830388291388184718949634314532865607797734290007587655400336968592140599702716393856615049741030510934128899587333846346850201973760582835025359960979052682748925627808883957869412741704004678483285087449990386171184789266976710812594079999110749215771518211055635343574319863777444817837888504155005600769778497963868272668848128179538893454219341551721964357802315775819386323642203992286935193486628741250097532574169838635083445503889151165197761933979424478218984380844022372237529062200924615034901990240787271276022056094699945334410353983220585005643766608601613083491110929451303455338955219038780199777392251289932109389063937354284040201464256044635277611181136527386905617808860334932222761204271600461203148391675218217199588323964489141983278083941045296277385391644951902183329384957839237442738651904027400708726408214384765614874474694367309468135517421998636246199913778536203251084882530361174237470451251336119600991439688620458761434174428188361468383787005226687516340140892480316879486035409159824855647427357383163273265783232029805864935157264208951109308715326265825328859867981616041474097047049639171361598266672096810920352079313344480147456800729808529085797081562034077390779985123783637167805803797313848597647465315274310886886470183839617218050531351190712211399984250071034699434170554100660679536730090783760559081005528579012337471849955598256566975364209800772255263733228883174690690523894558932190589539038594093696663507470360801436089849233092042065711964294637880823570234242940049786113085557584224985965053025390415966968461132721558924496548174342430706222258802813166293914939876416692340516097986833150108793897479298842791651601859992457935603653214541615981348055430711785230296427643399513451615401430544226403262496895758908006846448292269198069610280694462352959323999458614516358174435538696987249539635768733602769355343829805857226154430234078398216066479737564212684256450936734438440169108318705107164838648509911658822209718095887356305614491366236283732003073125956289256994797686107126017606352561122423142633595703963355317431145108853646451003251875765860489775729818097688253373070111077127499571930556209935534873452257801117992256525961067808960895892268708235091253747319294008573899413834749883815451999466117146169285973892292411086112590676189052700361689066626798138956659146775085441783119619362291870918773517401569050548244944897820471188199983433444894699468402254302782206753523667869074506020658778905271531899277730814354705471175666948612091424226952439481924878829257713948544603493666565096977481637326420279303998339667984524421063775407148865026291079404732494668800462393078367111462145327137007504805086672539820056751128833737809632710275596118684517856029582658100639007642382658485601792464767901336030646694409753633559395582783648839947499753434605516223498381311399250411279363796082435809176763304617928648551525195674241301830914012763108820439476895767023560419266052098557591099632460479588628191464020576201803865687316765426673184184451072529266792465124920820504322312053317446331378575331404299670853430902559025217153739530495452664620892569239616140253472777480659425251881774439730928151010550305062139813171386205594605294325677114238181568570660131790067500597512814876831452571272665418403324819575382201736155917549859783871401652017928609444084793803363843017941172851748758821412454838687504750171806956031608612288422038533990173419564438833367652847715322847473159668354674460425561048529675008976791651890627407304921793141522250917106278037067422333808503492965107268938482284608034918505252944634899934203321687860327348988057374380938647126773475618096320240105593452024569031001076450960558696179591424123570344472186684697379249322302407047784819180009658642257706934554309681167359863397288088097460393954724810550690764365066205587176009097335317635744366319678654901911267635320578947863090075019597057987672297866527501658099825099169673696987019483416626371344982030382762902100513622810189370064628171763477146839598962344138374731447093066529365734853840845693343833613974359474082590812249488295471930755935685695794569066947782508514797390434974423653330128066112320992663838615949971574686293433990604957999734600985746407824000036877495873046678312064222277438995981647504455309571722214983082731597279727712292506128298452604272937053688522576636864068796670185310077814050804174631994700928108726774588384256008358155375524643183141721332962355294847914786664955819181285491919746177509230218214345889094563064419860705407460661037399020506612771629271447592389029467220250472788141067474912646084511543920324600159585657936740111833066091723441449098646914829058393799108148633849198471694741080086425460671968976553232564450383824047443590786705094924642672447606773350598579916839400259001668785128044987504172673724120356608147378502054523043642497884925700244301618578275282244544045542155408676328757286186302212461251958955719427086179909902387481513008005094518661583991019302060674507872612523747154405923078067648338172726448789262009604701960446152768809823861922058233220050028254163046016087623015216986819708376696305810015712738103261124161425374251522582045375370167277791298863223792019833055972434006869701394802111008415324686214204157297010358946381023638416210925579268473700878195658008892505507758263796480385716320088507659363031094106608548870216880290515179706527233361900454895071076068786077368594074171096113781399974881283569624376277287202673588350139480788318939319224736129598272249211225200320784492784706218319051032280276622100893797908795906066324096236544450363507462650084850162753691116105957782223740649232491094388661252585544134755247306596476504671471801592971352755407254585113265213678962506820701085872840139464995742836026561803840755309281539676783147090033949853158475170924587271027263196041644061579437000534083985652577886526316009601116735368408703764967174050352000275627379583496732850481688732250385161283557434944961208499609548590614323852475509467255826939268599901150272145744231713071526559716238924363458273757095749452671372193026174770620640006021314957844212731849108359136634144473097156102824790842513838110765100253709735424528766081500422265776878045137511444809273284826238873629556846741414648256933716323436599591117060415642251402836455108704759697081538854364394391970489611798371456682588831330720723726059450950712779666605452714907264603605990671446866698158240773956396244007032985872570281896516050032392088103204419506570639312452245996890850637534810061253638435550251314738401396946583779968070135683052097438730534930508244521331374994434167330153875197029209728304006858703637840194567928542202679130419341105074382273501478010626183756326218781163797039540415548474681933083618649220502179707325734363121948969448554777991925493492829556729153534218418374162823486798232709936795237139997800652073145895076630055761477859841239131298638007655849558157093249286935381658603870470083380059289817551277712635079265499819362865219201636143506124061913185403016777043243972169189940350025071928200219872671001341352698950369540421913399344222188505819312789663989007412619079390086810338028871868487751741393671521437921017927279702420984349124126283224227687583684646616482207240840579822711097730955619351434237759389523301178448734988586846189243688987235473266286924074991085538410022250151182024250079124426125110365497077541524300471771463634581756600669884555812949831327850710502355464473203978132289518415553647502395881455694049791238699039415169249896271886843933984527963954216682773348964946650018524866902021161236663736505765624265177804935295029608908738275289514273169366127993572209486025618965920854803454996439984992839108338560810146602232402973154950125562887416802619044785400001876151266218883311198548380771807383081134875930449822812683059463269259005052019289151134779263792088148362495181183038975363779176891275265870918183734772486409828501784947925277208996716515723919098071513505666939614682679445904444621311359782106545130882897562209406072765292450933535545438438554227938920500923381637127674906854251112450556725741758991316372771284935027881358608441607316695169414844749191762271803427991228100377175735330715677459668812931497967578574318543303726851671775121750329562681221350060534979156669553864035447811882299446443158548053779935199856935240803864410108158686771990614760315288124670919752195723937202374679365827589387674525974252414659362763306780664025413304315324937356437905025390155494786122174784043188531944005690263426430450385554762534925468696479415134468937938743690207581278767579639449052826613765039029737137239481207571815197383368026784037796469280648902309326781134841134909837865098299745382680822391040343530040299322138557008054548635593996845907955838657879758347966249660071885597309660410407002364079950411300610349428266091359260275294144319217966507331715950700455802475660947840917717269422539717387570050896879556377105214052513915646740664232153458200580873203213767240694413674224368345026827976221972890247485083035808603161177561470880112865119142773663245520667377561483579401011771437750652917899242391444563636689515664447445829005921346330166658032318164152568544477997443905425195536015592942947938825651531441172578617455963734258507982040478232333269954797940068361978949588406478703019112861349346120046875285627767743515577031469724576254691760914718316688439842669491671693484890785851130133386480369831724096523113409271084322431441447632894689376561020065439105571216366302651439154132671070761089655628129015988876919487656065231041102080093456982181836189863301266630630555399142905019272618707951359803968644550580777347193773326099746921770019051043794109291737882555537172881774077535717060976204708815242998740699613404026857308657203557885367202478228389315472730643959346125053138007249183469647700305375593537846929534395066043162608072704437395194528692506571628241897147164852665497614919294099086727613507008433645475496653357225971771525041136005263289432109250010852772116592409151258391233445212281148556211750558703163777095360820567127386261403812037316246845404253261604727390314763106854185363347572396235940915855427665602833545279300086072335603283677629610278544285990784427594845737897849535293114800389726776964965707869943194913997369893148529090036842887921707756750737758038896737455971218205402304023450129973720167237733843263508338664583911202198096948249545007372436268563618498626679311845880484863712513428693237839773377237632679034513342654439030435307522039236829777985227121935986999036388442396480584229469619576855614520140947603365463112637783544042300160825499478654722762126689454531382518892259664800807481256176434785459757533762959014578427607487240595578701250427854166090609606711946071224825367693298985408511374765286879204299948808572788055372021125381474717422606890318142127934176657383635382186541106862089394839895971221621355335859891024811907668294775264872891008522992323591875596119100334955874000231900466657773696110285538061237170441746523555476189086247518745035863012033906778990892822920011129011911221448607076099485593383618008123627233479636900106429792708973281819272779501000861749883822289001558150322406043365857264384327309614717843316158095166619461647026622773038886158385587022469432275889937335223951035732787778362987787911477947018730911345493874103683497359382683495024320019725052196389565204812288952889715835358870368125608633612185196286717713316364545943882182131276785574742908994129921809826724471423094062120478075270346239233786578951365863552521031731645253534924047379745207828887423073183996352582775455870435960716204632318351677840930237813704665663298333989741827708006175887415520080571247915079994366538731074628959722909460343106827612279898006477029621804831720543488432087554208823674245402842313112164617451738909390027025434075102233829164802392911195173532358752290400195950410594000755570575065029667829479926880569534344388776567088696718189941570616401118195274569309115870593110855264793360999112547974915170120221593849780525383723567898188798964829648649982980193597861389092925235445459912573084948997279693264357205294440752781397227992449601212201175329355680842916487611508048736935041631735310680666293974675832781120293946904968682327062951889019990127769518001134647274986736119014505916710517886779912139621288173554528992036858060962618050703512035926797202879335301753403799433139194024704435326414490729475200236350394505529746008624041877468290964946915645025546581201341942325551806731940061727767050046820284088793649060804038590586704005560069677010084024684942481675925632228456237817087928248392117358763605163123760972193779667620322652261117247408309988230007901733849068282569719900830888449789769170662597403811065399691137093639512838943463872972000203701610944954831123991095945316281574369528032221827900416624726327741239422110832068878692009407749356181273466028976149755148817241042370925147867534218511852238415517173914480984743812674154124068635748519481222555098625723675035515411099565812193757434086853629507736399978963941233753619917980513865993267925851177417119424886297696384531223955856339007331842783406602134826173312341290359969304989899732169493742144738160422451816752790395745976785371590963217526714826700086343952574015170309823174928078641012169281657410723995545357338682440715140093966073093996902312256501568784744485585392728738844108297155965534340012355093837677178069801702528552948506658469542986114723404688288706054495586640836940385119326909161642186413257934901687405337349399320433627373022870961345395531990271755418829945404004144312306909432749018339298368853432587934011979404772882076927645477316885730152229235663784093913689809930194960088790797269528596194017735821543725029478469869934910799843611342819792481528972273554813574292362709657769299776848506064211779298906040364115318715169562170739340341676813317407199577833288978220780262582922524437556263624959255038657923254711383836947029849662684664883861861816820775455947423733850344203496364256456653118743539443898967003786736893155075756617760473259457750288259417183736332222134758016777635134024445489966058218720911420429017376601653041024134025987974959401293797351412932067742653630097920961139313460347891569246092531522951670877120662127721041099779291593028995120972829346088469868197924632364555300329325423635463354364630903152442329362757647536471744056028970917632953896757702994542100033051907223325666629794795078420608418482204935731606273920617560710506616230548119125076017655927646605714317721624415814398918575813688621189437411422136446289509942660184039273385762660050203396871010125838455003690908949055457875330656340155158603284372639091344990732304067091753282800717623455022187251640134379569349355712084689044381684045210950830553449321417396244462661177567995529291806138069716362206070478126279014380192828072682337151910539948167060788119449843494666869550575617212220715588552815683401269872322411978045474214520228210323435709528230327713016920564501237916975565829559287850909873640924127749915560441419621890353712275961369855389659819560525678000148376934907335727301607972749306550066172247278583674047098077353834589426059044487373589817654668234333724704462923449351953583820205080336358119589038817318726647950310757919853887830294142998107880200020695825079960674951762493985064538642364006926884316040960529003915746139254754319603557604802330058573916672587907925999673122503511476066836838738313520605979638792757364280382936025852045786793597687429833515064244217335478995437920531660746706798831821744763059976306908942431714415751885459909511118976406206169391978869454676471011717372310355038530113996696866867004855356734379915876735399300227061907865948049533197823408489787104580522008116480182126390516914053276313070702448747002321632838775428467952144781752301254843062773097304670910446962472974009426193304571866037719575935163155904505809603715892964993025526079052803380210341880072047993744233335550223358963907388077797154252033445713125977089227731673001833576962257643615563626095665490178659953053531040258603222991334139433960554190002537625817019314645561971402625416708743472666379611712675248057429644177376773911008002992120721153774311737208142269210868750652512769462624735748982494277016991784974670100152308782995894713734705829681477200289564393874445241777975806022649750274779004540349038188886903271059154547031694057964443930994653481392545102452802606427815501593316526736175809399245676824872370283741826707432591574305481511187573983162012422281280053443701031149652547256971887970824284086307311137528672738644487598879543277741110182202731277531935733527581454624284110218904705175738918681214521018194985878722103121239370686379125945277454817920070823481358309134716108722715645279254907337446576542543124476683530576875181613140149958420987144159842924870551585837299108568438569578635070327089671179143718008533223738076229831076458820747418729097078805679925461198124093937911234807415189557965082996902567264749247726710085566648570511287901689031625314460441731361669992679531880077551733505616213132995896458830387287016919290134400620428595091139676712691031927176235887294940526864704966365717927391582048818011453172971189359020488067984296199038087872640471320122201139785516045688975857476957913168627579086814538779327935975700358782136645016090666939401894546646421921082949290980167618978080783521025874946903627490357762674922990802108830887973844036797280147319625971098347806281989866007469989464023469596969555717756821360139261942083745397947077763191445037653700699234580744854978453078837969624445169282718097772842658295129128472983127530095799566739657836777886298906028172933954667815384505382822186051216712185166338729323940972763943337845231831443016696203022876291992288405037039443097412054884293933665815668793874695849731966849658414355494945693183537202738163253574457938150998649132764177836022974769555725968543380948919066383096771016011134340269956412208214563637122460399889747714677256682458926318151664875463286085372721870296033421267537044041961393698830738425205487399144831342739068707520402498847014325990563209012242266977200703846451979821031581758941087088686245991485079259198568164555452072008451107338747040623697974299039742833314623019678630491580074551333614420899870804499600381027030932586519625573724881130843201997023918988894292672469175837112611419547113611456306778873988611499295245932401255062033921906462833929722438547848603694721372807378452328284218365380351718816785115865348191369867859291458957270309308682866420411367970043118962391585337810220137831524201957898163850464659808223773023526503103676347514209973645272409600517885300725584122884222716672798745951833016668443685512946666149087590923897006724574966792123586818772801079921956670522781758984149968218815489428722602032476513937649485140050714001800478406212568608610518022575601340417927481306380258405884650232368436735256564009173342749248630387962242158145968550113100797023435410869382607223365414378008559772616992378241654413224268533078040041924836058234203345145906945614121683171689007514813297858540636293910386274332736512460622693702820873766761566253243911460355121747419780751978093653065308550784799854163685200659161762538533508381319531475859703233764367776184718007759688240333516621441103010425151517956416533894517735438469273717251749454833899526612885944060961485512474629661077301504129380929039329067812347964824060929946925757515644431232377871285636782669112484152943234704334109677473089810298830515276562469477909411162198185937475279060910483926338901542273404531280168886055720424491072574414232752613546169720949406087929291850268102550398710145290853126300940080517728491074240463910452585549747330156914742939152767512025179108840275793650141252309694465573114016031897010326075343703914519962479482223110593274510604477155564774423469785237552689951275313412511563846525873239183781370401036998232608901222205754140444704107687937026939609912188300518306983794546686843827859002163100570207452010038664054262678323023644910597661213082535801589874806930351224042980991831691602372595603770109390671531718866642284022323524178407054567473106204547396823632344111006845172980923957374227252502163318247069285194943819583363528271967462529880540120858370130483987987103867747759722267783874866851533475170728837884355644331442358612062031613389384090437311223017559122999348430613663829437402817643477423099564669716063825225335962213317218979281350821339270456358972480509861616704656914016389302489890326207333020011471319041800223420177019733817230037545318717304501856672476086537887784670158643591875218810312266953125505089867551180057928784047111960593988495185386499247715062164802095731870594022059753395123094298582346392926211294322935803164382752556794791936925168484217251706793985671486506499439878250714795990345550361542652595104622064527142711019730885939093106626870679995717051213867603965125259034615967441291454446962024029299468630094850932128779096413170983109081206344133391930084456233880594413433439346666210904907024421200616072389978753149559059481565204916440612391811218748586500612791583225360133680990392254708223201102360328662677476795305001365363690219745153822816693538169880302525016302108669818599799598720575514071923263130036921164971267801387980919016164444929057915059402949153703648104319433527987303767720932349756788269033351563973199343082370230868505738284962857021073148915009060015787426007204045068184135689132883561014593612948562903462447254970433321407544443244678867465772813200894215812916241421921734283106545354239689210449259417463777378713195961686442667242228581967779020611209062646143342371769796491788433795523269858322387812620026765159294303299737052079578265397522195096071142757893510854755907080010603149755983120938117153940173584280154543214177917360734853084997527763038430235663211958550622888893255751108280609846919868414526186360468306682747901024604549857698062886332060769279425299508533646611541644877161087117501819459177665506441787962214100281670364929583790686240097749739126182083326264803366716444594418031151719716810372414907841178197350321432390443366817811532573306444235635467972549193904423221327265182962266870755084392524735692653359125982724617930029797054594111530697035875811860620757863592133743283743764158935843478655466815530982925043793813752928245787483501912545476817329391262732407679690493899667804030816290275344848001526578130072001148563895044846381642967468940248825784477660491874823664812613519250408981359892642675302409185270584085402020534622376517394209033212038735582256518728298222715383714093683904527388863397600588187943947528300867819905522912958018717561899034787775777014907512112315772327035216198334195620386094259191573215815466589952156367579214142504257191125927172289593995155541996096860676024917800142243143544014469981735519775638665292503650006554147870246866659889795042792267909783418342082888843641604834129783017176040077161931730710738995163049777771866186203910187105620099879385036413702870344814242729294078712120891932567091460262342903115606129722549586415461647243801774526220482486733842730621499630921522604108381101110562659539745447691022228777698889024099889158426419038769474672565305212311990464224915231164995308805765326262707970109270539960816419883665174139594300285408584665520195826058518567200237393673965794447696921626220872455943623376944001625531800804355560306569547593041642956733473028336189891081030847441380391721661806226324351182786751520772637182412676999785951007463021760019214380280628572172238684623325098845918222051686178676996488069948990379101096114332760008055283763416211970227176800187882955036864283759720328149575123681003824682961533591600306234317561552123745356274143493266554618523293055340720658983803812113961719007197340178966257806863394148131836981706683847174541675246462473075536173609652605947006752394920644565511668752196011950867066703505674687284172955062256386242206369412815478069476419065806498820023100475467651669771405017527850983685030060612433626014540354416462694796597943002991902441003212138354564353719925230863491385648399250874044953634445957523610576156764140725556822674327528589804921369757998626866225154932468620821011009277174001443072353843061753573531161697003481532664911343457080423570805091502863633412682358526493302265545985755847570728227894934701541345418424608587425227716318296247913227456284310788840512338866972867153577412072814361681376504448678597432247779634646803164765234450030037605162388549061362955325206648105447611805738598687568438333253751973793582253024951533899423477900013020900111492663773182632749473625423926055374535243015272655566655284435565658267573317435939360887802918031624875812913211554859774999419173094913149209860086474343357011982330905680183172479360359092038364356386912064965070114152324258069880190879445980824335523266389931007641010822418447476346155128225429841135112872663555158409131168982510519881471732978937713308683038609019366804983588575973675267153156079630063982973332729044689313411869445751430000375246005242968657463853823078529479836775371439201337081923069693075827111544313576457391279315267509357977144044070639529998727790669214277697465453592408750164081344286213537907826196757832141199204028897447326161507083841462227282594236498494847243433704356109921768644638582171232135301871015419194951259677614061399915374704614163387430368175209240945377909319526040380828702281348576986534350640467176547689436279560623751716656413983056476410417074346491155079409748056007720119075495238560966126770474063523967172805267092162073048078553766640281530856194222851818526828925316414802155625443492813109234365192027520313430284935345608282447410010884389944961766099396715351607092987610956893044740937754693949009020773831548568283512315718606551637175689310690262870380864091390157982191174232879587738893400727168449661237703837974255591412372625214113708506336043948938115625767620944231099969161403308498408440483069886907430866645554523629694957922146924014731669270428315254936967948573079627061266764386489349075258356451725580074121557736192501737184448998607731617984760325790134568719990158730509610537326260444589394749292277775032167610098570256546370842386139188983703223355996388763185013812205890011710940478944774227610510147145468453937232437202049718944399471681551105536269701826250091176381305468920517370333958440914864472265709166002303583349599210500272029702544216571468012204357625664362406226040907611797640900254082474024407683256104425198355865015249194572666615453183334517181933718936924154611509095552442100734232862221157264622697014138462338423795586760385886855256509004677863873002740778086322617160599797604594556332481082921353281776956322151277918187134854722618841641890360472066705930769815290134961895312099416152404098329779931303563513496758486660358139113595667133632739030709095817961750409235829543772231395202489734757724991117393882156113985770437163049493718715921603381966028851999736054756526431194379204892924965382659797452919715347449923578150346750006335414233082278200415056479316352160864095380659263823306188288963175908697857023679977530474098731066788238116714089396116251301218003310367802656903181565885302808180540356848795850552644871429286310618979189292711722987902897029131271124039175698864430523902432957880018755910167132798462527425176101217607989919022472237609355626743211152389327336927063274148853977501740348323324995508535673379928089790306011402553103358305433265969103515245498674950870994011659797695614717326375972214071330039723753939239418610797786768766503541100007240865869583981445232705302104805989280704601491953485648703824320507849689053355005820254233440777360433462774768692088152139426562022974168822434909286662782223952729631326466478496636040300136574852661541085749630452704501727770527447249256731726097296372341499578677354831357540783989888964290829759317942119167383459518422557071907199743600241780738940423897962897646231771710782377952431947938533352343163894915028395055558850541352665831953569501373396225987589169898231846137223462973032934115990420556146553725610428646398667894979563545313454774732259607163500339246617719930715835038877272555990249187869832883484324621515971246802220876065315121823025976619566959505967600825057559276631543034637418455743008444381131731828924329103655668611051852850814534388388240705851519978675730706498637945397489188301406326463716080093303311870089098827953688483863889572660892743630440860745498043769264596855290413028968306396742552777014194327920611129660525636713717178336986813160698844339760104170220590036823648115526951265815614040282827255207851555901325395103817977570336063762015186100829731326003403362390927032961233122853480855969295775558615702158899508948929092419294812496626970325294699944071846313066039897099184381464473493535599466310100596103555279188317982840145778801345282631281624439323431516870299666908758478083542613066472435238523934612614204070071369901683817100882383025978234460351453023435243005012622185951151272254686218070032629690718599750258029299744475758317278685987716953845025898375913168613456833080871499629671694025365605795865004866168078242717314001819428870145390592026920524502089914135977907251413887258947614986868432987150129596788925143655173271645699618192086526113216701624092698406158003906787690265239870983915413182901000322549604626616649344575964587940686356011175865354102946940892195070803917400859473623063437905865635475139686603143623305009092048329287925184272869017064057873315911058419707167293439328031747992327201015697675451222567030900642277372858746972777995317203217880353601525837420909708444802420903591635914090568514585026560338556503132867384380418671070115708081999951770934832837408502453818008821283903780872136243253991315270913386026303516711896011431032114978439542324322726141148274892355322202567698949206752170370722330165735853034988888080086337927061927193562428607497238579261299254230071327496559295447236846423303104584371892794638909168362258375507089678468074315717601663543131110460518270888213450697780983495075408288801271791335448613717344501624892546755637383342783408041051734892531312146766951576731878800990840079372250354633676695930575942245987355893379310912426123220487796322207339752434616175281818481735363138734689058238065829431959372510744406974972569196107678857006064543164690410843350628735857671121155984169645682954940830202388652817193732852545920275517340427576203404393350357968784772834582001509379482115354116555743321093354063231560362333264675878742762114475421746205145140883524192551660472491622220394800509091838999239616638424842077751630048855103455731224617078920891661454612270365195694002299238305724697894819145244134748002579652959363322335606138542984608028982472152640013329558642670580770119304623426100197398711168465450531022350544033831054661375634368029229885141569897370042758242361928903913152545924115172064726424669731451210966716314840434361273483952648481575189754826020896398501997690672327602733800599581333350304564714100324807033713938067778433561420438188185870436445721963183199531689632705935862635812856609314040286212457324545072384806080224385803458037614762535358308776476014989353822488994844917449396915886403358866648284587753903222079972583990534532645470396594333336770592085692853810419478965224119737713586450810394061270792594631050394965016383541216200764653127161316903174824275663553182699147907483757854674932453459649773426392254463819346643528809964263786503109562855344518064158091791180998626486064122351928322811019952534492425218714850400789047019597274907597383543465181022083410721383934446638481400753198899080815570599174665673489563438857664276064464170957216589165995534102820704813981631313513023687308690269416928888006559311258153526594542698254493212372135565108278265957316735626780545485888605062456129791885172357265568814167693710107924403548614655609712067455814300679985948956303464429224010050213657633026960079821684178866607197291188596960647008212465961798747885815681699694841933307578410584019663920302705762643483458523947924251259089997792835237316600540431359027050865420245666718541597580803604659864623692833335055181773745912677957888322214958022871411676250300797414202340678897429834003203932964753575563056268890100750334781738487359917519822340322222765748946720545392952833161347102203710532470011781776781113664732291119640659256528092213312720010584812965504068757559910791572910882161259422671616672142229372843809564504470840164668710673362987046423939370977794242855644490074149658019100003345681986928775899092918233447182119242471449056295754294632713807312633698230830343620052416828876397363913606756837595802101191127415825642353280900373826118975313798815296835940407228803950125030464018184698056944254051798707153567116111443700788841868236603476776150050760337250829018756886466002732123615183351180593198958899946484253737957510812607598387723718667034405209596185539874309295692801518240435107991234354828168964786542135707340487504189530482408315717873436165619469698769243233149563516030540894266625445998233187989928888527149007027486974991862019215963445815272357101804388281936908966712310691256512394771127708334225935495132333970147359296236532484469960567942770292901493941236261736622242829821726137441347316749530393331904299668736226488584536843672849711531968233211383835000172329813577521567045586555431538537275362734639454568462747460587427432069854081199180814946782664955748292264568213098903231207366242906043562523182271733561886310760374726218404757744850503627494244620422202829980734652642579774145949136914907524603859723643201722942368341843669849037224736972309604279505731393554411009352722652704049227293172117976895970345342605734734783507533303048957150771151258430229409037618147275342130848573283490283507522112663814630782996308167417622865553897003177301816487604448397505708205984080391615445596705982546105382297365092298979226038673509064431591544756336157367639109011607645487057157259959118999646867481927736516506873863723339975889350203376993538354422061564519279457647435195861682637009937920514240032282247980795868897729331490896168650470335322413277031976683447434075624594982652199050401354075370946513565564773847404479592836102668768106764683585124371761971965839252805348438762430307468186840390549373546053393162734582267169569273034281377499348475709128515740610199180455707442085958375876524234406807316141387072088690728176362216829337933659677229958116614883393922349700829742708382946126452152431017640164351144748988343159392271090836862214143406297568128698647549458306486328034554733515848105402691254662335432037373446912156907799623229459516856746492821237282736525651520043796356076992787568815424257892832113593159545295794818085918310127195461412384543531756478208511864328076448231154940522141677999141628147087056124500052250677513964833420196616081309557987486889974007382651584030340748815700362652389805644218809600553559654823477182024503242303334533387344096718883981308380628146770587192411293525376805742445348935008531226773129032652745353463507907456227546887349778938057359418672677640959718757583913991441884314362051559453890300402271501628620169688001214444327186978310352937228003056935005604243881925346870370874366514023568108965187581299000929351548778852025937176892562188061616808785023669075621996097598710165009837211089772997629434500112129014419974230698001006197415552736976088716906390431590569065190777151517567484645434267427319031855005840905876505069401230005019551341953250107022625052684825616297533966934918860256225826390209763858912653864879021461823754938895914837434692213376498602388212434474594908909391954769548855647886549281750926423073973425840723491471411727599610006989017675608684764141893410646890143061075327689964194266432539102029554053187774218433421605540914147461167412862067190631818609547076628382887710471914918198092385578483738809014213012454535272962585746554298798790621238083376059658937973504706631431128427818600261704518053479508788055552657085419997353071645582346826525700887517761442375610214940905291218485792318662005528603406429824381606211916685869182549606880700645188697353398235365259467171131847460234383639831135112292938240884398230429941320151948076511449549132785387887440699104753369652009200099188608412464134860834489619041945272783327459480304500310795755258685697955519970603715898269044150492662846549726087618861484841657269638166017100570906008966400565774211089640367133659770449299779915807504992446941483537775959860161112583788663852746317613931393825790564986724439446377395741149590161260820371323147843528914007292769999529449056528279157787133815494337001475097525428418681237626939937708035532144955317105405597028862124464896420109593395410245263059546018090792728834617780223575179131447683727860578584527475439240172193579604486596694804623512335178588344486938123869120161234850374034473440606716373117918574039240770881816572680563459457956871775939261897037919096429011509478611872623469221220069654679907310568183903897411519189901029376388250540179584232660395653946723053178245031546579837567462374196063138100837835862567259873431054648694837792631817991947217640760365831211026371545132850763531908261341319892896372698544747545533358761401306703082297827099422555789012580237779623965045602490980891565688217054892951756845286819452931342292664847545553612609413900019902703312404677878536846508532460113033834853502311674227925351254530240075565726850753867588368762754475288934070609244713891701345902518955773699299549371750041271529915771699789051734662403114431494842782123109172723726292989117170032947014386448311908363507351689181201398654541757771037549552014038483982478158606323237328886364997566366174330368543762740969868909843609515179665308625256560645050870553566130748366538342073302431289320134182373332670922572315597759938044143434913676078049224880642081732719955441481985451600552354001420055581728230157461868442805352231309311005282235460594760569524858409040997384973251935865239932644423616304634605801742513990786643166766645504115844931651642524655413489715817523040791085495877215839968043467451562861756314045387546283710638632799367889272462938036538805621580161890608263581187246331589040345152699854068130040604432392951896663158096221469566679162483464946032113583131677345930668659704820476021611882234672026332206199224230841218841631344371269273889040609160373882645108396466956080457773495091485432581531136103192410921276887369372207485927377007400154351303783652503507260462744284540122956293604641503197871804481704182011701077236728480952451323706779855845318556043559291471933451843417541950817889037418241592647781275937871935833362445984411040617634383917192438015724138034938060306145590029284283760932745487953836160543387145481519293851217994099370265678194442256606145860003158089632078089447768611986546594917488093137304150354131592663947878110629306165575708774106909691140276446610448851118128023282051311311813135052145715549298616174486095895686115308061788177870984251252403406892879123688048048397641431488654511244224257861444255032045888355072487486591115049359056801500017565623897209831064700291141968964599057143700536159095159669936569527290212553081447465389652271995351870855041434502869872398474175088977752006701840399837370858863944646766064794210451364127671292600874070613384752766537991441389592136124748094910089155974711544474212831612362830584036172464901800027810173960418089328415113409662243124643843672926676999967727230267584241554772753721671750691128833669802049636664093683107574245448654888223626743765479440023950552161857111797648433683369324039974611197174867769181077736044861488700504157377404638152204390131146026329123605962166901966788677275154684055742635518037789321178738409559352817000062176940279209995152110255120156096510252611671802127585688203229770218442210985255413841462661948313211339204173218549483468951972587987511732125938619991657486231143020221406481720865011111842599353025213111410211047157299652871162266892641410928024521685757373619745565468520601236216923386496914933652688742770859075508313711624773597088659617013507436776256667911934669904850269163832372960539927634872496053619087642943301025677416967617727344411507742017753781766693929624640324511031525642898666151552616551884568993903240736091868095146462387158054968917384490698889424415937271058956192187615177882759916938307615784398286238814127100626532124167238041355622256127460837953057145329342270481497745632087784637775369751143145593214572655103485145611763075951666996132857439262216941171323241525922286600474929239526626590664249552008402326532088127795596966334984749858146786270691426517634122984686207596085220179337268769401545417344208477721326757765206799000351649334463665524605347319668097110969318236394656175573476564989931065121854810205322980363171877279137766062554919636330712453150989884922220801958497752695669574622244685828728388980477378030131622583865888672157421206724225621098446203371109234907369043837871485197742613270473622160338388875197019458460407125751648525247433719372674343817164672558071937865395579234325585370351940313191319934837673991257336610196032942857105042614634156973388441130257247768786553964714972582956188505146001916438153591921921796660526880823581940245696486844115438820684186586855905170346302637197180456734756451550211146395340557820316481184616857633752029195536217478334044702391752209341868314462896525100604857448281536819993367856868868834520532480446026547539891870243254132176794075463055637465367352557401431111837838953635284312838793327670285183295843220114122707076235104891263550081281327344573537528143967338427256061808424250101271423792985084408962750192093243320349675828221355049858745339131048188712719156860986038827550673861536297473413752906979234446889402215229937778316617457671979464443572184582304580126013475109427353648697579690026412654090616739074061205723793446597473606479698688877902804217835220492685848275273673853596978804807016460833577796791820233538907336145812166230309780077933098838936113189107753077773924368853002949597897349486212035875708836755111262377706811953033274788262824970587895842032532407192836271120728158185841983793952792952644858684057980908708027977331098405083775380328444379133166694049152013263698546011867326801801430140816986523972520236329558187455816620312786404113960966439777867131112573821533390263260077030921290200906953530203395029799631065998974316483686306161401957927051422102090299198905241291444542796816619951653195356000374696924557752187137996377225909796511261361402205280002327031645855887722983609573897684347375041469265974560833377097595577584345467749124870937020894058360948464591000502471406169527333924780955730854052553008085051146047353765481172955809132150791294688846707699173299184381417687327765636349649307869769121784024892452468199118621463598076956211616426193311212353316393494201207936810662732186511709520594473460223844889579311620219016046468770867872508604547715835923425411873431326305657471389942463170042069800018281831331961027639612244906982428978810392357335940333584911707893660109199912436554672991286988595172629346576533379848347441585275004304367409446932252175636952810333972119675610803849106755252186926230441188460426836988385367259599208624730352317862464865386302588574818097733497387593658198152068635395108785290804694098698362516061575037748168797635481339464201801042790224918886121469168755846702330692159693953357508638102324609251370600002892607394439819106465170217439263377629776613162578552841441521648474867150780709537762506375911290061675500921565000809168678573114386937699698599019976289398384236699488545299101183597637730467299840620409385835889616760439766605011510390518716942951663269792663763541434133559253771197843812928668379749736945993658967178032260828368239570995253535691836898646075558400539823278708866461872444543388291254037111807875655336080855384736120563167794764022610092934048289637325459639400790433344168521295776186030541910491528561796846161961910228485272131609789027889360517490682166461838939460372707651865593972543647170372692211958381142238285519205211647953166447495239517134593788214279175112138914341807520895721799719237686397471776571122151871688809532194525161428872213477100656843456498699228645245645070137824627194140892515375292780252149867980057059577259374371812063499672950376877423984363301360509328341768368930196230547637948611082774608882694401456881593103700812207597271099652002739100805120321064502544104964775259608146087758942564345042293187551092822212126315736566085838979262621616598800836928897662578718123849119751587027652802718187937656559142575754878297923322878395642711119911689580017899437714848077625990785551006229307109223405116087647343837516944501580999125360187813862075262850134019421686654516601893753942419232608858085572035780398158638375676668470112554598646065993195362231125757312569410663196125962431735855695055671174764037270228139291764316880975886445527546432100058198992207857009061011903786243165399228926427415712336633888159068981784985831542684110111914512481785772223351164154967420556126975888316275797376993718229928975880697764738422111342018219630242984312540999233936591089043088748166441068347298511909031560568026518820761365848028810742207758130239114827172332218196120762392630018798652115506502711319718428479507462354553602237327404404377999004648089515727088996107662659295152556437750813590903464621747310097021656922501060636859618317033693368129857503186504455723243824490239906832008076693993381374394116016671789094825143443101111779662848222284148817914007772190062020590789412637819529117929782007760240183261781413443216620834785092786720146602773085930213938413830762821936184315380063997587725985061478970305393917192790251450204037037537789421215212959976374678913717264871310788095131480793439776664100688393589426392228595630466699807073605198342870945174604783520206416611314244591488655290202202260356602910853326532878494247730370020375781008280502982846285178677694455464555074742264883240723128359552492622282314275427236353891996672888529134225122936692325093256240635928685278990337208660819025718367480353722890210427304574779012741790322278257497861811653470556849463637026507292939917698036980839413515699760189578587379919124516161252039777083227799642322233739436915278068535490798213149787632770145362307168547623839783388202503283101172817967290921844563181902555345354256152551942346502830947733803629047782773033540925764691857585223861627113292747018457529514777683445963172824285172612862228901679124279291757418405763812966736775166729113796431750976163342357857622527304167309390896061969038826946384382190972647219594595421143676662718900539864093496342168550099696965693436340127446197771306990555282062519311687318330680072764432105646313691743634801285118322567268471723574113065412299452608335756191413426122803858617701284261542897482325777588218255715556798815557859163041517530567189212050920902451169341559550538963736412024652684029959330934883743887053290934431720794220334681169858763613544850953560109459208532393935303707659784393921904435140886475031925352790777335619660313326132254003791914096101129425868311946721163604535749947736536285373541344690609095542644551489032580254255432303624442618903250688680283832041318952391731684341041150798912823533102437957595255602525873666728846750404915833024436849846179442766106686797853349668177920185276997114178393346050491212832845181990269926211274778106294706149593028584681455781044692836577512897392265812052996337240683560918395500477655808505927904599929083153939703966826341807609584334157321747558410137357137792744156844017828450717425007206288160824002031317524798908570648373359181675472417500926592522624666155050212068251228992846627719919005849574777501406543949780857258018380302230348313103029649268320568665748151043785564328353558819661328974087473078194619426513019601509121769949086775951171793102287589486708722115530107717215724292613535812941789967636671299245475938590907520378345233739489802906422780531181090841109761122308474877071375926820882967795565706846355899066444020628480320206332964618527594806171902019923731024306948184384367988299496631416298840049972515965324894736698832037802654411567069226468741255432815185013930466555450992055844681692094347087295470544485848132463145010963183141095560747373181578758499989888260760118343997159500394664424345436788928426701160422526604703032032587456126393180102543942888297413126936474981824061065342681728169714722721060762848531596862729846738829143922859488447148085288942306235918250814096661314914687380468382472973971585356837698229201502903593018484133881407897947012710660806543902143996042543956523348900079196086414450569996056750509676001613962390028173399597180245207401294648953932716346800989656852059001097580423629531412413424456623853958574457927127796256444762086028849470605019687655263455299944407977241214604821275102727384274734878821766716712794806243543277369482847177370627016909199539685642215786000178423329367269880724058293165743099834115687295629362246355902413879471535464430166605258123193694955575360506403925649355055421445505246819726728197522548990491642406109489871061445457898123284608999847316118104826091612621820786228353865023274344673193056962593574853024190411349094068301183880817843264796307552939366986977913338246563876559730733374441603420280062557597340097146362724847625925830213371723580131776189650106608992190038073992754286490510781019402813006362845633999388394793562073265086421403605016728845908298597672639074087095631067327518358922043797300103834188773393049693841790140632139359085839204336569345517627348932026921752120464021422803082895413164235169115005449584112439955312012948916880808718359095690794872867063817265755189342733792842403008637018250332464692901239386901402224365240385495699119274829453624322872538583902064376302840817178770891922787012514114626263373118862930297733249577259633097666022454954358059916766916755003028651549282474421270760003778641109208646041363260831188373605637883630805724700129362755269887424603731180311669732785645806512897723505038952160130242104977303171254444174380758963469084746776654509529889155118559521616523029769673304990796533779024639293717872654836251212709202226533829403901248420600693966306511471048405401649373097146129132180459664004030541025866032235994189964914841205342153397829677605228066327640327401724734214500545972407420129428289719271948975267040081316703615882290913497724568056984862736079964754617946136312966117048627907310834874559260772577260130803040798113373573869868681319516983826170153074567474460852488298622324192805754059633626013688262671398533581774333097880289816006681910110404888193499650434578385046230266069387345962893238326851970981178182726391254406419376379678445230957137776694860879100535427110180085459314502281812116305638612785292110733728122362149238284725493171748416734151754951542775117931011153432500449716622872399463131110853608774197056090516309515774923346677740477127733585400627948884137333040718421367621269930956533380887849881327460801794625619587736454686147321277575836010695823188978509534707559805369513303311293746490737720582578973039723427874657033022194101174445020580002803390337097583189810922398125698726956382228835289605557028003816852990610336561543398739858111048058113375863980762657828426133902255096119414111007952664965277771371144399962757612617615125578985460849513606834659717896424226940678134184140851753603397936430150541331089647986639216199919749989833426270358714191717425013267424571278551248590382218026092004495199064835478853688775190157159245752516401088191901694261867550576861145529734388690517213027553221905601728774895570481000101260502797195693423035412244511784811800274142922079056636998053759896118313331329719093779580571255035289971177466346669390009784043420604770844388970953785982099278171452340840115006635367115139553693852157560513939825480829984868650223500125253903159002301588136056107000983286433778725773642858776281379029786891273533996213883414698074057985526956611794024878248523477295225981886521647124836123573857756233560573704859593582889146509529535299639203982350630613163373822516490371099954402884452195845988405273672674378969681093924520227160309724821814386478528846374655737095677769028896920760571495717794760374321956959414517237820696611639579579593598123830831060911988629212834935000984585378115271489482792587552887821957543014040548827465259061004418357676300484423843596550031370827258850895871436022205281139322129850535841768346698492890003830330338133278238622515085167710179519477637396369668335571879653772779844346890584562968626209893769547456347974709524744747411370714548726241546428624407088974289770726822992992005618352522432445660907347198928539767393178287902898597249407390898078007534541330282174425478111230829082307327541496246192269394461604520042016541622278786190972232163966192515374801058337874527450008225244638588475620076801476653555611558771422489417941015455224278489316159142679928036615125253282488986883462688355188379342409966627692920547193411823844131868009483440926845215801603805969433878485622861005401094970679906756156871754145354035133784376092237554069347938901699796185121358150986612041530404159331900021436286516248908192619013083499726698333970177490245201944374497115356283282035400432262014884476721888068400711454138742928432552184434789539064597232615715391309497443215219562370302831560185079615804499647953992284346248523223212549136437928730798076813902688273344963409934054602004840261500323460080453302240737494332035368013175053279479197675457358891065843759733298728221427785007052765478422368282154914436872447032805324927458950229864678511973107154371995718731562656112121418643182818520213612592043771048762679491405777819224690828438405007832829403697327721736494120436335814590086655509503741542589736605160053259759870852061284471068739717560468860868481765457469590016971755006274105213522595532223903788489232437406531518423639918797586211206482854036796957896190787714336949911972475066409201921615984811132149908511733051358924306029078820542243978831825058198692058736442415188874872821578843971713766278769624155018215190658890323383576361051920418896074869124468901726766359274822389071861278631875495938258659003429150644863779444087768734991596896190065758535602499532916120009334223177360592482378078634146702332276564218628356726080918783642586718757899897521942076276162162404891628638446485409301624746158989038591519331581168519335640771908234711260941550489753684042781126223215746220784569771235817254890221846760774265068217208122949632435296061864103840569174641046797150069218226442752458707081448399344963398185944977930653078593631426701584582073082754426253591943127348192874081319872821788025482003971401282788688582921385584712214672836642167217259443720043395788950365700602177204167188460263932353626803296718773223204067724914856538948295799234348158750503750493268493352040328589854240816668896512975667257118783829658475176653398838274844917334748304223807719363322307762563793859569244151743306143796868101290476636920873934149887467011970975278912483401468158991757562859336895342072489215354251919736016385293125704104638002409186943050400363886996088869264114334199184750181188916150737988134239500279917402993559787029803730851407859263046583721648888529856744308153738514698347508342114302279132321049389041710540513220034578203894925348584666162642089220420394351889743031327273049974895983110519975689873330007749840697398552260048802855082522598488283682271267665695122673707903400632436347745495245942441317353929012696230957665781083730856750087335049494414528083424245285691602776615788802963367082696389256703233877508648679744166405742528556991786758625421088418676465078045385247205377829746910206974008624651941517017683529074696580768118369009522674634859181845705340159535964327759661029242427131378150368795325177908377186218067062302452524967415271844803614892103041558400269833365185145956249507918074246236649100112656137556983065360286500393178861084493211457672896094264581894801912103937888440942114748614045974744653212004023026466446998808109350172414579888572050746965703107522196473941430557801251293255919060144083792358494427040624429526955673373400295156545550825632036117316509368969672483270964361630508951419537188782054757964703884659473034279169286341424849610908135685621549753913928039763871820716213122499737565140090701910075175564902004829647208699232769703490324111572899937675479549851700549275903955598311480244260867862734390669114563163569473917990085239074924045854877687640175048009582963104084414332043797061142807860355666035434742954874623929494726658797886929809944024637414895207229400306720118511190596457857688444028154772288176739355419709914164406531758370451467122274058190030210513654858217403546817165968524462181783375728386999409945854007254331693849845254634958988661904066063861556565247464719252977300913784872856197389659476864367292003908568209598437808463744169637808660826067292535018311773764051890604666278363224470220599156717461138142956428554244862454972453779245021218391708270501905986844905114949080671146307452395557372722250390493611167799276955412420417930235418685068606994820805809720172161387292254483624195574892514880645500002905665783040591672721468688402874853788490240760569269764684007967752650943509646633455892151175073921581178685233212543921579444264422394075392922034002931930811824538994394492893605014760024458537793714951927011657417554196545825423879412300888069248283873247954075958446234107125060733330225966497737057270254561164544837908254316104665553662897260077781941940380125363643330918703507285758787508262753360222204465327062081362161152900533446528472260730810936328010497345418979071936768929491879868861476612395687294941877678284984467124618396421039594986552422602853859693973794507287623892227673548685897721176154300156437371996116403108037632565097460506624427728788300136179769147987882621820970557435709060061546291761011112331708136912430990010206203350004800673602021246057079678930338327143590191827841062046559180993148511375324303376904118617574288850419931386430224274123678994481951396093358046991961914991682034473763282670717697841703805392159317343698328351031434549146626741923695142358124508937149755113090402838422591591089317611128646227068851595278613395220747778409069828273627532931894441779924231835975986830170164342075327919826320736092861938115320023304258375671766645189757614329576746167868751267152832243402612042073501571795761657823865438257535339718677043356577248965103686236822661913336178965343805248725108173425178873468350054610852255178026944730442569835215464357345159987422611068219855538698131219967642300964517079399775433904711145281389781661894642890835409020367883648725666472347963402930238649047744003287322168568222328393499404057818119483892250266394279523456889388683297330850979243634166951833306380246344073220600770616133450154992500893413842134691785134584218717039751294520506977756097484894448083970581740830214224462975126826125744003961237634343854979136095030592412692782637702949632814498584405092750392179190857538482152814092367998326320476600097614497090072890667982432464161592159869468821425837018353451338894885621033114053499163576372267663107774559904771456664165901847791625162443633513085209028074212742214636245073876150594015928174454758507487782398615914237528361419087529416654576177388340284998127881919305540251246194728039742169212903771811783384266366700107926684691182096241634124045119208494506814780676562025243133513670857469554068594611719252202691962245818203794612708822199266128049118022372012687162427882292026683292401994864452718069183644210339385341518128886525740129288324031235097451827697738058298707379133070919672778041073110535101406629253228789770638262634172138390040524906308277096278305843890094579354177406609170389588707033745878732940663034282437230049504058459488279002197227005459963802685610159609999914811408051440412975407101807155054610706484553364692566108601665719745674619144033317303033906969936944416863098072547828383359142405880289719140474157651106428795558737375243182020842460341907059457442990145263682071218942696392555066353488918075128629751064406240483733497452382170272424967187052592341467134792298480388982516498238311473633353483953610463384279382868187489819082231741859143430789122087485214219925158425668017698270809080394922433590677804006466090981192552730732830166018460778456063610896207685998324361342983341662387192024750844248026062714169503742151308222169919064531977301090822579298253874765796181739298451043987034582755360999434092578938811847977602295905490161746078025777164421269101817708161947606462240114347718860829829872633540582238072560723815875934255001442903427032254577952601469989258898482294113904117912159369267057847678366798781921361746134597080402263697344566736676074427822212190390760609373174512268750653892630585442462042911960760857524379935785535389296379391047515301772433847225384144493102473378040067003093248625931390781542505019312110593571275225541482629219338525406666589372690239813626265518033614434572771863105746314432048178694158283939288962142317495629348533184348820203588818988568736489517534558181469387558427818270690718992799802622202974040995399999061709037524311527377595139495286064465590694176547081612647890698261043871403946504184545237291483882376159507069010205130052845176643481554365835266589160795340633398398507645347038554688940981685812878414927868294074664364525149491443230251312996643349952548359315757877028813935149152388149637321010665371396495588913512866810627458373723725404904439518008512756273623251736955729975428578508767165886583381578842446464175120688804224354910003742659568812467083969467284341055552594931548889513272007332990580857796590132744390156482273690695963994377441347909159881551817492072203474084918552790491922051640917252225962230454465870790888578316923146262989924699686772317145171109867671115164842324698277139098967665757077157149505197171291848564088031872164257630796355526335420156166365392206630151589699867894022245906879441171190451677402501176377169691272716798004032056792880676173087206531396467871640228502845204943816959901550231552440908542489786211029656039853324285090305537390869182291033719064168945853667399080474286241256935533949263365731402548523977446654969405028231440576686158564507997470214825802432160582233280130841402479726582495028301814169420225477348550039061415391929032886103454186761267864791060512365358695547920485213656244472128704824734698096467049394446897112590437085714483833168060762201106519101602998237311626873009670373237092379943465049863343092321232064927478430996186769243204851547466129128091841473476952335925040067295123277814325745959986109495037546278183119261117932223359856320613143610892400161644751309281498799069644136133909655995759638981604788437416816500697911596065281990470910162812189211744151492361104518185720683202123063803293625180257596070696837192746067681802545584265596726225470082432285836563039636688188637252862131658618700040691530714227046121376097218013118158867167452255796362335773831446974815329531529955263775021751087039604526896066886915065067383996450571644394551224132273420650615868597494136556949059191899054493443319108409734623228688421480411300996972167197041525318836938976963458940440261159643884115796907701256104294728598548966626503074925966057131610926385498240669927673060210966745525909334116255614086318246608455852538892835277226923599037052105288862003128470876906053827888674848634153071945316383695795270476947157964468199108204153480629052215540617979166403513673841971224890500968271274811521682684019864477041905463379375161188545375704030569802957968613156576565799342584803148705570924410802901886268761681938291895466869694563583658464105047350796616080612472985977866602993542646095016277819857817412046640985629366828915134987453695165791041605800273053940873931241539633508707170230548535076567632809899876982562032784879646639406651138667150613149517203987105584768393998742127447016616004454874225002014756915563614517905454308375253216318991438505054798710358107736355511924175190596978669602910568775138298167283662937567273220256304881520293213519356493032412790413454897025318925874977091339694531841184239753513338494041567395516704767676097894511415737656384843544212981302638399192472877843152127647918465608747248102372705302419264122347164697549329910005171777224235069176224305173473817427726005217866646726539351448750986842853643867613748654143794339375789606819179839470642950715594780563143239802273231510241491282598870671091522750943649353267600031636167744721835252008346012180488665898648336207841169390123456493403740074475671768935476014917711282960333420284041566765352190965792975255591105901173915224270887258503415757975287274869861909128171226326531028604544026340088173740959166475502439971401153184737350310865561134858766736852235039123966087441582175638330162692528817151201465903956458480672872131384670558208101312421269845208955886104590142061779243769967724416879975341859199870885022480291859657334131005930317879170076442708706469182885203684370323517278734622040543245981772902121980274629798517906988982954672141328116717789599085488642432691275334385341850529708213891793974823239330645082004454965232419920724584099064677470087088664876269056767247565311205961944683098810642989938590421242042715055952553561468514570469936915140629015468673688004206051042536834347262658076161153172950000466701519249256943886490307889115200653947661655889066476265335823138155880033372418086289295522917247190729651192374375333565084828057473513636678804370403673790948401911670090241904910881692778883335296099783698113091197828613465043688004699501843199103894954350200742503381294933322451055838067262683877399623651753632570932136701893378609840484028913573565456036436107385151194092053857290168440106305718934053976008249289838064763290076374770607177209027862491915265909570059924848917653370975077790339223528495711883586536631960894494565419539107362790256501539074050674792710201961007124146151117467336568295684917112130056762071368314098091106685666370153345340708917529261885839810671371567086713931698609251317182708617628234646330255212502341502448551689952454919670978514921670697311935646021045503803330948204549461104415566288729641190867309387301324106046740961151283612474719939338953292138485619316726872486246561015410343000336533425008306959696559120674725780582044694911339912259775724524592146374756722574993743357353107746964191662472712000365382635524771900047251115372983542975628835674350170252837386234561540772150968497162695827680135576532647356824497191812293579236679576273943657427033185466506632207296754999411577944235218604047414907473434399948480271956500688347515135564227582753194506893930388956608602622150790797626003615502385107506401339730051895716366295923070361708102047322590005474285000349102374103805534059850472726876128501302109488019211864321730494535779204183148203904763212771527662022631646395373061751650986548553588864904007757781685693327501764532819576714375043474889357548341813972437972914072539964510104087003243093283127556413106340453358331639915385530671299857536873728476423585792299067243329583249952303301744223720902278849473825584252746183587787096719201965261116590806481777603708848581132446832272307391185531076332245822291588993459943687233514169019023851151579234574208267766009740842991125353469511061112419090272893480842505667904686956779513286534336677589318723139215079340852803279157397945383894286451211580720386331616523369710522195391163242349368557172946526765098871567028916188087186403951994292376029532476195188348403418353631137442892505668088208166517184456232042953719215789319926781539408232391209798890297341414145968142908689650637700664280017704404561279980479653223008674044855417534440039372656772044217539412172460341236113325178291975215741478234807683573161745710995913884752145091736522918925139565657180090424173113823931005760808967995348441830523650587528924134640558798217263168154456328850041726389040591811641759426846570378297503304404422209022935747338775979436167660180023571099334318427648939407497066639791358207629681926901661532386322273492456239225899857019975684420685517422839148877750901391864919385753307483822988038166180330365884795972120311376944649872132519536048678998048007636009431961601171927704221502611196317238597766165257035857313601386584481373882682853021385321093448013289837511769664374800279677974242392747751693903417301017725616109380485072425241349798144277295968638219049372401759804636779001622088426638355455408127042242640343446992463927861228050884527096818511543902770988086540339143684361278219175187388958737358667956970331124808455236930651073749723576796847123123612447359236022579092761455578832421314897663228829759948590729552979221509526200331847678144148286882358902795285633534183699359049969759225999600522350256465655861335351261424036983825310421590373922976050740673366090498827962840119338992554329425135752610439781172573870564789498981205108162088215389021357516984813426216474217309525344932750961472887863152861586176775697287756771245407704911784551407631380943131526062778074062703375579258718914833445644810434596638627003838388596085015711261664948849138576819288980897302029100892328767097788669904323745044085884660851476483274877906961734305451005514832941894995428741154103260066424243677073686721897886088164772074888141746087646773606209854617514058727984910255449521773778029796163052937660023065323934920606126916040200670812833990306650724879196909564231332832049643883470079632008190960746302902176689112511129027134655778316213255956269404559548164396628778156884002607303572991513507534482754135134121515096715272915521321510509641087479930687409093448704509894912044371813788712366811201179912632404867003434276900327631210365516419179180485607775674195740009608717845898415149120307174339667306325850516106542703980655972717805881659660875635643896486710496873360212825657515401651932389188622282496298940326378637637141669305663249533589162770454036981633187802613041055344267591280864407798278952276357311840266406381567498881011153514019630900455104845057089048658087824480377726141481845369158726609695760223908849981588945850323927785153338897792533791380757924553257807888420815214365849572211778622459206712111657225587068020167056154450095006842804016870111024697712803251100636252247236834175214467903357938907675337375524066370326222203127180375755739299467245049325370711415001198056175813132500689190186598414218031443044021386064987299542500296295702634931573812214472710881957074039386671685367907818966137922911540726045292452035185540738524820882811760229407949126483302380942498235618343077693860486345110912333654320067589308724999343081134206457555846304420532835408578762169699864558548099373411908200207399485173268606873358746304563624664576206438825842665363946954334838188664395947288544856736796508342551982003318112704784281415264234882136273262212358505622880397558512758134795132913251318201993986092129872397114321596550628963362275212429941651134841455206869311959569081380540644512648543140197699211870839791347165110321410573139401868752281905714080340555242222305021261432243520620634903731443382862120874031103234243726130083830448525078234684745358369075993583954618327105313821486830854254325311812605078920832848346473647047083667115945105340484829566307102766025421128279478734787669140033095389945098727540776465200525497405921140021958504370902029769165766690194613131624877410866563885430470841322214387093997463756588984893119454590523465179448321155606186836971948033258080548598042960302613100323852514888521768630957335849329958659875705974672680155810109736752237727537336301011924635471858805180650022330211842360129305405303112450967559164857356539305877226235939187080962173667765918599881119581719337708257501376091733501648623665034760562733776756606693662839313661921197398971824208480441672943955985842631308308369723455905942596916726690460809531896828802587649670535152175773070512296226590031104412777438379434779762815700173530616674246384174625203519614334373728282714874661525825929840499934185554080016806287620658228467047812367068894397187088521812050795662142270060130401863951205964466417277963756681519166052008270889245218023958103161650111515125840757169133913875845723914268979513427918724889737611465996008096261856146837808934788263094779064236539680269651964169725361427361653396470599673701601594094944758101562393451331710868146073438132796951681846949754911979172359352459407222442414276058983433383403850402810583596592354829866036978733239019591696941562543662809638631063155675942893403251146478091339566473226999302222234113710679530371550988495971986324401429832365303140136018776096580435818624042466209564015397604203885649563919722174939850497131196489989598382355845003681325132291948896181401558023603153615428418839207069770873056729798027464678791486373438063029461460122394493481643207809406496072178892668189803062307206413808341088591164454502866543501143784565567339311796104839412387355475077929298632417115554981169637949010278198072771759701986772702657046061403265718712811547996636484374450085383674842464430126379442395913288732650350111215295600711130337667527129551567556917483554167203519665314313009146367234237924213822961303604198921751249638175978891559770604100040481395856126439145688376523659629987950416776169376087443334306032449352736230754470396119432870572806509155136912110155487892365568040276799766531759439502169530727756187738765369708670848689181943674676593767179888508402756881844658018145352794331668462511532447508795284065269069559832914025338975713467269987298559928841631759822548387877370072373951414716659919390575014928608356775516912441129023029087716919526493372827554017278185279250191517284180995597140117739212577379437650250039636621548008403021469683734848602778654584885681872151236773911781813073329190414692984869346265984755047426457410236682187444584057452880465973216467395067783322574473955312311978624761290153166318565911225386920980940475553024994953003465479645987045976582771422150889566244320865231683751444397536226092613914827867154477872862342041440308686000996915610715925854574087419801651559470114292349690689244605563536279723843124358042933764379492244525944391124013310239632788062223480586736389646274445528440711496797217245350890045779607084742373737446498780332873852288924332756298341494544448654875213317623786286946090145403911592216105596263032742334261371567594150136993840634745993404008409300482827811957755253085306858822462115994079003194668924418439654492585149503099611819701346175418359901063021587704679346309729684520708393835023949747278764611343753737266641220801062457415822085216826330443411604532613059588154590973322936171012007232348073549018629021101222304234432874466913843231879495610920359059890762736122381883177613953782254720466954641143425642066076670414448929951077157050082860961637860378427734287764233290258195800663623949040815893944372230655779067915480541199240148103690188098021527269095060925629367310090646098333980385384696418809980622486611105464807189121221623793378197334550415894248664023750640328130802148203836033078168170289621268540001163678095191783234330477356602502926704204506232125483578314977028728004874570423219461511059876350776548359564270360653830853670488663612234592602419563839725074180503177700336470735741597077179788292814122228503217213757537525419843291417503219400193610445681460127216707695965342108121071493827096935219373324676039940548489483969710942588045125274016339536989035890913801935122474715174377394545110704621401323228982665194598588383112510127587004241052004633757409919125951719097639819542564445427886913113828069669099162538261100909007790685516998954392310319114529935495437969371389242751415919611532244812360184729848116533717869023122895703615192302533174032393703751911023303786361420813676932791707831096556215147843324784733704639666867788031571794308068555659793483187389706978754540496476627326068092694999747475030183851665263863872162966825092269237746350272743899414209884878826936132967108872284052828638976890448729319323582179724377339308587080409719706591801299665938556745304807486833497861202104864256259289318559335698611694643234587202264046022693945855553987256031832372941224435042388148825764210326687123172195024690269142979693624836305305136522062892164595526153863422809339529910363957355888309879462502401170201024463399956579815358251395867725935902259796986136662472179741021908263588948635179307986652376473264101500327787553621822966283580050825519589692845207364376233523209184675551722040507466416450354209583617620321516908216747657461103945890978999604506549794647291575263501245161070673254069773333539135533464107692936861757539438472678244500471854182449375282853794119340122796910024758787715019771881077771858385520532458257319863801437243971299745060473940256494084737337506774502765639083647163180610130266735471234042893623698136540026068712373960858948947437251675325261965829240506000501139780947843355037849092115747706255988544891698259623159621702536077560060262553289407149498380567104079446934693912333963706690935447309741185569358856250774904822675661778329509970266696530723415313093418432863685665245352527392375237650754672965286815211593906262817753074277689028552763065426785567689085612589792096728543154792814879424047508573544107327505661218041442536932611814653707424800473459261367526090828872778802384451081872234794551063761932409595379573687675438357058067587117037280605837598089120326472653761215319213902251017500015751002436029278351964476626911568531851921139597244335526379927051113901220102528104479993065337023595800542527350875304171471197576374735405602857959674604513696199493041537186289910505706365422779724325063195893267441515028644607578026401920394604742801993014312639350394523625146736886392976650141888125497148516160189525595455003234375348663779177175547312110633541837053137088166517813653695621383958475953037249857770505053892854090122399886717689969085181086378766480822216666627914179554614326147997824949698888788297617400353555022501954255682935066933412812197307570771759016040906109095333040117973899473842152443831416463270458639467484103100534288286463834250845687788154481558558197833969788267238939218601634029693862026737508693882110154942696057974770667630970289386226640670663107949495723550107271472389238501407924167083709245248986964576386985925509777387315351532387175201865907822216776773702628532576966212461745151140397522790774732148372768023199913372894140531822486885553836086589799992792233743034389362844191812309836654705475394595179914960419743371990745553651955601381836160004173301234511242875049495631894015534551843442722955124344065936305284885466909550570597164008351048679967765367900608991972946175791041342293626992804638662842306036958571485776580193158658790454706684563508677451816474165367226776197247696820901569416296610791115922465481707553597040101213462578886889878247724070898205081863721368367428773790716584031376484372329801084869236079243379670863932291877354892111457784656379573281255719128071544490614411723664789371446503971520917813179791256861114476693076793340450691597533703998360783517923657194157233141973356411095931178592958406561147520754495199414485068290524944159496456068009093010885471384331401447652404976470293179942156354579286585099209852193116788867856556589779701147256602568243750535869017869904093268025308184434286984137319688174848124738357310650173296713975315106215932453074139770585729147554495675884456107084267479577100810865578544122412914980178221267186817804098050646321622427454839627102532858751656457956842729605144730281763386898998096187915348486438681372256675616849027636749184069170985989912832383657720168695253795805992465940791762125187704400179423735003764895904063169672674991312206911097420886562883017019216425276347066860133515702600820517650612900633857993910775626796843889148746982469291380144698665394595786434978655645525208859831655748205433120325093659735879627165838464474826923493169030960991490090366822914746699524710559194538980858632673521054670813958342083002201709894142505441316560779672261530282207297857216356174510768059357417593750869869228031474694379596845818627424912366269859631725112542481045373379531704884995467978286371671844241240624795403188652060776063193497209031531215696042549364872989773193712884375452369909812459388697914920044118180902509832923861993556822498204511219793361653537388648164509741525755365345768835245053832667860927693176442105020134848668062616763389072851744476187753507945700977776161458416113188813782613045317003523160317208649396702329198030995172547013714002386832043891392128046294480303813280449482119960405776755458278419177435330420236709468292852842307746578917592896621473006497414168294549780266643576348461944822930782886972848324730764331565141501606278016804113940933642633510462254330509002460001008573032046328703111512349976207496117949621376373547182142958278560668157922893508881032310386189266059549643837574178080102500668094375206358304897017637279391606953320360276779157723170043183367656338358679687226617769019028939756948859740256195695217871100466009899394393574047127479761481044265859893009076231930729064517920572679928331465354380556308169355656171390102996117778145193355143000946538971946299001309993007130080843854638506477152679927066574495171771387520424240344801648523976447606194475187471191899311257489990804757165996065583430723815037780290768595761138235079432344143434928104460734789509996792833264916651273200227472274810367960582845413684362742823583108785611840982902243069219541558876429625976600940707171083785850593083915174760630455531156965155504414887215640755290156225328194792224686253737857203872652247799637668294067062225817846190013263402197200451565867970152322993615555142955006555194660784315561488379650834949337316798146593860004269001070799581254213649697420371159920468290797162806821529737928446152372362565732374189929505744636151134669871543728168985371710472940725414735145784527112000377781523358105410138240613495052510775879591429638777251229617151308103831230232303606966239128177086353971940452415557020242869314196969676231126468808593762455661321292013196563029630923149483474224331702757197190633161597723108171331240625055540714705383098499635252332157623591386743904292644655750699730100472054444090061139248916884256995305686394913512763438322508191349431684620700865514578807073624244074545318265429615889963284507517839318338881988412115546495764407187684495134782949297810055747116061563870396998425528002427977768585625263745445170521371885206343246460285189763623270661562568800763822717651551186660708758190890704228291267241754884058299566217759873421698616496523898553054297837474635655611138888909897398640726373891046824154576407865610836918743196764993220784711963804132440583449621706324737477111653301667418434845454408313912156135013880058216703724691636980559131325341994730959789523697569677799538694921945514254274135909520593560073320264691307941005469445357430359098830604327051751685548304488029545654619583123156281030582156955998445489253880971203322734450054949569677471308121805705159995803474600790590503773777412151393843617382225592479402478844921566934308422313468274462317793791936574583181095236998783282794480145552395728592394027624048890490852328297325930172216857153677019823441100296970714669945367952591107379387505182672179631288538366040060007960158023222356828318891359470330186363098628411700198558147557848064589886335010763128487657507495651233167856421552551913848898229435693959736789904623999583818698882431238326194440739342908674290761077760435181461635129623233031542406158825450284411449142822823110613280712121206073795886882807756372293585693416113964048013325284894134556807772871481234356570274310188726493953323975432423390223095417579199713446535408630568021881315236816154466005674257713524653079910549343923811994743209829348355401245596499036051890682193165006319747735213576325416946185643975416345884791536784926456074138832472810367994769153691607631740767252705687833359898886331549626901566259644082357100346344932022751734525136020849874787032859429845335441738157964872006058186250461148810600992046251052532883938965302528486608745859582497144755742163177055796106212846950542466451934507678312894384950407817707064135993515659937108362053887190156058664957742194677427153069088000286045434718376339484232154787687996955277877831267913875267073157062519525999409197810757209664876824515566826250231675542288259003198346374312131404853651153828341672320045953640199928333816952818448591066353924083133812484404730584821459134576124937561081746329816329566742633570650194906268191769213498242913953270097486935476968642881267241670798193008498708486814211444851264655365541507763067263612806157879592767028124744482238851976638001265346205457211883401795394632148230448005544541104722922763034461588727957761524364156163746977409744436081127861304654033408714375378627931282741640081826420863396112628360286391172887823096854534092837173655942766852827638080230208251189661605592381203994952134020940535628915193989089854684329676281437348633349960870114724910429968897415807390061873424166926816118940167194930217171122799396231693667794851940038845611071207342979039006594340784808353715485445420909759841559053944759664994790087508035949806204386415617657950788044749988114089782729811027241842507565934577480014634185516965862071546832636118430945645555289951584223028862475334154562026653826867473450824508537618516340634235148433148010827853923477902767295377189229167696742110436684742738095087734551178422473199138902470278948630965177681281897520096514405495558879828236213961680615018328438014822090568064858638743815206431357457524315392306251416519230951592877811647701063390781517240422116209941903212705377840658512635422456643167595362677754097301143224378474935098012794722518829152806774186124142862047997014701106213858631311775345798441627777338303433627617971598616013299320687241004358075496731312841392151841672460513684273246272315881268310009945859204571730788563357624699047064977454737810304495829608901889667169607538031682228523113703134912655118826081102492376206628228847784659624447471819454233354794726792838606587153678059358550645862619371786862039880691296593984495377251006589460371875863512460410767720139766790876988626055011373639961921403008638499884047681457406228468833236500957609623773988073127703564570960116755930314122759390634595048047622563459008525235773271499815390618608986155387581608457293586064234908961781689809080904900945900867294264334566267427855001309818725788058911817898659467049746908551664398105437171362399458062217209223764621758624577202326155063303299012110058828966103028793676879196994574930254098640972725045304644987972492738767775331899697435684315227513162090635621942402944914737429692367870687324520791536537174758813300904980849803714754212039623439683118590830868716282821738089670250136165577396241017521141488501977886480354472697985553915889352103251304591777901673134160537215643564277691607526441651868212390882525748298815763739238613342516023571040081411612011622605122907564170959697933936486379312010120676502274842911936116989178311052876956918966295917474202649460260382604354162252873625923980756712761391220465975416708553613600807344894421874538545607728076392767611002856022393905419663553022607411983040690443564468453482917902663294107378673761873314669569888383571855116596804996818927840710696984553905994149528594143396484549795647514300968703635293446664424124087924054385776464754556637260194179788870875570460941380902626027864308668107621344446408269980974656652538654702663278524016572428254850326328493218154081598096631988528013225713313614313215581070166036404606741177101172037277590732633668888789081177510461179256320820888413220024369392050891200240307082039624973705692386789954468500835759567561728628681581314698585053998635682107005460742929670778622140014911088434013469612989012311964128896003555289914700799108708801962963190156260968391800671430034017048102884552530575988326242586084820803202840703776913443343637639957186006971953626157594414487142610188976197999280375534910897565090021462233369423764851610085201482514152409801855653420526501041390917979603796409698217067963488737010725981481443214218110463976422882320375038166393804612891704961150050509983560536520972422208518274535863260653629309377412372525610224408387052113744684413732558311336864247423369943883191022537522186472800346040583899848452362782486911081801834824351926448497998948760081327451699611802906954924145632512397712748504898176519588075281271848871653178310452373593416415004558592116945546828759981736315179583959342041045226080751601620091544403911727158145139413177712782883979916134988967990917561758500753356936843435673514283926641282555902400284594619334459191934921117415170121555768834830907200954997492403658994393723282442407969813109769542471591911292894329849881163320261327149417735461214329932631244032704664322868239161276179813208103324481973074137392786168617907941956304375249018415533075054948570082077618237645004277287060940924282123459489243224016088128198437636709173090694983731436913864854224133668839742770725799491674130758272248724872975877620236668323483751016275447840908506147628913199178032313106205439414430124137111516086450369374943076855669178184364737687099073303982999114250227229737552004356548844426637385218715911235552046530206272917521530733145809652091615645231600314256602144382069932336910366034775159646645347206460351251701121600993292618137109307388557688986791090964103619945282637070031328584994529119982844438337617021627267576582369250067909585039919932660902231565648666215341665828683254743154085665364186567354488124392227438697417758821961135390588432249858283384779196066556792573034997416290005381177912210372747423526816762976519075430057233597730268442462214722399388115898163562261236478214636200452907376707013429888904752179307676012740242603484839018216741250015659357371285024160155758538163320869136710627358791685223070252176033012285721404669233478478408007641345879482186365591897559565948865494849023296813137051433598456087533052171563363330452784425749718910015041634057112926808295060873424706865676622078977009102031866510618199907578230035238058125595771861830022659688375655507353507812141664525621459396500302677979789628648926816279124553013832126615651286906024640555521082245315597514296294951692279014349449109778997130738965106324212357184901243391938447568105435845497860520580169438527081821215700726342278243714757851504729423299630590683149101362325837302194774935767196481286984657584658400852926428659127507363775794514307491976799174236506273700315912549166454554252889800346591785862092877265936006134146003702300197640662224164321272849070406318058605637070817537874486169367247379094839747193253267744564007116448942819901303679242780547846786697081006340641095927174120740071263515494048604059726404981223526328334579755843372196847924664700514807140990499295710906211163230977484126232221077364852235666638102438546879002435532837280494002205424169256543301038406808110913616927870181886693834924716469490936970980299579091390542583748539529163584399427744323037424183861419032150049302286017848687565200460965984152006967001144145626042084366826698982094622774123419201779446747514644355396443836279997301206898397393914764536823381565440121827543851446556443595171279205631379530619398284292057631744355435044458818666760923973585265140677278539515180201771041077076186215719781202168209228280051525399242625129466536731115595409837293808303870613762841211787077497453271072240487805379666042797790711398927292471966021587964406769702019745720134710188267814988678787979494643065948682169341801024524600245245590375429409261936362088532294832662712084968196408297772796219123986155290104796373253783041706056948423517204482730114877176821760228706195138464687442952699803073399672434124632337089310221028813264786678919625741873277185461007331248052841297433735978108059686792315571239301416914584301988103825031387070000969378536774181931045277897337833702501937481860473669606109319522874270206592312304715781872438793493398596758575998459958951622763310103097723338398940558914034193815426882963942122743547618496493544119926364369800987416178940768402184312823550243510516214142690656368461384692958439125819836327769638950819749964575383072902836975593487354066290624752834660086552445693045489315931396790839568680597894036404214852654015538444810593726663021146372571364470422217494791682842188263561499855626093552422935725748734563415770459829720803652987103511474048580183728749825374045317371978536075783392166901066495155718766506833077379145067560707061745663529284392753366053930242286851546755332462019053720530251755901452189325419699756625624021345934645062955801395776872687335238120518338894899106463659520590234040375513145949988596605494991637866311844957434616632763749865520927007837392276377551793370532286635983474817574695755689774674839749387309073207078569081329180869607336819882541886204802270297966202051006980806128772961697120756792082090155477686292036146074682637230289993685235939393733617252235036028140339295020712879072767132811672560451338675997318817732938094792580426421115509756630877593461702344283161025211144277860219707463855012475857212998725835529230478249271655892674040981695953928047955470494560895109262707097541364543965324332103006157209752489387092493372202561023392180900570503739836729244585035360617556596154216549309898505771329827527847598793058885924649615632583361478243174626332239231346106582431854221228709651184510783509969563641503919687385090875636757561459185371855485078713996323310098381374214439498982039484522781237237873075527921722641673431620161121267831569503120122581178690686575840294439245053120388898067490334876466438291278250125236923157286029929348759427893499697088524836330476608734851904873697199753126100313153972725853722000224957352656026691161322768376136860196121446342602700095321349184019773007848849980048380221477583305819209774012212325873507720743799253615939482685184055135479342630203700506351843872689571276055363395740722921578216519710475560012337131499341892867152704972725156088875085696996677986422411024263844635291727248205395268642228095633408958725858072674067766376953475279515443739241117665695200094178398426742794035972365927421975665821738461771093823001304426234737792659450917381074216044587410405124645533042403994513197310287139698935508639264122399159273904510279193557559987126548962609581807597795357374159188367831080103932245914630790536717884324257854064132138485597594094902029514282681839749127509557411397186053960035595025725210942039031479904913488343915921578288073676615523770655065331714135078609959131617249630251286011482563107227180449539574492480711536876875357783302902920114892021524119368102188953547038550909677470951918385809143490634219073286233200830789951380482228862681037037179351380596987157198495968912198487970606315862621065773628970416547905092167319407494983004802028423693845974526390206754151866827042790934502178164388786156906793990376625600428971497211173356195188499705622994893988979555118325522565654100334978133437966720962518354214522093696169604959161608670919263136025725874258691337160469646663218705024209976037891773254348247508039333210719183326463800430892563732485401092490283947184255619988663032284343531683850055017676459407042536874002761621075757461798062074069919624401541382714177542180486753930553713306975837530213777679200581472100974646564238488066894705442211935207552966597422899299394873342019024969565028010365487160814466224811026495811464179613689139354812643140377099734588289815341805574915910635795331668332794524775753214743148222976536616331690909235053787690839340528097932803369422625282762819410523480406615359178094156040047913840189737831968183336163001796477197841645970897102396010787262363087126047568371229036680694990857551043934694034264276709233104042581085913077652538005013577549572944147203857574203990890620224841401701903879237365558603549159692030597003860771857878623770843302711904900470741295922359751975754406525512587640028711580510710224542229047044142901753600406740891073493801608626436288926528765082181735511218861942087933169564756682067305425827468306687049456195384543685081073611354069669116240541083021018171488908862465225317100908521059925211377170383328080117455806666181819814183019092673343929480252415598794672397282179240277931223196066158722920872831531968098529793195049306367908540846364816527202537922679053000772937559903102607100033081982499490007258487922464488315581300788999230163366989530664150495992554419252045240618023909050923661481946509359174929766707319860214029613559396185957201950734680442321188568620476949204765010733482662609906348313207149361682616627839201818408467450334592878574444080102323685662256049605580683329234030341132417181664015801102727120324075149985024511508714280142126944346180577172339159121251106790325990897877134201071334556482711655007966175718842040511925231436419936356331732174786551502660485667288423399116093958337757908947886387400272008460397420664092286605620033433650095725991776709401528556582176287529075565956576028397345746670456241892239138335708615465018221920999482182982478064635669706336731060831981578443451583297785286351367544790598305199280089944057619373020765098121505773256368814377667991290890885659341375412509955340230941848299126294401795365728176802768706655993240956102173461167853596397003105210610543594833089866738443318741751051925307279756084843519783274078846698882199635140744100394983926342379057559961916276548987730613849468321327282074736483663552731886814664558665788796343662247756473968283988537942351390682406884761639308210346192026241920355239006241861822266161510559526957628376675887844228285528530874607197448206879561423640627942693231988881149863918198994940616506784068232896347817549518085619035474571497082759786102481218822427233115445976064131368251600375140475384687413607192872231948252973788066356252859764445596785670644488530865112386241938100639053984750068046898230422723025050701403271863672948168027180975235035265059704777501338070692945083289878074234113298455567500826992252931581354693761614946122458698311296116348140581665028956300058328602404939300984709406233266228596304784225471339380045331502082132703698375431427973205666039402795602184425309406112522590984306621665978508459373110518792306454303275160831415017676603225449168013371915465327155584551011966841212321283303378633738559975397468410376957648662619808902517615287650506474938525347627927177922566469566474711454276434116164320983427970449883074732207848993757382308649647755611559698396029190669710127630467714708644896820131828511932880025722332667418802868915097082169738204355988388955185899244899012035803237734671344759930198241271095754800491018918806183558701220468316015082974418187671464202377348570383879220235973591424574295927235149255407875635503931555690163834777312243679437900983645945788086999205811453727354581531842534807153350959694177297551188334921159101787739111202374300644610425568679312794145108554905771691264868322982759823324096416877007936346603932959671624078170610275492313151438174359089751984246207511191081378997309385738427870173808841235847858212908438833656009388176987783724777743545591978751523603220117774028606167308364067817291152537983912444445783584140854889960424694590527024710840791464861654489879440926900090165373955863360087045366664223509423115607279960973656171989435314736090049736727552982865218952728280062704858113793013490655059138781639992478881731247919917675448088105877107100785574946532257793414889567183482490455070522190847213239333186671911861643307990507560077163607885742910348332434731138407657754996910499373638386812650054062187871466424624175321586172477154408194052876591835918733060670702303483528758811116609635604950555661125703028033421010116019371503255869305028598840615014360768010408020773911857113898514695420766059946564666025941758008767927041112897156903162636796394838431853828895743521115227061961995321770462751741530660680823508234893175648477094935704085376685072625850557540910756744966089670422599401924124586033045181960308309043756452950042436067505974873024157605492345416782016772962365261620479996012174481651476407453529863446501919333077542869733036616091171076508141698312961554764082857085710844157452061868262013478946356238614892729147799353957347064328058550709786746855893636721291243242979242796271798008052401497762315662740194555171279926936058054968181766569373892214332258870075022226500137936809779296501162968359533925629958737290730687970264275906313432731971822760256097435503238355460756770330056549361832966233517343542083001367143327773569111850732525534346584667591732060801415550439229995734023995237098795045016320685062672938613637487047628898651209920680494194540267670244733238920782552212733181461459088764980051993156029777069973408572316692131440774195078147890374480581943241646753911551536736985233436545837251228367637180640807760380668231175565347132775106417534591221116014437858320153268804673689121350266505347178075315644498923500173769110663458364193701458169269551774719072943808628142716953119540718247611418722884215801717583396327017650917454562625875212304867696480535844155297088168578622527822537384875407765974349308834445732670730166924100969934784913378294660974158696554747317083527775163383447411566876753217764087429105786229031301685779096148671846469515742483335378453247604640210660690002272830833133824188465067870324894246704597248094130640205944454748057316037905667319757626396263701808821166388580667488239263015120551015920964146153796836489485324066229316333211545049601322509376525758188412255120721263796041678233426711268917203440871042006212144774765949036096560803694586862013046401085257691445920725589014616131691317804952151208979315860301730924359698050315338828898233149608984483860077648474904399461899903764191730295426716373724090213646193026452636502291257041992867880112359147959110966950776485517894359786907973492832217098881531016976702313369105591614471685967427751806165327509451536282946519101370435708299553939660046591537121352077000607897238474806651568814875601693412994396965536794502891387939510876603719464100103020006897135210048968235068219398033349347614844977994878667089605115056313127357661166320022759392990239016013615026422167353058933851799114675134938059202940880653540779007336401155304488744856931841900380437535119821349573784958491426257429368236613562706656954554047951686397356964302573823653307871992476426697600199803686809044209689256578114063634036079764374716751894732518468343524167566066669271652136574861061259217269322607954042915182665429188952852763030624452537370276355309927476642158627387670575274741485687536175490008031757247817282191962787069651555907003031862513424234196675522249411199314098862000878742592288579230164729995666851229191523060170658050409807250592163458159734133087245766068834113915950195540375399811610452266264913089154205490732515576286132911114670178900599630031710990981355748215295494633613642202141924271552027344364154430024524171193159728407127333627986020161763879368319681371434104542089718135378099486526145900404860120560237705039274925300400281286903540308554698935040127562653119305227806755266455345587080765188316839633377197207801151413374704180251162619707009476869105658353211861301197142708160938830925900699561537772213203501670164052457544755658895647635820077802383941380706479670428508002409241250639725098802035609568219882857272448217955434077762551917207598133224504514206620572979500405923281989808350336271908750594971058593013109419084733375036620261896900855663970768576139809475003472583288343273089230761233868210994571229791788228139156571675771282637712462579805215326216526981634073806985548459123757865018019589724552986644276927391752352188318329922947263131409388891163993349591262709496104485038985328814104684893736797547494362532909691526396538090490220869530929852476769298331905030801390075414678310079986331519167769642668194375519882171528690598177131818519414645050276134903836693137823615955818966483769738072251640108317234092878432344948777147055415078622962692040512757978887868732328502460477254454336597361485807902493592963834129768313582447757679304681699539835762361076878121398634687449491989411849013616829787461478045066308493842082766562025104655330989837003527831438973138516110901099785712882001312460707425667115545178679747402131008987152625395854137652485229983583237064051459685190487233191348064415566330116584276839249946214986745458736996313685794616259355043179327639537017456872246850565821271873835172069607953408280427806649012919061417470623213874596129277637023367701914452343067678530440205364599860447435807329867813808542979107781210192166059522622186190941073536678116633054650771017535845933565372955347637804648979371162161579981077823554238961131796761378907904630019903417668608520265956239756726411384348367912443930416753007911930674572076208503394930937490062894432725036992014818540748486719245879572348212039813314842435019488659189900644242312802998248256061052286708333311258520300749662573340787994716089320335053362655580349986619529582568328342116607913022670395614795269469228120958974057739869855728051195194615836503667598051049791267375982089305633202788661587977769991373057939771488121324306546175722591097509821687466156573139796497384740481109020626022767572771975573867062310632498439229570682996741078403683717806097671065096430129614623184186981954525227063781127925655446730892759594416513107539254629172315182827378338996191556257714972273181042710151837842895391993883473862223641601263534594295378501955690904232821347385076488626651393963504730766806084958553015997914375657915116138244374879207303303970773291197425924704677603414243487283006449006177528410795375140111107228492131696376490637144467363854326733075454504624368744131470458828738910406567107487779319096379547752107563910219911245822837232387759659244953116877687852034435924626200889497008592157490913411845319771754474408734131252242840223998395147683372955395664780142601590828675134445849319329128720133702883163498306098761183802962570862446972156518116399321200779917234921595626216286596611788330402520339899961797118977783853611443726598761945404221560122322457252091888544552406463166728123642386799025780105883714991695141553329505248020427090200845321255972001452471113747102504648109338178662992638273237198510281009227268123977871025799707935159683431658919302789112127489554048634574719228419835542963369685330628650374730635575467670426967727304920007694271831083017509321162275542326984238688337652470201701215484274775185329629457019479231699548657339944745462405249317058419637421763321226352915053526357473388696223582248038496710714113541058664803420877524931620990143178163888499716592600160317742708822963120522916111350011622887981596801957782348461438447304617929081454719806138378484485694152980502651647877931333991285570327477581162021443308594465013598024292767351012008180167741416813846154071202470550022662504220370042177996329406192170446322304759393684710375815827014008497062297500536627131441170312724863631259140889443631033424301337715848138455101713422583746131351893673745455224576171327557712249518345761594204239191957306251470193081691870500944096866487303524966018953267922255370282628482038026583892185738554470060293192456742434189605843331209322026298839960873454458847256694299819614600365843509921273735680931847143821466803180957211674584164220905421881941315027025463243571543444868698316320079208028545672186262169696002328274973406970312374029940801702260779532731066995858878417593957428842968695060209194380074091018004603037235022736425979801556085276477946058370231054470511303839440146357762538682265342198747070958244174865552088485879158503371406842818969730390694229701641675280049087658729013335753539385293630960849736896700212375788284622905119216953703950017571857185638056431614383290897478564897624997050144406220471336976321469490927466919492463332483820923939978632475673209687469412396638974590780745668570351781814058391725930943145564190468431399815291953109506742907598669303383681148092338420532024923284349892950390772017779606887736953625882975563341108410349296155135893662294042864308294899050178467516725907061694761456540303321255189417801414907835205500352709738214464819069444251604218653850116221569333509563398207430310933278264716240146441291228271855313201621144558083726089447077256667080582195366937552359117888722156740112948765257686529171275292934733667115117872155094375691108197157630315829531217772823087343158981712100575855198923624094731670682198166155802921737535972282714395874366860147982663026339514928559622509494855687939875325832769163214687428535976643937237686994427926562881604405106430988830323532640252613421201092847397402196937807616123625939894764507573024405411497629961390877161263745363244875930067341480529021126764971336126169257358855054225149271167751861551459026388044383980107097311039912560226421750201531691699903908675555371163530139089644543095976571584034322956976462358773651989859658470479123542752668224267929964692292740037621825972527355777568700744452106090389257197808593989574056518327571487668406132044387781131710848736119067441501100929680880882475657078784711551188037253568488483204961871557485563869055506809398375848440634020398148390936879844427817156216644774198053095890947716353634508093145868755776088137957212793926373977223390941360758521490611854752892246258794651070736779695850979513790459418050117728040547995656039991744482700080074660951549853861754508026793175878491261316728278468304992990885114960709489143576066051632763350876592332558553668443790557285843662019445935085344708636096574101775854912926415020472624531554434291089241433696421845726777208435735625105767938996320497778095271605502729974825735324233616489234843248060356305466936555554109203122519496442859622933291350684339298212485130084194751660534580933957704095883093683590952790219924579237601218682859327074238948360349526389364322487974491151959163393470735982374888218977384985667092912402512419889057502716763790569333029653183929336204128200523898913077266220576555862546571520743672512400563157434887737682074661215933276208575648272365551179193276617931355460147802483198762066691857790360104749614963002199486185135478787892477359092798508263749547700119447466528265022612148561344211938254798509957368200944619420296355921062455868061742007475698270554525843713899583353417346983538451707435339967102058867132553791716029215547553435229800580425079905440592042514664906663990216469960791099168968721611156762738965814523958742465252199157802336505810890908455954235594139448183353794171994457989926792960133535021111870622741890717494919433268514957096424166846319071642304909278877988052245054239881436240574283005844811216418292035877944963043190808514928459975821904844046132326562254451225371288067581853406541731445659901924446226574484541154668702078238504853357294155725986532741264693802609132970981699611485527615427953717357100617769795276333657182585244030739699538685430511366221656675097285256881832576911023240339887328967565590431810165749479512358449804247574600305263404984959700055886973801776597419583855422964562416350011633079844355660389841664795006312264007753069353522776476693604249856006596964774317510994455398293630405366548775795496516773562450985754947796686653565202780329475663531628319188195012393677306763702892044673789883836266155283781691703804459761075497953373770726665414599226965614111226606219872938822910614972899620953802767268583538471605203218549117822826026481606007246144600601591624280702942365766589811077541996949640047687321117486534174168247970468319493373172586694297688693088601008689658260467978958548635941542307707891507113632558431986636551355214033386570517044562799258140165231630135087778952592151228690971570742642158080236270516307645442268096579866101241221291034153120377767121903529905086003708305396508691449069264636295473787886231862475425596263485542672916938142541513852395668580232366095400485130886183076895105693743967201920304860878235124249163955567051653700609159678415085552635719542932868488384134612646434122209151536944590184895482922970869665900921266903038029713580019722799132639040564739261773293925018648888557575604284603713485510491040906946297727656337428572236847229936176017277991979194038750854542138441138676585711159998200584047808565100174201558695784552199598923326074469873220604503700204106219431391784121986268590603151568083705755823832286786136461181040878213369312275398628593759880785127297095007537209223321750959725283506967197297398228906387439382478376460151502249215189633601298273108164737679114375019292110411880263222533759526967233153812303837272725932092204545543854271226716171466987721671318891289217760372469620401862297915672317751487673809874067759653692898154227661937233615637848091901590073344709565043998308447213703655499964651478102054660543646820854894725427840932185555830287219402956199025188425586656006864777578871336124337282967504135641688879250606091638485946366376715978401616539982146105888837350325461301678142969263442002435010571947335894359281431008044672288590233410131126330229644977048221735547812809972940118047181992519954961820411729674508787594967680518962933045860829806649114799071259447892440750378292435793488409943547403424754361553801922360249470503740301635387184214153050255184978681167311642392048588282053885775072359733553368277772999026853248898589466734122994313409735598820172776956472047801448586172894819566866371405526074385354510629802024011929789666260185949969977182649366839874313707127933138284991068087017680874203564760066291326918321268554961799829417361137415991480250330489884511425426590067555801599898601982057205904531855312487733486983040429738371630983538611912952853610019222253044865810572943211780188721725673354320030513866459257697062554872710038252923961687163186274973402716026808442832100732946177884663117306236706057239115231613874645365310796289375316696395938175640999140752374305644572305403411934199865146821435487923301708257430900269554650407438907379015793257022168575422385959844939767785980118632446198955497317797269247185009415741119243106164254003187081117880422030191109154634891657710644288651339202310517539978854474573391218131233292426209010818725366647241356573834625820153410835013114165269744164499282067738376102796094759990529731823939092477911282980400100237717249887806479016926883643589186775271943650634888905755444744115722316229823815289662119407303142466080341740219290303610827761285024277265494036217784942479864334342366327320205231794080897371964642835711176688290267919126204750689232614337938872827170907869394137193113774867647004961175332849811608802291434894508966122227565587479784631508418791413136937335312150150849193654890681076987274067859976497548203355458668982571577112854953592078423316850748440795667152960287743659081533958272335115006330130097344533913662815019825469115407988671647605955498091517077707556612502161197897889760749152548304561706775707538105128672713139953222634870679080204053735798414786029885325052837122349361312146467529574953055480283912814054033217527875169151329482055752001461952219011960019097373247051972601351815744475016777608510272833951840122653180706574658887017163213566364660883409453012970966192232375330139551624733361618281768809981595344654583316387094236547632388170103986639061933159108063783888241503088511800358764634001558859950486293479530314071245465500185957199378119313996422839771505756987152239208474918834389324442539870158334254502470174653102739788489594282456618239233730022080821448112586394331853963239722815791095323593521352551297205895500634316100194655919374862911935113529920598685916370148562427852221443798132639268482787274517649014267781376603576124419345490400975975953048317153859057765538802823155567613077844862584511522540243825038976017836927784328951933241406502894675868753181820420472375706396991458077110711171971878518335951868921412835614337720246182743172233223106601821345956299055073308471982754015922838944514039422309860961200669980345004405353922093360602478764088294610278891754767795374870642788845201711172946198334676632815741952035258079536852658029642416321646182882040108373923819101490121184199396374403340030540735670522609790820972983674703906707890260019552423808832786073580953982941734970113035484176969770630703906767445591275203612927298222760667154424440800563877359538748840734256853087724865028611458699308978913515664317513730511648539344465059787607178154818752410238045583249722674835371568130773165956497652676419656247903534937440593152417682272303316075424715293530385855259413986951548611475602443579132021667106231874137143051066244097912696241462792658029491343558987228094502174796744343869027400670284568796473081598602436218642820365233502334757691306099750902631126915712113360334496061923629118127755044932818110210501361319003411278718534446089063319039128254962342558796262604048728622491371213767517810478487517484501383825082395016168643330075011076580424708940046353923109153143089637468936282878201893533936711473724651992918482370178952198559621118524596841405987598760453748465460989912495626969113276919677004129916585352786228700574066764307262740376693045648275168753723256028237382637947834534239130599450129255246099782025474359581461408191715505829840042191575250160691569015072781085152788569381077868391268459585653555275979664251021684594552231258759804706223246563483879522674969101738251317317129938243702907215204243394673915746511349507681296881242396056017161188301049110148079052904632183042708537289522751160030090104618522281545598426505188518438937940600781555942753671364412385074932209415991393881080253518318196285758690878543794425842284733679815273115992191104354945634792528280782751707581084819411666598902031716765825859668107361054046783743199773764849894932759855794870715114482005148564228925564340659101801150849470246552004836958271116989639086413674574589615496395266510694570079293367700406015527815148036664815634767321607734376174066861623065174666217428643084462595601314027103388479451827617294201878011154172643009092955122533345129829723059393179973138757099179293619470567374225543087152591087231527332185353103821394141971772545093915143248702543112907446999398157444196080458349574163605620025253574776381553520660602709536240816769451158866290651827008327794612965792342998072706349113930874223785709022102505975079177450867258659917313889465996982411613129282487348564461064347393503793092127306646696509012531271091330017967981138204418791679256998419218972958951100357088206832681024162482881235453988759106112268232665339449519253451799652356363288016407931271949864687704053025440033249919344264393188769689254177871927046874661426663195675465079118400987729747544708049251290379746631116704697597289137568001275839999320203142885227943932543045769676108157491871275626209218361670102291403274174481569535154092510568439209370610188409615372250652212834336573520013563413898559717914864620547412036981265943559095444076772369078322736453123775171739172020412978675245579225737538987003296649938230619473942756882834276001799303457628662295472037691282257222346375593267781188308132965768110223624275128667838279166292892255149032690003456400478327520031297958578604340055916251035337747066652089600207443758234355596756512315451604877870583634479666690387379552582552165250688463711980956378199125940798676242449018917397204545309107625454175525544853467513282296399297669251464491184992465015083780500323768212723488683619193471721407957344578495697914775838998057631445968279381854351430837718430812297911176118998645375295307203165734934000236622273819462770128004615393464793968895135793608472406148250848985468380013012800057723945472751012919484241522561705136438083007273628128049571166084430835076316058900369672547988492951010180376200999306388978516096999300732484917348955322706048218315147773612581336517554126870167657345092016824310768326294863312392753687640474790170306192932080962437208421671616350137922384359606330598461677842766216924783646619324348377123755570641619146503514047665727676872011002764493530898165460876882422194787309217951748843982048023023861817412511257213742356472273555799353951598359191845139984444716804333415343785549786564726559546657879399915269022300055353900564386205915646662970538465177018961646306587694576692837368650440062716635550920917596794867620529505926616645268929720717881065788633086962251797842616709695334021503340187250876182902262003348278619952670898984246531332041004819552864299716259844312145394720201118874062437722137245299013220786170165164276763157984618230896310573442316337735307625051855722144790416705990521879339284690260064333163812878997962529900193316841531028849317524861795426642377996369709740674258323519726699727796551084479815033578981944971598161615323755584914573851333490666892444224667293512861617006300468482379937945251818875452244990680498514658926625121272733119943062288137632639645733694998623955537822515462763609380110958495053571769021297703431831295925622402809940629941512793304380694255136150530595155237083988370411686390363435356997399962456260357078049711472441129256361805792192225840598435112716946082479386793710535592627239505637578934729609700490070131302190081108500513839410116502721588092390895237476372264108954700841244369820983079261436699032725288661880317907846321700419470440976113172335237454092273828683155759025777827838406781569671594420454161024164272140145706004571864408830471281830054611221578374400634108551406261338157778272232386992725379828274819425648390253523021701395348095873113908891980817622973627136698264273274263188097443215458961020439153363570523094992506392988240473985061810921655626938460156382036697666223598146714298468662041311655445179659999558321957667044195228985392222433704524523248888893927090489840462433961784421662843812167174293834860956905156218700065239432356219645532600250570842128506139335561656096178370803136511360497982973578701839107156096964113886113918370416656366766863709559031463699296000706513749883516773474233397372365113113174838492217490705928693903116774114570563414285951551490434934380759567385046843297670436070704145269887885081413927418181182822488436369473120309645156336377589144692377101581261741938310314786376914511933737004860042358127448913477601447904258246023078697297135299488291361039811905896193888529450294661878424091476147048253394706202123345947431764643454138596547014919792294366980176296511818464249130539824369370200214234813743336931812774218126526525102036224396727179216077138171965605687394708799807406669080276563344273929109091912575237512089159304344671641280421840909724160414888753286571565679319965965053157430574660155465976744407581571234656715569169033397407290286604423237179032117218984647068429822286770566027005958723042925249674501675953523934325859981367853525780659330380019657133804993745101682782603533447457964799255061056953777057563942259638877257556907877215222776814988134480999222898911717983893672545810902347719796935685419034281413966041093720277221808046785922385425092481680034256217075358615520894970335413879807358326743498038966979310360721259791126945446745641317547582890645434353568180104498660329847082312809889867256757774365290995148752596950580380717415627281046618565123500112840454120540415947413721141335301361604142559770836243757425873289929076800315672916261312192283783793796994015297866127486342260401008121915663021417445214527653511834005828524129647426337425768904178887975365079783976476008682552432109247424521789349116306984796346576491821135338518314142272185218042372134321637938117775976290967715265763053531914110350510703467863614071701701187683715606451400471945500345202797249663230257048268107679603596287005570395808230625336015939127882953440883834859365470205454764188737768752149621360874927600404351793799099275119408851168192117213280830609167271144934021681885710653063148037432512595206931604980960244757075822264796880715648049283065457428604024034849987695436922878213597904090353287362859475929277079267664863611434244235019492683951137126739651024813345684057792381169827266557149296569465930549226892427650468527348237444064984879508651210842449543067571321300823588222728830556218192253906843298546851931619186800320236417907297556686356197715409282856060659949013228204067691249420136369571411150022194608817984635207606881771065983753080004097091473316063568439863755374794048957371170113354352479874665211793698781544493636335748304948923396903180730787654554541116901515513004894484016218428641553052790041656018351970919857559992126964694605605523178796438374995762322267939665914839583493272181450126672912267822525904542649958731604120739012500642409797177842123679915498802121301933691855199915580554797674447028856348991327326460841582808651873528022855399509820313025572130401689661196465441742234995579915337839670918559183430238853310282190605442067769347799428194399527234469646745240802076981101605658926046443386715836771569385498336411972460557741857188303861346982392930532330702220998805572775526693496651672499918789439753637560162929288777110808406778417893521991364145164802436570346075408913165873749063186893618657164658220224585247283748104202029613352742717517071425551703690658603284728224817843692871855190677042800703121752181432542419200988595129998827336372770998870353358106935335295145128357919958382313231541114696490224171019373584690916259980776788397437258009930174198378883429706336877717957667924531418677964175574682605084581697084162691522347031954919278211698169217119631480332477410262966403622474581987813598092331289524391572740437748613930521381898079823129770158153878935880755292189966792784183225388412792808517439360846423962107011557381898313940917870571901858330049882271201277543454858937704549323322464428795011605398203110299988715565155661135090689521825629474786628377753497577340029133258927538559804899694897475554053129504702334838631378638704535058979962825200544384351224009654804767528557112946667043049545442771083566402578426040115728948800112984864469512966736628798843159770369626706035192278262157386867213587236152316067392575536626935967088787902672533852246825986266190038171712638011761869685485791280802241210380229480397387997861513392445881895404356245912346189984048352459978477811736307996966866523166999083313856462498047139965764482073911238444067808395799441322226756650372961326193938965062402912323585137396518947963574530031502620398358973656238211457433507328892763968774234154126660711195498081499091590119791571333068832564202412634798290862926640530801514065354403675266895489368219240809339008145579413996321328240442876476218632554540775481830444380885514118805164036246839145034122354251998986710354396922467618263174895343732604938769590334915661794748024320536464179735917707761153312359592530727914493786637320978497025935006589609063302064755931831147500528948671813018513819313180676294784712012918470119361974922992285889766542169246015394075949273219132525280920100418976113564207914985338608448099605843104155037971848383649698295492628472895258681118552227141300786846617976308697660710319176483529826703082217763900807400664588105289794104147664508310353567576405252197787105658785821213319109935627812632449710968478365649231978958535596030330323962018210852641314455397851729615838487445641718854603841579458940738078259511919841686953501047835045693171277039044539744199876908014238408376208823886860866478836728666084657631664382776048289558590760815312208996017487849038687081119747293973997516487329107559715512834251633235547430409597257074783323564978259654486492220903739817886368410366227873888060244873152784336599557395119643629273217105247566128118775309847476771371260082994307892519448984723848888892452855804498510404807395351665845841950216976017800862945520052504410546651873313025444692855174761197268540569592243332962443920239091197716988897343003573061321616372065986653032844785989118367125723674220649473463211439519161802612698787586270311054100621951150271449168582674433327829212356647339176388317678365830033341679030884643446395960146267220177655296220454318351561837334007583150253647074158078824213074903354630576654595743185592150401775261521985477636904901020007603335322097137096185507572441474013575472889348905131874955204955378415815032261459737228707092804364432950197033794161391766168663628493589619734282606283623434301583926771604321084789656505001367761677561797140821779572704398819769086843945420070088935913240373760540443791172520296803688276939566943279759771582441537805177312723312915901383315972550245985840810478252305418091734421732877798219288535272126117939666516916484655206968231027867256562781768745380225871720785920603034123974515483756054259842657799020946968807579091126066750924713294683114128141769380242929349992912116888856268097649364024520098672094452521691100805480330340011611053275500061973590259046395960172584642403822026220878985031037508970647704211438814788570293165202940041743557562023702618847330912622046341397106779475764619838818384851668935561709038013081901860506239724370120835239184237504348657139945345260105843080388769572395404279180537288897561582557123290006559141787362056417493269682851921590470470388013951945941752756308638506265107147500383454088934116700569345673378338292023278426497761732412561313004215993655428683010668658140385444616928850534319851187149877093215200477771239221265609278633884713287507725016594398900618647125919598104565094163179364115541252945565051338723903287203524294526164057462612998615933803251559780404063403044313277934190301943232846735276204650673555157886204687629011493324439063248595283491649824535163631269247138167310025183476873692583829818932392837818840922023026796436310699159889423810896935317807039860416335518819021151991348568397245229194302840342091928398818911400204896010727668968888934155511583190877627365012069207239062675247231316416571219646325650471372421627423856458325606812750064251901474320955375008928091747738332323949434065610183540344598612054076687792034675821423421102496933709401451562014779726117645273587858136495566393682641847964616383564170561846797910656721059920701713405208286927253358514461686950065153220788172005753518222033191068740564122755386005231340827928157439357654368844320342309461562463632382990966014347947358125406017368831559085704520114064382356398049547134550877676725528057024343324640477695595651857753121400114889906845982355250240903934333777854769737320693189674276175329452414057057007986187672380419373983026969727493768604480759420040806040021216159135236016962190189972109307764594758422688397894699253891732294777636979446484107804546961299551877556478281549688028202576848061367314559350108282007234322316969731616537199852208293943651878127067001308310380463909382208120250339128050976042097533227631081826600425208548146075996047818158065769167095227873046619259766993250834518451696954573501004014817196657694199319562433821095805250837988912608090917256536654278806769204870306699587539773066771804565944249795638806552588896482373014193459335961997840211569377125105267315807988180756996770038466467890223464143765883209531756863518143671314391707994852261130751698302936543629331876533972613734512700267968498733469248594235687993805178599725650512140207726835176218253910122595553861826564487103197397749337163920409894355984147985022218232576910177749007796641609871531584666615615721585713208874933290715744994425807163319851801112223384048184420824341022895651159264413613916440290949137481911156487950352874736235033186589588170408841414273559292281865580316572611862621876056492100461316377557074122309428143039881055102536990402461686282514164828629387695050175530089407780601191547896164823300054631020644811994989043447829191687155099545080030834924056775240459315244625160612848658879779814907874656795504852410313938252628948244686001039548891350378783737283152792316578912486959271528189296072040490144766632200542368560051900112070747589437643407867742733539588917635782340518065372919291049985153586136673011408827470457830436861652313918616358470143413839129392846164168471325584718538275334427162936464311169031146766390819972340295623835671159814875392475912384962312743973838235755299077215528665550663066801010121918010524306669304716650640184077373004556884898766654499012011483271570254489989677651280728766422423047600127890443267227424255337013812898852634519674360144502918250373994948949804568120280417951388603302309806233302221330295967621813039151686795636149490402873250576547792329861329743895935881213775752473755221509221523968708474490788115494784126155487353010000822350619940096168308741722718692184411629333051549692046119565961096030411665852921736010207312909934122639017864184806599001516340536153931376314532363931756989948982730844680360436885863877473780714204879935494677500807403663421881477128868970699309910340739186270532641526411824198278194133680400717075449114970620922386175684703415263622556271655702071480800495122833154250788573238797101800833743117621356924517411662545069547654470896732562976946442056538796252054098911286257238834439538928110356459015564591766048187818544914344676924069965170999049133554132813721710972113594194271628206660268116278843257495185219392097732718846890897502493204725495941309870369371045099602795318663914171548401261515915866135564690844744804604297615586775833895629450824243175526018621040824111431479700980458218757777969694840769814933218914109617570927789669522232192134315826630316831011401716148041930552591838207244880556465037224819817901707407789727968042642388017118970195293179252992540323281520513542835939191419298489042637404312076932877390791528372550027764919246005458303047055384139702543307077532765469260533177379649855135888790346905409959084792924678974004711928793023854194493599209609261239143413440477685246951791068439253157294880383204467114568106746626767582316192909907796022217147736650461339113364079807463282280216760041052968237344871721365796466221877656500082114120227618685581237001621343237686403859202313234403550348443053132677951415868466686002794670778357989702979955031946940121302760033119014843204982186036250184220803204020240117661611434848157738722613650524087153153812256944537943259502782952232851411256061910409865514641619437338772262319263800436878583774348955248374440768000413396847724871440171560412222362981424306398470193537527647801050856544585804509047967494560621500791632451637601523341853180628627798687823455562575690691728415673467075458351034912751215319054589923735480407562647607340466950101491168923300053804471484506813608412917902548598659295413301182710230649857286315551212643755674102634396984762743860100971825765726382525294387475702354139464178207224376680528732625725447427190472158577171811492572048579028621535978777406169356934590888375400831668778745773566001921790549365117282019084118914719165197757931713599551660214995641152187688732113619601831359271849960474442638733499613199669834976583645621133635948503914813900863022645249095864379189384213008658683296501182979189232006118885040451072669211315246146151934571194115105071570051905738158712933177248601041101546470719013691384879807327829248061047234044148254553375443072750026350636031127325785959303306957232096517383833169088815244654305303998462927334070740971564662487469620493909343218858883787034502333648178268000067050846628482779506278004662382640577937828405432322089447908772719470841770145639425629929405344063658335504323749818694941967550576442964582479628586273801797648925067555962573671734897044790741277256297997414711488744527758215132897266873938388605714840455355343175922739336121757826723394131829240960604778096218393611113267512041710063041306661932526902216391305352091293854671191081778616885486543997044120011820434326883309168023370902123533332173040266793837083614800366999812913992330769008529602917550277010294984574190446508987352142367831088777029078412896333432798025980442142149981592639642297453867072127747378900246793905436332087385957367824491437010221857442131712647927116418835670994333674773199349911278868081889479860861457083577011476425769918373503297904683006292136077955156405159280065272689497776006256708002930081107675262055138681637881550877667584871687677417598893135954247545233399414301164798000075851305922811254881410037136498225854698799430774324090854520477815179538068966072207383002279732612095724490838879534670818460079295269422681677991981446100944670795580133863363493194797446867124812729276375300124275790624691213837487874151246147700085056998665869368839564011799474848733172443150477563942819703014635044212615097675010592393099606681395608014599929983372353431687484120626878617480920441163967658275261020097359824481282904946063047431846584345300631767111968787624843329663088869074689338696365277159403531535913577067730241601662180037583805957159674794802411794843699551990428434558838571336489428033013878488755719799102097622463527254011656150218765981156280328236336746117851179626151276453702432812239802414071857702903034629018471287089000519709472884544536342572258756360410449661707965608213487317318239320046641727308525107585151061233330693418023190050591171756537031481074279012468461631355787820344782549170490212653232626830374216323485380077756461658444393600334933290174783429302710250745885530983736992171153570213078399534220561135256115109283034719325956814737870878179609187751427895165438982958563061687098230533243959653374291911398928445746035868499999608352689678067674675479341054256125353448596671246006592764642672655464514175783948349115306313187867075309710451142758724780472798462418772518292677145720839428404162934337171211136380577389687120930294176761285740279666949729969256874745398734211681714591573470050650294909976290225451988633132201447705690776651882120191857936420778770598083529444997093720062186918588705137269432916437812192659381476781757277229137132049681763504708648072058391372194337752066685975532962118987738527909332925534003463245469270593174150452444227779450846453252517152777072724311828796667558831814679359987146607631551250010652114653713983140208017796070025191531062597750507847303797913225615999944683109117953515589855987604381572961108294964518107117152450573017661212341749346699443872757389282152204696455855612795492060912129709205432759275837387761007576144264709175749636275677246420247828786197587681646760634125275940943566048102697689059945637735409098592116331652086895821383292657026488627707896902843921166085610202819018155969069362090593874587687028098137614425163156753673590897397863083760314528551917655382091332181738213587332805002484649193210904366583876609433911444718628312164461569177371367457686543278477237347983433207620951448585790490957231090708159572825172315817788565392439770982305221445851817409830559797619322972788677853796558272482064744856762193046116503339712682014189126056139342971120657513847075519994063614659599466357321198893984160864491405508388515970924862826883236941281765239136668185060020649269434123436356201432652200986416594200635964788271039992840509834323433800321763817012780721398209655233509793508194425144271987158938461907714984771478491588775324865978918183312219525613066840432283299363692097409624826119004689875041803598842337984345604152770475735258608290226135194122801594495355402474904723007412907065744387857012459624710307168700807672739389698237879887669448910855017483219781404196366568042802726261620382224111205292161116735779303783952927735822872144181652556879248154652694414673056853356997348728311590090377162224533487269141290772975185297225616936734271603858433649881459512079379035771372850669872607372287046226337813482320167002141736324411682543834634372871243370626001118608216044611760600534980400941650221700886791252996204207562205880029650552040477560352004731977989930097561129759662462037684694543989734137973384284339465872179746854905191200376210572818749216025917169362794249663795609715857070041905022890858515514892491088480063512820239044813723106499088964518808710102507068060394817782557069529032815472584204461156396775502770504689657112963652969599854351461759515831464889172426138574187956286981915053844173377601790712251198415917270369343188016666334613520995329756874288040847840111345832545229156099367852763409150327866133761477998441668800169703539692225785013836780831064577731165615884710238344512924710370337151491974994600404605691320718959603005375424339850748679117794789797863700821293117001353940708669446379414317577147156216796919100159901726519358609602124157491539269750286430873480839070947458467380138440213798618830655643563315415741139637775918537832389527645099217136793192456799606720814025776856514009081987957989849984610373563130976828459452416445913560897735646247014770340620120302701757393003984369214766269292329554451495502966704173186428141032410425307813411779858470255949600857968689219527130612427402565309133700161062673512211117389071696202379810885920700479508891717800927826478611016307687828125048602352863273618263635284503992895379212043476770248618940164100685664440388067950950290795466988935410847428773067367961066723275604334979735699187260406844456161945011070120163103915236815035247737163806664547700555218042732714356826336357388913914661797408930759713142173985682008062935705282624504261113776204114936759068569572070163232301292997852476878676266132195770478277164248212049146251510673094067890927117383716917974802022863658896402454604942117916637457232767779654353948375024185644754671200867181758462143606719085185546850101411382653247944747630852518920715840059606464118723550329913650959248929090342036022752800598157788641465101178886145800788249246176381741999214736033220408675870576403553756557905105169150411535908331473664856300330017427811305332782857612436323677924787942216562126379352529510391734081106110991038026436082428163598646907224450221368551115222268292299647329600468042963070650204181158801861093252597068631115251471944002796086520188152738634892937023086013761848226869836466585709857136383484984033796900666513659911513540444707868282351169790010844382586628466655677265174040191071907616004688282683657415344931730205865409395979308621883490912876203430827692445137529540320213403174583768646258767538439759680760405025987326324172197605119933990223948477451212952891949795171428532372242391869105630111099589349346384324208718339199161307151336342446725196404351334103896788237833333513864463480023879232071052281951687810083997586218533586779071180633330272719194502747895421158832855490311217725235379894108982884587419329785127069935181712809276391822766015355609940096986398076940390581041439265923151148925019220082745241492456834528268483653968570505036394459236399226120529742451136686954074574574473089160515179887656360624763642156230077082235187320034643452225070679949460192373059713083455407385556542544951556002648299900436458987338810945929685065763882656751866386471258288618629874928813455274697843888535339234180007131209445547069614219134135874545667966430306279790765547251090311025849805482709765637951224006574056502017661060893352604403703520122285504701148763936876634323363748313313459502891342912857710402901336150706209936273607387365310778611923935854849540209773819407247572923386785349888213478054318479434058345920926399385759173315763924602711446130947991508339705881256142685920996371789753672459873966023174227379222362973196981074846127738923795009657519309137896524521404055805609920800326134502180532856232782429242589287950669961722785219702820254741158246196185121961037909206152399671752475189723785655714769290738845706431741125161918992019521358127497041785754370234302809498572659246676860625890648402162285892623605846781609822915560321185777794025465358395525668569993829342313700473636304276955562874381189803699618566406691156830741531307180545176715608920379857746102672927881556844953647358908021890369843125813699225478401914988180046007896775435903535598647453057624111447162262593446994317878809449138003622755104064541546525025685917072103635324393708433857533927251444593251250626364595350172578367417466297910201912818239752677379817133207626376091651523801052539812623507643627635562718137302946158961381392111312187899755396569377179492102819690747156579304989528123883115707485256452811659493488553831998942740293494366104242129172141867077428111395573532370897194760632103751763764716277728750820473051938300379767969946519476777290351666365568277498123986291420912939110779779236311769502602164538117480262417711058484143215511068291989668553979117652771772490511608506685578600428339272797447245488509811864264077839204734726360911745676728199460654586059616435175163689873767564591674880260595372035743365127367093185157315343020634617183565507425254088112414438305948465123096515409994592129192897829968020739730693271332449596516981738248051693712402270259715143451045843667584020259193916062646687063603860714415601166685350764039472394467049931806371401473384860368725364873558433984653762429668977864802067155696627997476574305021887422730810877234669187720056920574882189361490729523010199366231458478082270198108173630388981210719229438262882702539038039568937385829423847199284852856446542004419197619759524700396742303775485949307853866536791741163270538198494957351528169117348437665710912691260447025321531933777207350412594313626050354494223381798730053961477194716471487544852668048206414945307721041417605648124831254914649743171346009453878722049685469885446466096510697439874148490687929281018211339532300258619787208015720993945348215434203558759013490209131284752773851599866319655410326226077414913376638598847584527015048471547292061871215591140673474334417126985159348215087735127445796942121079107240180935914686591685550963295145342615993544046856961767148359771313071423311041853846713221747120984735231596606948696748728617550103741894353562500526204965698827836978230627125501680607909982028745448430742825550981688732967436855087497617973739381669071033208797975697340362522615123683358329107724048478808443552661144828700806094122631116292581801110931258420142937351570274292756836567339114645340121716339452679203746886638200017023318808736088509622020742455457991279270467055191046291625757979792622093317219302562919897494477535235086954184185017426378841113291007374696192529413116941996185226061821669292968841846650656025625521579845212305659121680670521967657068688117722070018859509300924562766048169904532376536129165644947052256322894972754801801879832701454040263723678307668617708072201673871338401613987357483198799888651860061460840480331913940532004227685720852131787658921134586311180536315215226163175870403788539985997341693409104882569663108502314095416535429090093515966576342619989464310526611991287953653187850459860747468656033741951699675646845267126958176485036832090300380645133138222150219210883579844383531976204829715408284604795130692294290116544344437610972135453531200261751968473466544313857429142643433695431128396523664797712791315110689775139891151303817286677610221356314475481332237442464875972716150641063856018779390601496752287467638555703211954720171556727655396436719320252820846661173913206133581737777382694193866775927871637901070654059278796263962867239947273526086559479003196577636173600689518684180730128077325745451619077252072134490691475364436146980258948687766462779109950536278569684336549605678379453782509362610518253648777554876410658141829019454896577927230776193080955126050643668911749377668273364663485156590617190486864984261481053837471935234400953944155099999694854859068835769307445382452016021855529593444079484917514295361913168656052248152807841058246256647151878580219142594242297150241323927672062059330092360875073180414418914618439768223405145948575367431733357830968239443043513887161055511424765045136345600955774765194951818923948343149826247063236228332533940163567170257101084177683828662611371349839254818141446283241163814822315319550132459614957635767437508909938648939314481438664671330661423232679703499745693270205030906260527125073407901029761859120994946751937882630116520950682777915162317657210297079966997714583693247103746365805954046716623883598373263279231227718158042611264724614748339784850124095035799016671466774150168172718813059846983870448862833920818584844155885480586472311277061603116544348941102693633738501767659925023500310718131025060269927541702244127093236221245969477995477274422745890850488725512716713252138509373733258945154168706609822282010191207079510401752466259536241485860939833433470469124880832537588261304929106492300509905064612558416354087949024525738058961811322336993468253033761437592203977588618555157616979396525155579155349723741573505625302922988662882139386260178210350075786436920992886048574485218618277105077043169919143455458242408078193269539909333067221247934547762487735157596166248345214363192447602817651549965147567244692594086454260510824685338896329819156418821912072903360467463249430202693035078290168106215072939543770625605969463425793834218468200474122920382388353404161749778747196952916851229866828707859098788929177178903768102383998246990389174544838175040361598921445956140136623760481308785442300862626667510729619740986037514161604171809127851384466471752510713911015595406392247726608040014092000840489629899307584687033676069344289589588711653201721342210864455802950796102050915097273262701390789771620085496022815086167357048983920486190150069682980132787400329370034733569641383592641261155695989475940994933320824940288689170706320973701558276011537490997019843839216453705549325547204178794423714533630145043454877627956441563505180307205559371773708759381120051347725280308538225110164502743404775679757218631494367217328106614693488110516771089169565069558670302144968256667540908452727456711840795279712478430407159864770409138412790381207556745660790390388925617519142633627670404464340782764771261133809285491179880376476136156896177943579650923737975658131383457751351126778575698399082637205469090666844686730479291364791391531159778350213061206950904333149725105113877095164928456979262990339641030193457073321517691354828457446927124465391589391972307168390841972858037464088672272296105012799029460484085656883719662870842938838048319369959339633111987688798010842260130429123136237563662206454753595530694326510647809413226691126496181393962455662519279435425359629578130836392895433947936556008270107825278231150685005868239886815298864750000474795334569233543933387725829114278228248240450828224300476266335702007762037245840221267636680678639091520373796399297980777933448446751915572181814356802052704743421451617650677065943702717485868378684473445181036869915381746699289571105217035909072704985173166107796690515810740267349693855337533814152912082953291214070364600265851845093718176619454940863917309814310727098537422387564946315466333583040582935476704298399567905641367160341069437918860600084513758744066338473572271046569872830378600740617390331021814651980843219386396361256542468848756102472040772113832247848516669453084762877049687169245465437131843160236046460027667592514791319318440896939086940102270167295302691509452891247259381655279398676702098129938716472545005374072662437181287954229777449783554765794771322635946826512467981408095847127587464277984389253287303690011558747350829987432333913059839579521991303972008271925605434513725480412801131939618527766835852990533035753662242273794316381883640031729987812710616910636544059093450543858684788992703550244031618748867268124527224779446252158321189832826995015013151009338734715834134760778404883843824454350664377169082530916472679098491967565642645722081853848619525243650232811208284011376439308222603561599691999868659551713044085429147382756983077131304029724561888407660286136292245399662821442924941290998395504611723979998411067250817813047559509157450044245264121421565205755745636082873501077696644501998997443431896154885975753730963572292142842782064085981507977500488164115858560601672768020851847163689231582541602290554312740936238781068068179307973554324936456243876852930314414969125332756125876263047341910833111343331259907374210112332029821868632315595341168640549433727016907345132994094195129379906662190824739034238219251672502959715912816131168624150330895650871509694568355447505164134547290408862944991023724807720045077492651947393180617856368772558947967288983173625084296653643867203248108046739294559419917439995993007458873920222339569551458111449199506031174295805644603236386737928072286240540675231833097497875801848069458271743570592650077914218024358625543664017076411192628232158793669630321677877361686334762253841283024269362681387132737919886637466530980226404567129407580933967755361696745547703670849875490522999944568562354749154609582318022910530881310467740415530669669593868905060036548959964572373989473726086770798625510305320522685116319757289582879097295414174188739389246934927175540960064798261664909879871182780631021071298923427593553977777536937047934633230239288747081336440081615506184127846523127277863279328145589438967501672039164721544270999504435664749315921341345381165091292161839227026653591696306747258301428009142304187025689480375094859725088434282661680764496006330484798686315801660446204383677519398000617970256064553885672894195609604493795394648660793709724924339451469198550489669607868436898245264332651127625378303400656159488713382472668732591774193194420909268625008273249415480176660145878730336523384740941726548441642513831287895549531083426907499650051188616243718785917086869686095551615417751633456632439935305040076269723114032148496003817364612300138028766764096880891672549668790229609680676336660773075445574342614817605230974251637095309479755393830857874095330201707513683149249753407834826264592596202197215921227932137528063887768043947566663243837472879979303188123481120620936351621050097453845816482166910249063478529006120213262003245674568128912906226736964045164561944000171653122081015350608189554972559489096910715602159194299411973563552253918117572201286798145234386338631297859221115347141305700452469515756975832490158837916221558039988219775165698371095788527435781430368430311476486727915845599881784187955833423103181067324162330652899982276558264402260109754456950162024951168970999358316565145943349796462190137472388651751021066446477235879846329341849448351204025645582087106579559111495656180558937206194222130964835913842796880579842030596992813750390648654663166354202265684576774846740742349679444770201753692429651434978206053244672525501205188580787438110421280939161027188729278556157406368099158237782834156510015120972774555364889352787701490001493601128455635826737848272224796419320845056889887188622295382394039073280139396178880174161179876944201132406336289863088636682100456112501643724654418423604262757938024562263434664806756681855369073860597109012869655870670662518649331271695931269853649456072987880710372901565913003528053291327524215362516005159942866923422374695058060609845564539168272830167967984590895888487182723432744658820556004613752709971202606185883234668112570591451377330074931274350912003127784620350011555867065685449492905839222470021110387696706850902015451509077979514787563020485097785472054116948348308057273975439588221884218590732102432695661726156175336622734743003511422863248249079345229457744359534495927991525013155191503355444911658497459819882660929279199738809369467644463198887398400247993069365212634474077312415902493081639161423736785035002761786105182903560507946706932826678879464798931256757585223049806575925939044697455577164318644730483706205442704194282270828251616162318966543970948815824865718190347106628801665519854402980208196766512343719682426560154028871224984894925364827816861025834033052722941581179775040606708914409325922596815668393077850426156634551758706302419978581485468355029102096985892756257752181178344915876704064938961680889664167473950903063208752253366418119601392151488843461449682142984263000987940945601289975457102182169479879899122781813661877983734529964029573558020698708528881353226793785175321939087284875304843376933890562623207579854055267427255550290134234537993238705318932870304946548714570367014021321603728492934671450657290350214618186380526934809805569471173753403325091681975985723091911554755045030239823451292921658079502247165206035749233301328952591563314578792346588866467142246898028728347431841780562946518868227140362681856535513583946453352438699410714175406265520450626137545879683077101953977287208334784089761311535245715819922147375073606348385180778344362400667406280832096258627449569964902045910543152158318077325287042696357865828716028230948790228168299444185291835360251061069601295119034821836913453599679849889698617444732330259035803047999183994545586414202903783173737384182881511686895018132577349196296066489531231849584583117108501644180023470331893142356788289805989639308163495375859979897859101190045831015341690781612737710346561461158439483920594472842620153368728000832373661006241399696252593736459678341876823553431005977539379927641367272917568927658840439520521966726208924781016918274476932666690026119260961053178723263862360916687823936000993259954693153380176205320522022070143995985257990819860660212224013613483308737259796049341992462486465804709900127643901443642020705060316267933877317365213449930791747677673277989654688569259823718259066328227876509771624105031747389472008184170604415875055548138217383405274511690350759723350929235483568953992192904723969019197117271721356982643441507727924289718063413238275262690632505753150089781413293798223030882835429853426386848481229448368541824686940813678905191727976365973939826365961811533921715852026629908810226600872902884333941571240784629634466885070153479274369402263134563294925557055611662928740565916962225172577547712061697641976733878058473987709130946885340953435321489843778791058123158675483138713026657733370150300182637089561960793891329584999589486271369923082174503377527179608738378817965504754219465211208781346221399939944709594070048326439427527282462131969302195705408178682187375929153087112173805212159849268847492055709526059404758058388746628321735179204804759063292820438558518902339579242096167354535270209019005819960629125949814313097825374316214179119135784360289392185645368338086750176232915133997769998052574274953278735295502921343897838813803199949168449764284376823430039285496142183209426326141146185491320344673510916250146332645433682888206562559776107187625211581960850660447790747733090575354971364047450445081558745251413466537094845841385729460622147157075967829125917200266526588658867229799914285888995465046241977683847299326164547508200377506712422709251698262418604896256907006591908837460712470876462006292168160080668680466022751998590183552175385189549814828390757365418218337332341324038606040529746870196371194455787309397666283437129210172950885379000479249013492190070553871040501818169101692471576892199106141724728188355633592328028373391439366535836613864370407781940125877496391767841062664913614754846133279029740831785520044380555339742647829735263355702613889372282249410189270213452081818098499908305540418277876522116726805242844408646586743807450854639078391829284437319817165498101047320857732693571753547264730887254220077825549317033983548477808712245529397955880346466208136209668111725298990674330596882614381355895312911330283188143777897460229866749558657254409318889591673053898785943516420085968700522544189775896099372739518054991183527471899776213856431727201999604241427777683234201369490315299816213261395162360273844358140341163385088412010570254033140588752598521029037605354830500704223293940048642737516510842706476870306640075891499293721205445262069055858597355425061846097558630901404234766990210232323672355273226840811115257324697258168521082022789106912559798598485878199381711334895603667365161206352779277419463268972531613347553998437584472676139371369705945464402145151411850847788280542609050531521270201026505271644388510225430489512549701755357031797913589534778066657847248743310654996573430550019978219105719617044398899353070082093184468385792486494777628905985767714477224320987894587057482378823458799893738432723830636280994274295268745579391084879193183612919270249960960605624369805645168638583582780341949457797057779042112289028738747800827422455631154039685455100424670030834496284242508834757307418981010884613260666254315713176242960785789271212041677270255378191202257271990318781622746199766405378448713350061438270193316946669982069924115997226108575429569511463457610325221799811932393102960852954515330500667383157087225972257833779349788983230590504247285404458726082288536869203145432308088000010674658192712424126729222303277536389175898146090600593954050400926298231070088652821101353062448777549869751823646255364578980661247887224061941502046948426338449835756128439611157278718885315182877307558739588648292842643507389544906113921389557849386885586775505803832670243165922024587169318613870204452562099313165640797966838048634233990299172083175443718191085392744683735551015158602213075140360735657793258312033085085270818691655016445415783534710433347527426543754103308215036371211855757440488466371011739677718559095641681293059758071617407348199622590129466185593286971849879413091870714352205024358739319455274046589983798677836151269229271798864540630994031307172162727203538441554434298233293594763684273007845504542798385680827212546909405902736421411209304657610946999469761142791310115767572141390265467369391069531511978756739656204958812634579708009296890277293653137653898620849633224605288477778651170325642053281819555797045126734621189128095578444030918005203060965825648528063554063093275931133483110662411609109385267920430808365428525605356391379788303111656509180049747548294341139950779250821133054587980818905799714844776972339327574259379015316101128798196134158095708500480312302522616284380209782180902218156790361225074569625722347202010471168443921400168758000560503179136558599435222433464066376134532848854950167969976343381931815874172765585089574739348188914371715491457618212287156353454743276369759963171202576314704476872776706746403423392388552831388066199734456636914268841065520289828984294257310391796665122031896564911554047717824572404034376415859311540517591007352730273292372639019242463810186766803008814666793005289311902494015643133625462986943844101778100602140397775692119499731499731451815114802681403347714060220805753699802576210596056246536076856638085183071533898360755050766775353813530550916630866572989206374045020999452293492139758705342826223576763108519798671353773779894794064277631219815659707915477226954790385285545839821275307048046277673445354359228365212144312257697429817804772759863936207481466320554517362161152068057743269713628738954330343314176734971717042857210955655402943706666986558499227742414829894284199584716209008594336259668201412556935885272415302337102380911970307598297425368386243118240205954408578141372480635847447615817654115675793015303246494311370455768279020020678437857292240370384590211757809196224517762372487953726628096438055255404227882292799709029562043689189362286571717860980520029379272952320266056531261007369093843152593671236937650266173199630006139168006651665443721253487052323814208255564993972886237641997836150629780155205708046516646512350710320349969496506711621914960572829447876183303736754231335563713014416124753512062640651510616108091675247109515169433558949721843064321312836155927744344051192228771301630477927128527851121977610042180288059239623478235011637994047162648684230541238843175861106297435608973825106196132629728516260187423648483200731098336337592139050335726372770929280590142361595042756813873626852989558315783615783663531010745728790004068782600716816416140543025454032015143786435568552461554942113296672864860415089708492116310396900451826621841023878214734984281427835124400699463836444820178635527650959966545684020813237021613149512065115370645147732696403147581869366240793232419765207378926201678172300096738524410909974661472603019398518896863380881110052858394254407803384884141301750809334312968095778293883013506041104795707555137508559505052263518009151923981340320971178052840068542399890515043522387447143356694320816404978980069362041527564020179490620771888866705594054078538468896894016164214872692791164373948437104222843560222816696515168193436990140497475629849025270413966364289115429276475419205269723985924117134400867573764467273815965316088262919577305245645626323193793457308228118645207681403470126475098446938384311478726134841570903889546758652275976552543821165082330864059650503165875267228118754188255211711502645516134569159333383341419521482608789052807121748590985617335337032372682190759590935617713744761699568897757310435206330698825396965336637104544072229014144213484879244006669585843674190502640434922980222187002075637004492175969636244295960605025604149087904098705287418554529759479379850213002620254699830250412197685350534608627210259903225975529871675684099384431221634475880401634001564701328502765218894929499369494483875781499678153273392243307118996629714998328406166480349821944083061024897932542144773474961662594878326336300874890260016891766374618753263205415790128208764091039766632391826172128004365207665692845715584891042464413837030408683903940643748307167927454725720768683744996273038326804777841079697163648169625623252359181179542364395418350025272468026729491588663225957262984652840255816309713521021450868535376659816916105833159298573468615798393824965175992329860993005589706353209602643226428795256306459424977532041737261457877943299835893510631787123691126378534545807470558330313832177655080788190891852136696051519390862047479671743079856648504402234441411636255777352386808703218112000070165559828527454666914300788822565226281953511932599523845826894492759385877979182374071283863190513026262059612704486360556118214190125968977840468367460163589811919757525722462852013308499196520465802325901369917221885972093203266531363296323387707887196882461620547605233159314604878247866961730200922077719855851242450873402032792851327429991192542775689169155510200792910322419005067891639626933087623272939097187871306797288962859509945082735051978546009192435407851251892088987341837614076095453099233434970369279830654888491007885669049441538168015087830521775343162748998393850387297211309519538323624300120228416606478859392168737361062184859288413706312527769100680485664132861603572555489708425543284600317645150776440375113495604876472172293766448817000274567820854364635787859283412327116529417353092595098857846283366448912890565653529294840503290944237759029490112236037352031634934493780005262139198106712306200775719905879452731596420317637346768016882729334635603495802022090559888085149670075834556047847670094004509641813282635605738177305614909569562674649325762483737643352041994845341012393911388012405411273575853435784012579377825017643375699399057389151135343531390615121652604181165431995111776888904555617815870137682568691939127291968110246619855051058556732358070062199642268928297751188763418483579630422038349815422749136327068513599330636775783438853559949263268835914425397378297238223160654257094617083362985176586168293987392009413117409744963548152531387476711792561455716371935125515445564200604812414108831037826902398116944206675009291755046328169792543390170351595526407448739700425447339787091800930488505718191791464926800825328405338563363937034000129254493461106103527178945346992414955596864684385184316541502688432678973436503533339034882831425755110783104722859867852590714387962842067614825371513065811880989287020763158709891903707184762706206758773155820946354124222851194642264988587382080262686918335397192000635224022711283308424769616351955531750290055133171337878301287541754361078189328109306951268847531249607721439935169327341338577887650659878142008001251858080225603749624964955671087196878660894989151226246198808123190572045390716931076091428764660151423982919609080718238370644917997314571468313922213317085855815067166877025937133186797622724794663000154722206043283060717976663375887460675394781073551689577304704715840940817371867311585993465067423446572180145277606472305460230798317298971780249717450929291801123063260968549913483786572340337402455157728298140198174317272835268383669932767307728234067898861919681751871947439317158040103999398003337635264658886373418448274309267301891281539752035107523144084970941351260979392704765703396391863015859603265342514563280147654314153547838196274078318393263904277435053401166874157528372911625384965563537335520720733050382750460224715162593232656354440897286855797740504425765834214352148631797913646953744711131576632401471553505447007505980575112007307253735581306276451179367759762190513222456641327680881211134684574335794825574939853549526278199716678290833007943338427853563455393626440463279443003061287823319201710145682840934543594053262549358524232772840008707750318943654140630707601645342825356959864921860604694783187696802028465624874317170988359686373752339749200350354131284301040793814330738148122107225557940624306703329398426775950532830118325523380547916827897611747714763375889889201395069344465432432423206114993723917103962219770643436703971248126113869259968402676164732716063070182167345585903252082280321417207963536907825260321866324626755417856303788501695551335685742851945629194879704326695481604978865667254392665086962537462274721088842808347320775679673034882163601722488125824239203221820668816242840325534285747518992458470638760334186337753606419194360520794117047808199023100389921562900397467385130784433726345069438524742019512366080692836559265889819266680050699604156315330383810760904924062973200040858537682114611110631611039737992688473618997070980805395887335174804419427967107090942406696773873906061610437196368818065075995022592493422327314160224023299998268217085028466735914839772796217914033581667348104294836462266140509737101830769896948665386083947895328633951190215741363247217240449675178034655270469433217014939957032192199698170460869916957022729898080336698894451192941303291029700922170336971990742255555710060282857556244049696957141929077106442537731863490794049516093180778534764355897528815403088981606085751961125945328612857910608196205875995729652643163218080679389106115600754880107982049177822518446643696833404807214905371004850629364885582694353274065736420658818202766534430036083515972140628831467815758141242489153055821881165113489987313297983300524705485809384987579787909297067714770668228966201558432889604478473925917868334803071583388119675716734442221968155304436945634014814007024435952711374952911773403426926967478724497304572882558058269016133429841481948867245507126152309742353094884312884219541700465588879257465323131821686878316828484879323563368420197895121733837335469526249272076134528223157453456710721069981118095853515591478024311281535471233113489479250581808864896844702628702291980571665836033893399131464759694723373279901512862187785189347645005904870196584811212699689908606945083847290443528172281926434925973289801943996440203857312478380434582665389942943725693057912221492495704746626318155540828088832666035995963332857212511568671575282105757852708655231376328320085485043101312767415448019258163861395968900339458824500592241182042725147318578480202924915970791740047957126616195391541891160149750396140481772010282703818101153354359362911087384723095391204539432967239062400916993589151130439308177210829245868578531688821477311992271407717546913936215518238632493103034983263898549701039812920417484566547839264766590886377315542496606243975858536351867543690772619440195807278396170994679246381853009337306902211015107846346622724911943681175486653442669125268900203229053161826181181978708032699353667171080231224090644373548461700134356951087627802507062726299798183025940144118373438845811712543753879863701606336913156700117826359557261374549240847427814793484423786364072877308395659284542354227394985439503852233454406067545888200214475878791996721445350469993473404510588788255593342266556724516579712283332431872987377934536986547936301061785100609984273841599337059874833125788764893500486463075519341972927300279280942161545539205824022274323420159111498852904066744354066907446518831260920543779486205939563545938414529412174370944234765708841889570735093521923228507479079930987127309033481233143569153119353545349480138703019892313958186409406924140560883149654373116547786148471335546508195159812478207713485792301104992162797371075698532933068985349597247259925850069231100825581696862874635156041058876025968984739457528058591981375894954885181485623991602498533932587319468544609205844358938498537064790599162584209100491154326657948711875548460423585379291174567741164923599726939323298338711342810993884242983883423038261420473094150232375976612350360180462259855557821185700075456427251517684782561988175262931980846245630493321844349119021091642470691711192227395495076813801794302091888064798185372030218915889923608603146918883438185210201855462661204597336110479346378878817583477232202748041819746055924290082323734087432852616985214849246173326506632927757521338493224620316601773254905445471082313678540941880131905908218314308100522906105071632426010609355941264776501477499893109057062484765092248013202369795872588299692584913037207620287130950812613314643549110275436719426951818477997696734446928666567807968907495233300093654628340564745849225320330929563360380454848391958271143209139725327622006824855810036898880677084540229040300320578647865475423502184022075094131258144809567965770901888571822327547658378283693580405152122423691685715770209222276387786891949287535351102962267105076650501934084965745069550309135886368570840612060357197421842414663513535339596045780858798797307052188380542597347136678458403495877757821257094084698141449078162555832987215064913296325109814533916268392178510198030505000890520609787392038608228751516680702196998384246797600309301912363004847021785897036910099906570640586138965563924289241041012026504472499970400101384861779516153175796834092014047049840311524510804795559127606986683649997640213038634510829098239873063275565357583279356598818328818461533626416416458572675827050210882472441258869311726427076145920650635216322119010647119044417319208028853851986432129150790428328485903207359023603058964040627694028444403689833285573516412370584527601387798395617756558264432852072458988304355396563978941217619834150896805565508161899474357385842674719870041562391636683810243809340493308696761521444797956319650705308706856805249518110522538643357870521736234750140013270449472483938229578693113121352348564849347459934282905455482057440754760573960578381405884401408765927657125362270481146331557525983638646862534609006787428730964453676185925379711129732946068822968484482177410969223186287006563320484650327302472378094681124034374023573647666771566925306134259871253001184843623784349781832812243728048600376019398218381429108177049619256151542637139867755273237194520738032982301274747359790655442996214354911913897799356018157877791096895070658587184948298241611619371866603626478968509413049985771035964261886491331015465068066317935184377862371387428739621571512948223249886567133846939439733147123964149981586506379604889814185724032622263578263656867307161766474124246793046865157123533467723172679731762258447987402326819568692854601063120889863164115418319139129328887089883718700618376911448687363599784419130485500813523984560176373548375214484738669433475024385877548674974394138371620922341214140037673716279327371682993004523107139169001508240727024937337681095127545663508352116367441386325184940892596432431014440958222002913646548903178421339532328041151660874406864358767548724874763020051486760476477352841079898399401116655654779470482404341139091308355586067509187973210427537612183458236042650378143899649186325821784824173252176861561875236265597268730861671125632272808947160244015684829627604278677440669612145237357801277222697661654217789775539426810440880964125225177814148357513202197533741968403006720491706756437489400235181736207251440685303924481267964389136999059985399713186873176987694176405056455853752381265166725042640194675871559572234847632108279798791207276018035576605514934568162440176403155865745133392016340830895048460144299434217727743730738597100083693550726083119447445351682116658141736921864869943667978103237811135307653095003104833609856398230673283134557571242697568806626030495341228414240241397586077613995668335377338438192784635624727910817870233507696150161746023296783995020987049159016479396338068722957176340263668804147145307447332342648550144725018265980764580310076130452824616851786299502824044464553536484225043985994788622996924356663223088370472654450430209797040059960840830950857960738883814971823344397229734420147441311347715537993379041706936206714246139463134614466788308228061197752527146284401338883058366588596405675464723530873481641624915975597214861156840168331323383896962097127455479246657586699422080059127333517176894943628829748024872380701656087251262728011629402629530581937051799252229108393174886512689534860610453662929723676414188525624389283669460693893008806997943748960885988531624092394448991880316275842663833270690678746918382562327570833108613210937151696835035623197422507788936731609160420213164917734739468981027161871750256244193691161517562270528978107602531175851113061646667984673960121821389569057768902750080732643109828926644964624234443599551189817424663752738499968193273972597200033219204829465426659203421923532397989377393262681364463842131476914711948626076179100506057429251910075476312450362435430387405765301786340309179241140032756457596352963479365196558389108285961166026585130889467116442012058304166603418071220095154558492662206934337391686305599676455669708652266935846479238042119710443263994224727260231534808356474752318900925915523270610122525112142315772546343828190231660902295074681419762449662676793866104724074059870113241844058004261073262044952830640983650169971740168511450826864642817484007082937532177253446649441505502661477803485030319495691229618888932018429927262903135702807040657648059009452047446258451387423992740727787562072740272005984885094269097141894281095338240920884843312534435218378528128227750557317346532245866006753794093288079910009908075824512773022910006518645377396907959560195898698830073502375645772460874448382972058315108430793607830293773568726048590143334051654258951742773830099924174767437414623933912859792053364177848346008538010968285119714207716738067608072666062815366084499756098866545597832415123190634985122226292077470708201112559508858098426756981887525353265045151500008520402620454763257780517289514730914995312059263225553304338176715250998085622062650414404193664405498997727699893888552124654301817478438221916925388985107840919053013230408759862984296477025467015961809134707051273951988043481914375404528042414298695252807182577765594414686647794637205283005604273860413818109388189392364241311006183176237474798813053811940645677912569620216112606391233543812507342150832302316432373931058696920062606232746288139557885963512413515962988945053401670312599087040601381072823979431558726897685910014057886961706879848268864129345799027402637781101531115840855362339797066853065416757884827927960968413533181521059704192054949338440631722789184154001587307874267748079110750757743093397453318344968200425308776600631351276025829650667048981153129057292026181854477606052449308134360760276483027299278108114279690404736209050639195049502222377659564351858441932267793106107965644867248829080046395475921691176426928648424443703950130137935197615604484082059541823947801073376419213109447290373877732133043463315569940723795187417509789704988519606795525225659272990993441717473628971828173353836471722646794008198767933209676581245205095753769499052863125784374365113471457729669159509768266881180138473173597884781241136678411350659645361017158559067400388259632567479029289965961884797933743807364766162791689649376701830942168404600578798708573461828682147763228821755562297546797361388188198927981457780265752209816472629954226667277079430931270768062884923040416334162937924534504723512427035916429308043220256001539325948699589356090159279506037856082415192917222351642240499090645445001442917063724961310862760805963200402080861769186755962435283915657142510694084335851987945462763229050132854048810530284017958989797784841067138613096082666892955368237766877726274263216608735741393983023076796012758850988987799271477567658833623512421426237403638740231122571587308270985582462729297155717851564548776285149392047361754293220686781925067905869400478703994247060295757545822201798670651211127721705283066450107858061012193415408755427164202095034791641807810106871210335890117457220239471088548427719846060051409147436017972439693618494790847054082452015927891972065226533176565959558208284325949111184140147495109764305243861013753139584591182564393850788053082295808245755821617896542577655244258332598905490818874630801436363092083751444130652030917762438754871700871017242308527382078138502233806757583883800563607410324242354738543953834804228730764796545288854896872406155128732823139933513768174846163290495064111859665390392922887308770073757803596706417813054839082768557800565763934152108832825045437603459089981303345482638920855775064981853219922614203547793557165941937142171572484700725528168353632361540390325645114449919325868770673281592354403215284826049351312455118379837610609451392756910039175054905708657708641231685569867220604874172651959035534197864501756196597776469096663726306317270275919448347460213492730257193490551664601829875433011725441950003373293373317569955715746020897542310346150760023300059185992293608220316084278281604419581126439088393899167044165432349086481742252151385452966460988224958784918007091472073060377864197392664845911018352849552205059336287195385044672156283700216526774670617907015882394236533578811131596947161767033618073951819237186517419613550367669913458694933897356671285475236277026682232620838782557481610899752804070419843461758833643372424144866083975722974183764671785522974838876537424420058000544432618419669516776311958856917184027977878530769644118956910108037232744342438609340376714909916113351725989173930841068584703575306908981786142594364113123678999948576095679377149693118953818323168089356977345492491145643151880228179655907463870748205074915554336024634249557196075661246125679888039617036695123672120492062279225817617304851877476230267688702765131161662056231339911374305064802998735158905759428877284303964976185225433221604661723420376779081618345155061189394616113757756309257224191082242879129153092905098293514122342269363038866501197427884918589748522747831664049572153353360810119631849549347807871896593876962061580594336911317892347636785386288753633772486828695151145793374798849085865974718016968132793792510772747644497773214618642394560064470886598531579324200222381664150654168877469028529414614550802307026111238081902934696892736163227420837252688345669139760467283610927290326591474708119296202063727014911088924655026455791192604002286943969688197154843355056529945011780363645426158013238892821095630408769390608904526001826425093130401300052001840630679950761499755657328667053876305796686241555628122752536500858608856308268969806874944580530544796779793306971780546494740162061984235143474478672273276155888689247074846589192715200860740075797970242598955151552184815408621954660218101462697011808898313446045209419614394835125683260619817918974735394253598754541547261416810502077534933909933926635471997840187911922749405812944944294282901522952444337732194421151703387964011423289880245999972755562746678032932445681818473790812479559620711728921001825920744194697166846998955485266779368367595528116672925700850825586043449314793136257989024416139216694790684818899364281632120627721300584237594229833167077820048671755807615188574473460199911990975675344656582636712881717496843883666033142924326990538728150381315298366832695382899935282376690923611049867668055505617099628982953768957005795887443850031818151441726148040666783035373081949123932242669530630082598016181106550083613731533702128342386771745298355884563624993030472676497956824435215304935838365995118758387170512991732345861334472243662742181165275541941542506038115903019637597426883862257007386397877880968688635892492684827861410729005201321554250747842228240094781841920069406353032190095500323309546875606300364472372649094107036698493366396308934975054569731506269857650809166051152325739285838065288596625010728345070694616174248277720603949665831805593485818643900219540257089405059784376229781169438366805488664998606395829493489815072837098038014489301233611673749922656720089964595343643642635398030902041886719966425887518518391097415379102842629995553046717158470440576858479594232262330067312519173089840421504182475926925992572167140505425039199158711651361439389028607219464871712234056583863434697734387781991350507497805312517075609003778581654277881180459880390732261860227811080428010549480630852015851046266069054444387867384747807699704398576848933957410902298964853267281778089334797776569015364556200018864626828965259602157905442136830229469065554832294220053863915075740378995454435812006951386121627779377126345316070523914271996794595141623738330752626118127661853635962624354519899798212073230601950706266274352797756796431389982656681735354395668686996811816733032352880778545351146531436624035769412049878862440451078539771498542925068318622422241346556555441111143581576760382270771018547152789252645237859456303330533776395504726190557430569149594151907967630457008063954639972759754578751683627359316947586264044540869074658489376800824147931391758224960401098380047417812245965322442016041148522075600336703622165514070329890875169441940649975717714444740785464715026100714400455909725139867864929086199240170277948675363780904422541851438559196675057660174726709909240122279651613165633887882205553907074375165640821927537905392000639337923075318963279915416870633861244950057343971401702156690781514002260928439156584459428160503373195057315450203260787318333949449786344940615683618298077357388523782514622999509691323320463927417204159358236625623681253468561559786382008309792692081578575067198322872283708760104098717238831622121498785550441177712404002768938512438478724083602494194768783547183416603996127977501748101115169401675230266906566642828688139184954418793177714162069287883667171281153759821003459308793264993226178264093425089746354496229523039656427878598816456905283874306690567606717087898553634108475680314271635739746195885723677930295877366939255632593633025341360281671441982079036136842475706884862393423189964906867001609047392446881552568653949545711401234703149533024493531226860942018170789474089386100171382383111336968836089981446148079252499163031779233555553815967438807225269371716800544127135943292096539211801496500342907000596347171808233894541043513400960346449395482526920991703961174082994727095305241982530310136179367821956954925193746965653819938739064249858746612494743058340881847988008834129881274356727840281879905663292961147910570479123478196653800652798793004736370947515360055754004050981496601331952751350581382724842196290562871034227737442335882541605897268420319216704166619370086975358628087247837388313402564017778936593092601247321547599974541261012213559436408927525577234097958859063192473985153911880174396657084248323858704840084612049396857865609254720985315573052816800996240960160394584553826187079417092605964605996467620905062466586061868977892933467162478427448126340215989642340031289479779557786995617490245350587248686298512548075538046436316375621793817026790929569395063449413049879665026932036021954591768865061790312951716657157460202304551720605266956972821273825645681365396694144886801586232641065527849053176231865277377439697734327045766706552119807047660819832227302820751547459042037819276882068303672354827331414561393350676025374043642773162822312051014534187472871648408584318664199807637291400200950487043927272644937415122778695873182696281796398670643621903262551143339122648554994754763275879262047873999802155786315342369413452586563873277200469999067467507307497103523369642998950700434206459421778269867051448996158507208996658477899123848919138499544563808050549328650426516812452450532505203740791113017806568319058494242401754908502488261830190867917048519227654620107002600158973881124149487064191912101180951579681243266606282253916763543568972587346467999212503123218835021649609393743034348066396437922147339453978768494537070936431831547743778385827842138695475605058539950363369071323527454831574769253663263075584827342897437553587410260551448497964970884289342130252975166524973479220480052799271151675106237566076610151332504736141073577635617824834624672954345017586414956093126526233931839007644833765738061368320071629415596793038729824247914884312494252716788227833562498969489365312563501457101405327825787860904273179007875531528242341863289207032063744539700806123948693244630373054482292942621071222496416088742444679271993403390677022525325158877712586954631431142138982279231026780370258862334810940453687670619031609982284327944485060942454828571956892729361482133097283192259311333299576069872908579018336400493086271073890160305223326612195375246283432481870202925353999228944042019144333617512403955175618550369357305273938784755245432681617920237459639304068892098355499924551961128820592433827039501568848415491490813051625263635998586842292408484392462224217721024343852105760793957504818969667009018855891858627360084818103336333695871415485747376113714634659269669647078346519988550669465238116804295219511251121279659825233823224458096426270008262844132650735452120166183463987569792855851885307380938986457909740447399221029222894138669095042265639990964327612568880457349379579744648810463126215252157158663415153675543670178902036980679277043525456004469021116448838598442222461409131927379759693430809636354242920323445403225449794824543741629407036523710917320055504175427041889961911141157870071398131204640617263339329949804813367178308178979255876639206371882566025146785321174650314364161466034997676372071456268415825231184861670871451561751862192284846926376772446334238153693034210609376141674415412067666123981078212977634900595882163843739636891468403932945244122923171259064732815094486156744645850990052561743099862620180941781867761742145704999765875529560899586828606655726237071836933683144089502493676533616484460122704153425722535191925272644991194408359757448155457472493087713027808474007445656903188053038015995603151209417093714939277134142630080765960463656730491188777512841599608842631456813370976123460762332743373424088850798745239907493672662798522455518878367546190637656949146977822272484693899466681810991030176802935094249217665895138292638194481660817334213472986398636034366541920684794983672068636451744926556428194632141234724906716817362724858789035590096918933707865591635189710500395248590880019341062016877378095244042663276419679064942411809053636753463043129256153363737778569113299579452138145285683520425718361772800305334846735971670797517855686663924589466663907554197270205892961856389193110177006318829656968225997682854941376698439499848646191927649305902913218210414280990517665664757986695397436430226469666319530307715105960978529019343353321754181021356933899641324777450212935193767320475287662401043468549942924709161495559134353533507350489490608679890977753886819910965616383371916421477384625196421928298056356758498323456962901276237821135154034430300803220676103134398649339349078311425884493289740296733360519090394399196638583860399200514119393306613031327531954405493153395073957583326445314301138823361397076324561876992926225109135503882346556675647586745937523374214156842054957976733513587630290712058262394624575920629726368411100036250800884931846384056299202667778971831849146096356411972111201333173227240216677329812881590561552283510306498563727807296179486851282502430169091095482029941002434715892357482638588528689663835943782071451812704176871672884240386377721546687320000181957707532507037876859152272267875479992036253098133988296227199534754829382276397173416432334478497506694541338873326906476428246936242006370969261490817322459147885350874559086052879828093201251289287680609931309923096394107382461203724384869997632444870526892784293395340964411570882251511469638801272337257702397120878398113308396038171045090307725115215499662775177018525702370833344852647134073301944481532262986056838783887931374741711848736643841613621510698807433119680624183335496150871321774340175581829342276734516367337347445111515225270806134221974334243314423675263212746773205752353452113204798582745607599229424114212333417497025005412230462650662034906973838632655727977819687815801855135464770018941492583533125386997003442191146299017263555440309283363777943966052223253041732170610804068580704023193143956419882767897339370885621273648553121346799774405002950056867940852053605740224549475705401065518012123633978291731643546559672335822095794317219977404628267117114345453832871510966058145232665597918268833869600425828150616762953069466350641614075086806276443386151855864854961241292900507077965390585990603756893295105892613810875506038704357816747463848034432411725902284907909331447313399223351251340998698296938406193937212151572539839014817129694568265073149589637034155587427019214948171464542392634464728366491127892787439895832765855480370633704255731276785960825170690636111062380458546018312908528092439569497107635655915191980228190306853205043454869643055871850468028108129692346806322062678577986300702543384098589776756380048756011723653610497383121433912727901411552146616068800530902989993407486571370569631833546144405350112939318776335689293127812216860723702847110765397832665259431809104878686461044586211842599429125254226598456901925397175018355783907413510275982390865553474769221565788855107192143271158699169812440890741146954267695545519443333279461211466608191672601152751512500090220669150775551727870925347054303453523573099186855676833643286827717193534388430651375916443747492112540245219706600537013265085598093465039098396152979572239550949971431927415804048507467124536537258497441065381871007882690672709430102354796281942035066332149833571512689812131350171617787569731998824088440736352287195940883414738255389790988302055105352013587236238244109753520422315769771742221514987709570067604798843021618836323831003295734902204651603177550142765826906675687985351904098868717352920529610849404415152099710627276071837175097261445908148474935308921790510777845017603282129338734856744556389777601099374633961791565916381863038661087692977656931669894651106192428006367588417943764367848521362116077852058045556991009332271047752740828751460722068379574971182379436681372684098665243630941274694910611305535417352317195806480300793477318432781281766212908674974485738412187145906495664528722907190373840780335153287676827806203320151324107550416878955610130144495819664552628209076484889643843630574207545946068551924750664652142120402313924482552680574920969468804041351489374831282558166043674826150150073937197357306936298442683133818172171204022305993938613877619478343172664694162994408984109023251912179627573929165342740670377126821021127316009483760180603017921903773745911359244955209913117499598395797660500741878670607123750613386620588262929972296719482310847619809684570836021092336216996472356826229038620488845836155176769543265761391296654752561410828026182813811951334901705515892453221425298570245634842143963663808374809826202882312365601696391951612798257292902717842263233773312225537216785876471093575427464288861618574375469491560422239527159661023649923567626355143033158650356451333818893816860253537305907161641907219725414153770221515990397319226669675079620559324769474206836594338009142693021181129730502221766688440012196002285533150602543414734176767070809106860878076433308696279381606868242356233500254450537049748374990917207595513180357673772729458185843400941532120841831379718306877063981561374159984331492965369131725043151559296256737740672496317903001637058276562197981925644665849886219573383829874809311615906953533383180876309771042514079486273369045796989502533118986072250132702964381087678563595924400674508504458300500812585573152047775421258737981628868311198846692879813413275615859686560632411148783733169107961097255885539687695745769441863634951046696793690487717810813362650151326354089987854290807844704854361896789752799650453033195177950922871089162897734831317841344344404080133926391617462023644833313753436328167161153521619625542717024348376241359110698856868063145531182256781035849408111531772186842342673284598080649641938872395634789157370829077097124421612899866793496907661451096588178872259287864425453785125334294031613425723902477787905076164653577340298828998840191324392405149465573385231406878169618700232591368965864033422479757481692474844849693703742158222624669704597496937872733668351593759724980466832498025884734622706735254747639460457015540700553843394680961809436400088905083983893299175050900412569714288818272075725623393889068632491350444461946630154479254202852908261580675738685798951112567973779996604995699743328490589929843368626718592254779176398559865385401254130063132632829720435243379829963106557892910583173424283849974364413565019472160462753881419406497881801217826286569592977671474301093180484885947773191892253448474139752341424576274866939095395359452673541065651199536032678545906392625964045863544706786600378242421642575007597115921909060294932780454494819227621254239579026419213444065133708764484038570018692906244002131031168965590285316341184483132575375461888956388425593509818122288106920884682803599148977758188732456237850522693020182816938616591428311801265741561542848460922761142105121453924504749285824637892345893861444376110805616153560232291602906973516226327423147954212919301359771384467121787153065436945450828323024715618743248252177772911411918236851467929084889687127118585472954677466910631378525984951077456348075846041920269593418947870058247558263195901184284643783282794167018120027939752498495910171079989916375479924214445782379107187088524890643097365884595078671011954318557243287241842434013138501527678382304443273957451424964907049608739463137264513544158949864713230053497892382802795014115735837344516319912940555025565481604267321143476617131243910830438497268858398927998236943443831971080743879585450577848380003154571172650957037973376056826160007376919234193289923018898966602456632565015168792409323537023237700230797337194380110159860809860051686479927586239596668891434671419747996887334125472510277895572267376249309795931624711677229651432411044694731359518409284917822507436347645269279205342433698300297927235523314498075587372010646332597590686420787747936936617057455085313267782837386129815004107870648428671539807546366087023101303819704487679503318538279355591498506590130206518796632741945687236543082700811186787832398951823705059973045589726301609985381580196323841746440349485202750844184760108433275783648522573625206239177500550537274807625444657281338913672735192968178876049012180754226509443405313174929919166726104563373180640306628781122733082014955851393114135458460521381829056182718133283024428641884281774917012999636862257385138256724467043706814489590562968752322009817894882999961810288471701709339331890877460803843344678068877521392232034325922200946820026038142774639603177254182567286185109312429967252527147053417012785499088369686891067811747769289643513592546581196272639354573054734161765390570308446985469699081987556506872788814992638566250157449594777363817408068118138804930055788049379211433421757812312120479550553566067303147534421833208727782810046808661974407392546603791417540057339148525779757648929312312027207983333460675909480136335799020797634445765255598560625502673381122553852223874130613543007059501842061905804908286245038927297235773310068910919747585713436704651599687558647276651342322534686275130830115296219318172009560097938487594597726802476959000508706850919264415104160225745561396123410974425963577330224301196246886114497307192593745352519668722143418836326097734246945649383790768053334484420583559096676987888791878121120566892429444798995744485013082316248445898165260597580878238468571256565030359282961738601000117734232701384751133050627076392333174073373148485835185215896026783521919220117286503613872815808930661516881529470294141744877510622272294443356615360406739614959881981735423143071234801329677196688813129471394621653950740036436272048601132595395317496035701542667976079389063756604876285477636518653356430292507616304244899503513495147731049568096285286806607539430199109213806711108351654360174638290575561924734109797038282678195835655342790032730802983555024415657415154892487827699000926680460776769733838865416537763623698274631637996056440920453129142267370597301556348990244072898906788787649058524376022799386444600244241573786661129618610961403826675155352175392880339429204323772295080071655458780702633518889036167787857683059654481969044123749154856048419147097859466544639335011463077249376533754926861076024419285304729339807120665013598073594760836638223846132066056121488133565271030273892252281438754083868047920789341772634097470384231898341358295133393021097515149819208308228340268738240719847847141823465848634820076587761485084030289927119660891993243265092578919929645372626264888418914540009513150549589552482440218427782181923882470826085860318665838954900440091489985988038488881281183636318068589063359077992122173244143895506466927893013125379471145745834205758960663306596375141074916835703077846555201476716948576813477519502700592590730378625913736161181038979852120237696624449524488686988734776231950422683239456653691664807813141338316764146287338149387595224605669208462101093210100857717553058946931075361550278389959520301355496116754523302810709914309885547787847687898082158085814378119041256043275034072992635954535344846891411871806618332426351171219994707695121697338677193547129542374260702451533621843920882596640666283611411439198000478397466476406022858634842520506990436286421973533692726264203671540826986076426331151909131373375623773132916987202001699196414156283683800191960516815307895970772215472765177729584722422044000758697241362346763022259383911331724302862047114408849502758593816090588634227529860818834525065100777349453588920970206176068885512616078481142048619855114649698989051577649623411526254381758193592199993169073452752698768344453475430683943642555998010012463096271263737220159032698852147640234282127784781201588830482236595460106365370666235083307148209745806947643280447939782442455143536046955667200832708187142448790422639088495806730921999353659636151217469152071554391218201757233964464812199028902503437038504430847539934708472761349974675191161560021289036693243535672545258651219790604657391461033473366847310694973938940831021698059711102723191675606669897088493782681927049060093473165030965281774163954639620761272053561517049215633911642558767275795116037951508907576700209471321157760507626006306267088130833575989319864247868393733037187352265555103417927674720634996307834466709782702540051373476696107282592766618297804935620242480939582435980116234536972019797031423495767646194390071670869114490059936953607112635655315007427729453546909584419267693385824326920069311191368175410725506909110119803660502811825603882924577281477266676361288008095878720399637310681336965482647342448955463479272908825774158647152761021382216059630948308921546863582224584185496979731095682990155331592236043193773189957399047119943333344525985701300529361255737906808963220680775110365262689099490907684749504465036397382560880402782564321391812995207265174052397620982667187868708318138069288953028912085812038454580816883508835905111975545326373958210202852894660708236215261656943062683277809866234582594697515540645326250996481196320265116932898475626928708711864812324812449183747882381971646682098953925876532141334184146401499938382024928976090631602463609713562799792217486708808097197401532974188651212386339908881145267542027443452768981215678704677964674955083798979521014342173497654834782051241551373261972953125300651658654811994843781481213543115900824820854896988846918430506352352993433866260075940486198098598528809818871236134465779394998214837676631354184944312460427734162236012535273975310403755185170914017807955138462103437987205314181209562217433384685444672512139242652608484210167674897412238887571310851583772450645344649286912263167118916102932550641972453851933204680047275242409737712852058212342858729914513294545992663674700459486552022408715119335326554543447056248353507963153318891846365039553411668498731669113333460976391069754634050635818975637096375221587666248019867133590211553259220161468398037687409023483507443336982919689901651740633676561190113100129000821343049189029307887152720992898138045792102732553643640367147976998614213363089888964562303823351313664707069368958381487748724739235527947373726530195569544138499847462716133807463861613200856204428026677790675624593737752017048648931840030026266191355637596720104447204837281147556865691097085773070957961745540547203678801836737871875601488242769028363955473857126449039745580924041824428511309405014969702757757990498874174534139013176341975319527221332211465186871316388518477905565300112442174214317790737061909127286351258755872340994088183850754744893782557411343427386584620897899238409925032379476924053085529272520530302667372382364377387022779896094929201457871225647387612907042395626161512016844955699579219971276416126932851928479691803873226513392813929242782670116874903731296787005011111381772114589130538236136820598430952111747577989840479923824470259399107263231768413997075802422343856451351508933188607883209484705740440766744840144954356573380159840223220379124598209817546295888652692228332289597905627494845358939695371418672592119268278609262354604817341280010422886235329233986436480642099489885519110990857406757049655251376829905668021742654335026142276389957222015320133318664269250627810836180039985963361232685367949082473672656785481824698213037929153304007771101463700877697375919263264179613158214149678828881512243029240964155174117132716823364898351276495094707189341219222827390909597593922198641309658582104268565742492214947311597136585318048203143327087022974188827557102004842733826163656283198600508676626233066471224470203413508767827942177492119456376015160182175393504270253617087281735393107551959533089890652872821857043675907681420679998837380287899274010105357981117296862426715991647715668518546517254265195369426731914446566230265697890925107506307067167189982743291155577422102493267060889449296976426084814834490023287066051567665360821942333258307953229181995938001739409224878537840145870280832134128234259638862756490220282456657415633331129835492803216222736713470869619806567403966218082592198158023492084442938851077551366188872798158736163688042903021276830793598291273535692304307368250808015415994882278146603426852236658995259789353994280951599777471221587489449799347858541837668416978359499249432424309056129929864061731886934153458502563998808857350688012406793184133539694504798146781277563778982048756575796706529837728748708952469002844991164847075754479567405586107630444725170712693969476372795915505510096808520267966628328539765620992197892102927299368889804564769543899466066570164771335959726765752039397386386656451246592943772001012576957633295922159111574919315141881438097840324247164889214552484414154019922845261714007367570507922116151872412687025219145742238834105232093860845946863022892418168893106449515783257769557140529286101201588251180241823188057757126327965574691722125813136165460551864406147056837771259092127334655730393322444202651012350478099323616065696450575693698912323260762389908803607465007655789661519571750938633510512942924658991432646466951863020624377908459020210012507665488642612712474954101157574909753114694574528885049985102518786146794957903379618562995080660102547446238515496485077654634929875272771006562664731637638535662666700544016219998088475928883440028109790907554189881890700096529884563585555132362178233387786569047060401379642224276913188639883822900322481390757203451861618840150331654616960163331060352084983904520393560012505029300212352266212926812138900768513654154507808334738849700255716167611499780086404523087692415861213463830896126664290078806519739634986253766615616619131780881921778278702157801350773642861988258822046082612114688224332845087728854425501538591913857719222372381748942796801232901913681951024677081127120227625410368641862633235268126315619712836879734180072630705331691983592895749254804099690195844068900312545436082428126325243855885245189971604835368913458374851047196768712507350174120844432938304433788033931719806003198842865578672970900070677838490725802047190349903047899262044950028401876296632945777829381997257133068096036392368147218052168365685228066385847743096187008188383268669457637991597776452693023200972347940183035890389662697484216122127657012581563354725798639593128759277299246715398402822544123690631167229697232511025119242667724542057486107025346990329781848953011027385300058109037155307083705066092969592650498024418839964059280738195374541598425521961190006886494147777608734038321264292989100909251506005390420558412696326841143110012195445175600465333224823713858331048135425513045376604381111428899689436844037018470319030192809054733020272272499324516760073332103757603292171942831079915866882576005100666360784046344731181171170413663778455208748128665275736273244324307847007554169265351569387203810472837256610560442771532431564416476566703671831630653402904835848409368842010071620536601148181445440465125176278790255669481325686296970368560283389123144460687572930061707046628864188412817628150107493013925696722657460993445212415807627321824920627689115690779758458047666967650140455853677043437657865797799404765257063491953255522030877125676707444110765407554374881955916952741083845153025050768481365262134864788114231377215979075846096767978172003377067197810463288735009558753647721611613649564801796612281503738617736177894752119342571621054023663184168211783599005034050252765883788572411559404887099947645115993830028896828326066235207426370161621821353724468341881447831439770651867114520237153761458493384849457589240518532668576282890807883439369316836486365204761977314558209301037755146042684540516512610783724759056523559093875933665345184015802942445926977827165049495062287006459537616423306796381824161085235432620181071186319674758782856637812263630157784086942270689635392375416369143770394552124407715538213080629538915993830702332420742700272312014264070677311090209527421827122167194436070647653141087956605866860920660980486713895219545858290612615774767664264719330544597745724836243526313824602581308456593537975293602292749951458460928882606914947551069837611444192926414788921903036064367195216496861236052061497240710684656996020024001263176918409951992789066285256577540564181748162922353186134180305835934150380476096767782459332747907995331564083234885883919752488167816344916197663736624463381649269254235233821095692741572774571127759722959329105719806996095855291543788996012723303989412018205394561562910047165799616678164605959806443463520089698451976136584205327463127992302153764002942249441205795133311143326096082682035777055162186825162857299864570020737992545412751147132077518319362063215575176231213797089273456303190892569561958249561815515547082058848800975250742224112222084203216577180720566417578006173224535311642680919240619522831752660833523175781478280302677137020415857554804923136806271444151269601186813020466211772180904964710219588208654514384310913465724835464344275189861888989724548520735132656709435748399650101705829125572001554785882690707598226238306121977130706258757456833458685259205889295616960790860568930193119087541012751072208144510934566032669806650236990403193432342397142800729568785585227732727111419464839622767790495007375555802587994026324343288380532599222033296010913501210596807343700188288759847137576663186636990708153084873952174155157941700334048210855124942217702883260868737907793790086876107886744183683910496190355995211938384257747954856698476730385755155675200014716495325630400953478038931180808912468211227674200189595464774108551061592877323993736835807944906424304464552487189462608090705492809214689818840125215458899039607330535333549361414276128980338858738412082466698505316714822886771517435788929770519561614525976850669113304379364272635747146137454452563529177440974288890934522420288867418747123505002983625752916426987289154436016343145063915225204326983790583257144783337662078202898844000154978387422242289862595596910189173016548312837829228377944816817665453157568547247701539617192425947703852460853875624165731625972445387830108658356822760216867719039285093231881446443542797495076571539369398371482183500626946271936103325182473076458635990839910374965227863028463528399447160158869645573114022113095375738427261211022512794761757100886111434110003537304165212209571545359226419527505560220619509468049096468687492812431454016972033967532530704919668999853069399689557297842340470664704263228801462197960001999447009365668689109698588631975374555717711030916928549944863343578504416830295162053750305318049160042815843287715941631138606151165331660879844160741272585399787122132120556531309994530797856735972877691553625399791181321396655144122924882061316785826374780732306212633436363669553848334490796648360625004518635613881887328926391345687568639782420678055700289328734482830707642127271299336608557445743873742114685383168330455321475339019993424534089007840382642835829818868593870076717965617143792975040352518025904546616274560995395724944334717895152834986791195501708348828239722375533542593507699147947251342221305353508640770248088136448022105012169839750056757525014859977961511507014693478899281176073637925597302618377574495295652468351640743531518234445043666079716166859661237411428505901429220034358295864536736115226505859567028090156232694569610527730277545905762103907453259506409903879290987328266385251543484448629451656782473140611111120150450907530113852725615524157629378280538521793763430463690044524486138669535767109481699440874105136663876007999131714388948666308288849980214299285048039068437527941334552444062380161959185362343495195659529059045062952122859033619822823782260042516298498607725662942985483198603397644659489630689765236998966614144828466574441118705628978596579966321492644006109878337690765457497650040204435326058214660302055631095771973670498243285978426165482825989406008570987970171363518832825424706200046206725200816028196623503133301263195691438599188180267090163141208667812383710547220334214344839753534943565796528713567958033663460459531865022549271281886561909766345352735235047318276393030940917219592835692052882885212901266564011518636976684147712088335068822680347520981343006105485869280800659525829085144235821523280909129307863942220575079271486941528755725538734845720120311783632445284839764309156442283065051283032654267629077126507777540424419839143531986664491849764061037703561422775164525316669418331694478278129700627554048625545437274143008390654145961272964808507893782364671125946923219284235090736600051817700778450659906234597018319843037689311252570446772505143626833922253479499520733959428437186360993600161754446435033893773735805954145962680453149131692774032234674504052292727270795212566300413218725081442062641828609303650983869721925785321078551140669569540839577421002444298281583455020937495655841641831104213830589013631565859250808077710612072132403642432627609645679222044648385707864919271756075305545644997413493424128833343337183454385445868996833974594606802214411144226104980430936202253307927924086512669059799651645542047252987781552707385686836162470525856368681667346741979505401792949491692957507617453995476745274855682243797418656053832662448276392564175091509092107442797490939530857511737902025336858493180419855865614726820913660285281585797896722857975005277870264354324278469475022188347616098221927087755788663427880160630060068328653940441553932590239960290272749785976172175124446118001979644254007417319851270069723930651728058549319395650809310019534423782170998207281406391055024511451555379864150829169059696008291132028955607034294059308884023305490592643735743985608780891374524964854198196112551763229292768596043538012523823818943110883998494393958417320010520910578928778425673825850969095847986970126762978675851723459649902848551817153354228586708491496339446512080091113801824148286475775403673428187648427889170460795064669602472380755645835506648097142718744744216236192211153872033311795706858298323776021192987666401298576627417990840067530305297266550235465093151214226478497826862127265174140562613327927716951877831902681418360359104476634992350670500580345794723201838458062563899734051368460386026053517605717348166305038466054441283106148803391363121420913296310548520190860847999667160195260747605950187019071207999098161223295803765398875459265204658495865755355991337510757412642571112690810601028823395181175744866034325674107218700508540303169835926497324682754279964353557932794038142615859827323849404097179313693147745942109016431009015828656578903224133934610868899397896386079133383124531010674877943532275079366138825953394887951762042036715204000966198635138564784401546451773096111020097997133703237014714223859261575315566093301163750179866330166714458483075313821973707449453365866412436189726478652007842906360480301835551088638180611755535927005124777788808728841656579060001876767543929174727734741330902642486805835458499208287401825392372102152282294527979155614952261380581969993320947795301228081446974227905239509234501166956604930972783637963661435672964664831898967476651532951805922936044451561659575163117454677023963846222251139293326409340219970574940802644399766307991491301282030846627822885200724444413465059990379396758620968831663304443519615248521479494888631374339421564132807579956277885497819878898172203385893244604623861858854071511473132721266224497962469547353711004745570077323850031505930798935175904399289355917737890899565382054930905194963883349583254591723745356595455380051272507471226718048521453690539579061552785018498781123721078654724125149973148644568853421540408134020516717092869162838879110750446238918756860054325758914214479003337037335611096399186522863958965376677207498597648695754121568818060204993416610364813724827591048765191700947328283545383410067722285013899956564950365532806499406217307390087926330659840589772759857066983716998039451520429246739721059732454668943971697492934172133057568243027301898519166975970056306638559003873706229394689426685792759261813555701242782719144916186738363722908875652140975525097041914206550514859179002630588795662274800022406954293584670815538595440651870037396728602937777371097313474310471923929437167289916226974458832311654151213804969190658127295502781845282797053610292963363340828958961472644497663663633522645515370729474008091455932031123447468546377942238816472161285346886919872564137826751170285331344821989474406134698706231597331805582801870177048380402460187101986019170276362432992592653713788587898794255807374600602057886396782321580240565761778745345705204371197704955045152068500302867818314638407738144696746226552660960456095701551295888386332615115765511957407642530907338098295584789093632846970594461627840999525728557048857232811871904021974202986384061322701338586452944873824344581545960990459318794591978166787069422228003104738261989757180413595342305725024109203916715642753272782270164659662178941875636599123795644439933329279530935781911704602582869501181730402165164566378411414452680245338610044710526638065621952566829838391396101741151745505675827871655264452468013649281501380911867081617880902548908292531427127453817420312899030736936457391114752186690403302081073804859397114964444398087278131731578933133889462482614036882284201703705189673850088030711644876847422610600621980038263344567686796490609168222153449937848457349648921165491222738187475730334247185516677940689857324309002059806386666999625164484456957380368100085034265917089353801699800546185640574756936257734260527132042851379606170933087310834203646542043596232457214454245932332710940685706081133942166826663961799155554126634952904067264694321895498369647982748890590022340576833014429952233993586146570148606221015290194832605051082145451389993668790016339338412354755184147761371647242246005978941357589122575943929941345198948698975744233678946063201914662048988134391176643507390813622379847390943451815714609171965155033863942797300476081928953937347294043172843556977350790390548133455877423171647840269789314092617904545190148304400226306791597680867559917344948668508603506357357559872638886298863510728509997807241057086487690764727122052036209350016954392118514568619419368993701368620863265623712907746593832112491734275188804538944309533555063925095739272630956015451579513111281201704035366863280703718510190995821083247991671951362532478201027437627180712967435562201160185981673201924889350819201922699328840299285211156846822739284576525285933220639572454187279332953980821731643353351450322797630930696919742508293053294173410135507790702924611217144379792417943981045654704857502379515378598305657026312671386441735318131985699343927423013717425835019690183971803543978298916808251867585311080690170338747221095064673576910167026065697796068722543568211502647719704516887100042644869766848796014105903789629307491855024050421715615618477163402610267073055280732596203019091222375133099207313814114706920550455840729239760043290864263879137578074158846095474452316433693254463720369064957051550486831525457009672963271529263346386083044015328001419311996198923164541529594745418699957641547105257460817015967382908776036439744860763140202045066101775146728650385965567117669201448162377196817404047826533591397756513551836984229110056528983879985526214521807934180712515667154301310635471808612071982805126147932998571854680285726722957319376608108618084743813018068210674705751689557372503208313896008031709147029032934102885568759561095691304810797626057265958116199569187020380368389332480020710733188393190218422073742908105873367165595582873929974571303426694383266690662610898913226300528255355044771161727567616812606519191104754942972560848768220848701884865888943344022953890834220497490842896433959321593940195372074013168733292191993405148114402170524060336263126947049182030764558343175855068668125590047643365097490723284478046559379134189760443354597593980616839227469341056010945647469600461996052261316213010801506415974271370068015571326424114676296430217495430956650713526995778688101385920568273964639867366136534705425214866494944312253424946196299330557060135734171311449964068043692126551600793530282143082848702073800094490095493949918424375602446420140057096955363394377368202794760960099768469138274009713000670829396558271029508909826374798321735806851090837477597580538101462607093908851087081968659741042921826750405630471730016969165009360822662192980080493176510670197939761894812317656640846442907113686413005351867962990718929835120100513173887999639334125149246216812591723700599384256610466685168562381479998292137495239165413985648213914056224975992676607612059602895489686853797219103795663148305446137926385764981948543224657931311827717714657060683554221928445600213746927582485399699596811424266161040862811975771394670056561658539885067006862828977826974040565503252879031491636359306583953141661475357029203369669752532528712626243692767099126335992954858811249365814079211082063673045082753404352478387648072346051105996008597088136774190315063350938857181816373074099082534408514746856898352166892685421059641697812942780172305443226217372645632509927771468889541119786271997558929679088714537701787220975954668275145089397143996833331211799229331165721356434797500330039543659823478234131049644467451859796051940956911055335483892424291993734762621407851424146691405116147086580027223106941977659549553140269696259383865259913783170177411058411815448588847548376088717994737151186967573822936637055626809707403827425607648988285748496835610433012255588105367597788156469466452293712399353394657227387710202176579552259285564250663517834408386458899047460799712950056095919482039120761097165454482834999148997149447004094655239327963022403377134394952151925784976764029272594295699695674452715987510351454056164311506496729094587224850660577723875125103372723442294358838932868626510446733163511372983263631419569809473592894734959551852959664205001983699540718924812648141604092206451199870439275825052267505014726734897770996425047437775640774075255693663455677017314305566497873871359410429723703999993717146709904427294024612025983835094926822669670932342332208568556909349642090756372127649446077131884932119096797281967255413947578097396339157315510073275569346173788955520147464233961423843568466124094733896318483800064058759001625839326978501689619843274969321267683750615025615451757494592570627069568816503212551252503097093844063213471565935048184413500170433952111511504106971277954480620179994879846774362351570996547300694958717825205124087281007576711029604401443441782023114461980982877862790598602586305376404747929477855020260290255542044490282931653122126692330066478758709430039252872381422116781160875072455879763506094747937256593300918156102646827640256958118569449154633017618763504737642176177872741693496189514274855318638007354884030159879507759467462562958556460421964932550634193952842402179633287705037432544926189106859749777039863038732858594731719169668536348442692355083972924772271753192951219106996676242428297466926688737786901017393483568080765605072939561756495964705535870791353041216498800717803155612842014395659331259924360495002604636066478540756185752015419599233425089316396744790964103905889178327796064082994647772538563109096575246576273787805770881948549926564125179996083501099714655275790168971211528786676603538583690651163859246093525948846833938149091199010219153044033921681507578226812044058815329585517357773392965976316876117143119267383263044786247817904270988629147946054702863579689372375364278902455166850248373037449501620481095234431279353091313271565380538005720558389508109921737432456286658115501325543648220862525306812136482412449959076747124382782807275769722260796671704819736387827188156573826648453624282159693948250730151371708089044009224510801234417060781070018935275386814090539931015200051141396796165609991361194372118876042648840273663314384117685911284909435723479964915427576211266894812541137333232120744350896090927968589581305250456528177577574854287323178516877405626795700631318035570451500235999187790037206112172098955754234669902589203190697921003188493039961224885305668739201743333025854390019098037082554587505738158621578580037256158756644650521811141197345336672735211521077876183578905545940001373724173726774386574784321892817301422376636023962511504427551931787069722716053940119631613741837140335621799854778011459956887224526012947851682035862883480439138186847922984455687122282063070171826305540094333214490677800252002722193890319964578825156424634785996628653620754287906288163105982969091050925670642526617586457200261830208143052442898878271614328693383972811522176471821905191158948773512004396830609116466321947255107538068822058268943343399738782995253368954599384848823617600708264313997859098668746349917185962205249455447114218260869986411194663430773844728445219414302555734629350916983714690150730266044681141762200713504226352286434976519288851200600072658503422719669164581980912606196319878102033254008856671102364863865043716736140072308583856035066346144854589259560018763099839425937231726456327732290771610772603041370533869055983025494508467474793411385060665564823757625610989247212651549412445844176878541502143585504132409817324182660946335987896882497509617498234367897793683453453101127456385879825888884751610538464876602057814729487834495599380256930006643561030263751412200762409251937836960561484141372580924275618223016525120634840069197527527797569086240211697195389292944076590530685506290728241364635993566383254893156397721461657497971299916383052273543113937043462857917119710949304554391338030139565871907328336781874634615306085488500363195572064842042381221353861578231728364337701428885275239040014296071348014806723894067922164966381673475917459068973933319538434671637801564359930629636233566199499435699800326672642176586538263320642101264300632471045515624160170006666807966091009598175549509063002640003719217089335348739326018109443407959408679282235102457047372742596593504164915987934699570408917054088029141982127854204341664047916557605993512592290607928271909174239062426166706636052366722841414045290579289553919994882478554557158284544931923088051535449626849907132816446639244238226205123897949296807205596543521920359213160291035800401178894250819343921868797322238596061862578551583993536072428235686742768581950185016608447757977287759212888576728674358029910521712797449004372521631106515952562875876940625202871469808663967350531742264218895066641422451938802138819008735933861499542353279438501609075960365368422677794607919516270822995727851507733091903368384302615937176709270897565840833203366451719473860574067612614695262203270251317068945002585281889867717086377198465771223782471739493200009323941080065503841697772138335706911068072390520846532084952433721427133367049611893220018187199683517676663506114149489608646682837864607023851884457003334337095162929277890896462436195784183498184107757388056716758327214577483180178924776257779120854915469110507411819366661361664227814900078266055378060704879060100443479335835891290765711129770836560991137247994848240408041536306125580631354154687932589113125769507260855162459384322961429170283990369163947856420364208285814170020087132905851344902519365515646100678166623561676170378435178274854222200845416302813534256502184593951905733913993264530989501671437499138470207795897529462441169524580796559197042132919810513791217173195062522357830955437367923428761794443108453467341353456124233457177878179922108244693988551889924284603734039463247587328800366354531646709133153725063080612345973478811364891205241017684029581792816045679610430872692698552643416988628067030775726491809941741393612889486661293853442213049109774536824175878511193859844644276211660794248001439771774238571040105064797458572963696804092001055535254349891492617120151717418059720622199796945288567752418754129631727105292517394122898768452481100467393535845944110742706388499717391488840483378497281048590582807406437908122670671481167410172292053895213873691087918695781485498276133292618871713489426857110664556322798460327618134284254102876453003339891489477660297304156416873097043435258265184652558924626545487140798096312731874580743974591295048473032611439864501684608498801643948542390891397898420632613745210388771616914973538659933837019669135086168016229525593360368758849964994332093644360083836185722295093342529564316124927390915548264981235409108501930637001062464963522653292012289387521251011765858312270661545537751072367225434306226873983417896428304616658338966332449253133622764080067359798808780188054915378934339726015949702320490047761708832897707616997571675682505546996603320588649379061200624627309429021620902376713037769474409815874755547035765350951411682567619951680978061723496839491983861135539163655181815128468404613946866146715590410507027232922589083310006354944743898238857560402374123134083050563677113128964523372759420851862797321499048663012768742061097602782198385890383738949912210932822288173440658392559285909713682385940097332422983272256053211094041788511751017972517698904140390080321784885572972654295415457310085567900717729448891520187973613462728160344207437115246712558456507980275831739495758692322710731860687021982153169628324647907599805443998318694494911749486407156246668424595567756654648907707559290268924895013380044567206348113606887714454079855433750007082143345066951787590035315195413074784080112457350254975712025950624109030198365899800256434366521369332615304942945373311578765946245097442420679625501170285799575736259088649961745642981304087432358497314255388226997716654338482180978820513166720225852043949553269209095681768757995342682896281141553189789535074459193680526159898754803453199088292042755319748197492753547527552309159357727434021528758741910822737146883198462222031688278558499473525335643142025206648991872092840318697958569143154738084342791261069054606764995250868506153726542959594669890028730306705186212738032957908140769732523291305481446363030234889693428800927834388089409938755753237852352204356406952881773664989293988917940894879399858909951141989537800444632389851352349057411496625667221561270275165242690391463484998292865721735542199729925091447916910258599211658687717397151992774435557864609523809017381851911657484016556466731938072840259327494836915167697901377971730563551313423195929689655122596692895135577272093537850017690658981709273172276679463861804933138155135312609441456353647233302108498236272126367810350077833748544579544232503231355798481187014003473095626592907576952279078662947316811944179297613006910087472385083409259647247577323043278446352590117925175698024376165151113371964301084379781332466360526792855289397500878673999329653869847920731498420583525503720781474916534587320612615686208212182842316518285319630037491867143553196752577204494438255718866714291869802666214482904049044155219617198666721595442486812673944839702698049511539069769083250762637799316731888347183717156980027588694273127213855411491204797087016593383832127363665951942574021491838544102169220398557500633594651935124466850143288353341058633844862914646147425313434879915514705609925468481388795540010386068313397769659574290567672296659288473396356325019944087290510093948587862906958186623401814612069587568043832694972628334912712083792466108267890544637716023619195799583900397626713623287728997709062687650433416998143557410189656538986388389313718608904624601939451886341923486095734250472035617462085196319049166043018930750254448894655772691318608450614379777454984627479106729249665951935353977442120868493136453625172497310755078698476531850977447044212526010713629626909951561099149065794687875477812472940898714355396393943139575879039146340742515172842508516715597797614755576850038817291855039148197474681583486707072605987153178729426599449084191342921704379053306678761220887655620235761940543242859638745302090568495433456485694395803856088460976427445399144698977228255841644224195735568418605564438472693134576602556686108020059042411541150803693063253638272195836643077177237222949805672640172922220362249822381173401144201324483939866166665158675375696294694235431777108846611600110099892912069235159154548390502877944271460880958475057063799346446296352919079355321179509948273177661425154860587319512495572842442117197743732616178523967103331824832051828631347502587500729679149424088536500639726265165045869270370302808615541498046737289556523481260066974212787082203721424211755185459940272906052961376422212965945970809047056892612028082487542856518584499668039431637491115954471848797751240932682432215514467553290292222039658712086257094066259495276970607709451028858938701384875281440820426934472365327124400251632470892985539732547166971007380687722188549373629183528047652447694676341017308731354316102394717021606825270481403726199040076728079957220286004760622912577316948473114668173295775593564613586311962885598260856130073967931080317650929340113307736403610181718560191941561394320346944177638608001477386921980451367556297647228482807726609746646076439293821284010751038688039387470142065755971686382629370345190546438441514629256666564352412729940046774433807014777895926777635812101706841252464508988932477723946734951723581859116138069697466371230858904862549808748488590310349168323671761848582310394876586420934455842250937814168155903231619242844680465347703985719451141837635179289014628214101912155490371276205634708719766180160791998984121222220433824746466841952878866587921007204993872062104531025591219455128926821285412413096356652503076163906719281850536723897372244037937255945538997838918388032501915685505459446355121446776827508189789061482028141066105766146596809229168732939569291204120725114525937192133975963747798111333853071252175932310906888796977709502061054489627530588336996100414038430969461967065324937615909287085601387981125160971206848586795241978988381251520725104652852063715780381824806199783143534812084439033713151025146791715804887015777176500385856300212527055553553331240177523304287018558579240300736967751100291772488499812394507199031287183704820951290131379478387625369445972682182658967607719621618018216262080034092853852285393787224359464396476095027884069348815941550619694033463753094151073549783031594449580880109806452131071721198718067099804257146850093894155334974662017240005085269918691291464983029992084172685392936897246206654176116732325295612515356913622749831376931878884301426411660128650205695285267026948639602786092922449103305780178996108930301654875983757324683503719316317601753575812965207427651099342028022402095633204376810787756410386194185307208812774626069137527880204370637832992427093473100538458229601596100940556081102578560645063619484080795073699651800093381007982558651794603587254917722038647731583397934480352781344211877201703005260178643545601098451506425837026565462082014302784141336464787246186691159545264001794079893171802836616052968601314382624769672470347681117806944355025138143131354280424350301391804791104916794664569718525704017152549724060566213669812274038900291491728171855414174161373392946355242423549358126783244885723307493894027216112229301214728004349915918140753420205528383938296555894391249732629521321193086625053253442799926922455008356732193739915556987988256710721146112419874741593385885535156263969688405829065984017152366056443139166451143491556341163267881792132789215215496975533898898990561225201661295998644057150686405792947801159431306260648345795419894031877259311763861260069905028718874188193897196778921200169348267878293087299907003457945814258981302576716616334761636131050411903716000524162856112061914957131039072406933411536079626925558074476991651918835882692926555146670396254237164593560827118096120333470046436356345181772568938734833399732480651526470782852887436209255387278919365171835646471320298405429335836051694652642892013639569517146645442985675564241588437390198112712997200353669878213401692191587103726434069372614795417832997950507170733412665234433389789447948729635212456029717003389416518265049917926096460340928655682117947152002710599347233801204145497980189143160638586793558248593223224205069854523803621071042162962205959237438406616735413012270901387925356352909141982404561571646775764682087505964521905394738903939748638826287983615328912573444447928728496352505206078106558640702284511095715479805285924495729957175940709212651081272329483207416346640360653619568061927987840475530301614714340284352323396603249290317250609392584069626623475960746153525801774555098940762296481203062665534602830022019988747394068407330074749525246614527158636482937323351375214531307453291478502653656602274936536318776726782628211307789749484082065983598877854324408045596834386585623911568071595123291704782661884162819949812364635015728907069919205125124840663125035948436655212511992780946233235439700335706672920476600641724206687394919576059487663543718252920816463278322464658521230229954259974958247918020795883584528869614115291345960395140010556272023238539734882113600467763329730634882508963011049656599776446084930229447154441138404780814091016553275542781279606487166325875795816582547563624930726454336312420011874422677205168784756036557028012021182381574577610635773843585226154156418833895037925145569923753178773333348884749543673992483177071147585189461301042796626432211768775673687173995759511011081301030600431566500736525539980882034221211776110833288232548395814296030205875327067286211407160743106058711599096135925971397479897155617331129841051684301994642165096758269470014598460687371670496240825080111718942812084004859993043313341008654571811938563564775716158155765402977401652867057625188561238607917199051459887754327648554079369525434850019431759127959684998698084077529846203749952469352200258611031308976328333695039615414836275534270174358017999837284973274087509067409487388322491222843395275484051885835894207097658963130907752927677189228129934870694886482213568976021473585602181860011534171457249379749450520772480225946700759818765983531333236449879270216841971538538580692335271923833684341232619403599791059129308705316580550685378278762106049285346487330775628588965667020818597847626248220840270998782883035801103727780659432304175005010472332395758842940726675647720564202755035500511457297713925105750292021022503044335927873624375073648126143994936271511735245329434358480695208981105750151391733720186692916323017441565099022161466775058808768021936920397160193407073678398485903108103943945333279046378237587682678453104912472256649076300238002534684043470044913445075681879108564219856002397765072787398348907865293341653734612642492880783385078483386396728805953406021893474011742291993683038334904983788095954838774935331589698193028124904219674469187168411190813372727434337825100608522725025521553151407188261719565883287948088132672153539128706887137690843273349663275698620674051441966230722053712050315785976890127983397078055136391604283281565686335566050921137878986801252957847187752405103825384657919827046799768955373665107604388792986702771398840183182443634624737177123559164305860992934053452393825158864336835866976731103213623957326847209403042644997144786075134959060942429114836307120011682911463125804806459988128839349376493430985043279260146286654986091964427763840651963952070927985013890343161715896911648922551062773639434199641878454636716149964857086858675346070946696494443562119582190971596232400751613432865419911466288321311360136845711561033257510252885162997876465775631897131310163816178058058001523069062343854178306869050904569689530218057586009836900274344631156727523812362052962342617083369453073329212607862155650205295975789745564039325807823317452130324734548795625629446029620551039941071670723910402223179446028970146835020837167518501896999315690319006932631753118267123206700482185727021783934449243527614997143653515171463307501116801105722466531749152337279051742966491350600326969592472259939493810816847259111668842922780366775980515953905012279590404992956184902193815707973064330966922241076467700525595833855322569162075792609958870411237657335107931303613980215275390600839248090430829810191957842518949829365325168100484122872035545483048058776307662373737405203245439197239818822366032499343475963828006392951493970939958409943039415447707781137217223145812098694381369073698166478911095209439706436469043397053790251935054187820096717869350164514870755855404586031251304349839443149408886100531880900717114089292023007639778933075672888198261221290382215549668988795399972971530197665524083569613693181201008232516619607423838007583136613308105273672664418991895609140055704131116464013370352712740915495090782609328711430503757171841194625732461773427808704822165914312568924367027031696235239475342657062696363639110700638274253231608547119755382443685087710938198568503999549231733327279514069342387538186875850537459382880610393171131506625468535802343153601070954872035386541873618791128104416359610232313619386815623658336317599800369112022573817113703218311801675786427944383849729749063274304783150944898870865872909001882044560973443794039122745027572300348450819315063701729580931797402084926176115645950835795108848393211714928318063163501034907895519455095788537204795568523499319708453760630628867305422125526952632226096217549516773349915550482377900809305303959837554235252221254662820453766391710975188074185840531359658534401229344365335445733755125969029273300549451505036049768752391544001562019377563666456009912867962054978647068519967572263521797549703221641633235859171024878284595232317119538619812831619269265046973002344874909401774318424272787037176748545750165917271876419028545468503108055294767660949560614927246118143621971510980094381611280344029810565978626171383000879389253382023641217428049319619006256180823123321847637309233847914546931199490839304735671043313782207215500485909603776025648496476702891656105173792003153994695839671369333224088389018452725718773427385902463680063393334341668320896167313969071697427814106477828265569436613185107696159503342625297776054481959757094987363657548429881795953843926589209096186025201565537991380241632631312759583764475778544543452321142405987321039563346351399207584581653730690481213916753149639974074373360690597205867376808134185434630117321675985567698384502886766897262527651235650943961101009213196008921276657730657804195506347283467605481168683563507443122241741004369931976072313850089750333125068670921427502772389011114653514446073866421924026960028502348963020118625959109134321112049394972669466904405113270464402311827697947998030065932393581210565499692597601824425141497089094406664276544791270396715463934622865531256952627805284240114490888227593631114255129651690664538613540213078617231664563952072034291575703094940994714457661499110475129812513404556045747300009600960566981584102130863956346858522574822760196101114309688414377181945335801737067788964671815260110566173882139080343867720422399941985866033987401013338408122542400408907847941061316740407424679127632924109063091626597910935804518738520796460192527675593909591388771070490541881087099261194371993752542979156581890433409703342115173166925695238184524069762746939482432789963757993472111869351183782455849575549161388618902532529698559586614549441504404570818205973312978051852016605876294181301441366352688699992409056023949901287725072737379992972344089951175984305540171042449250521855735701328401120029888086210951677903451244964057547176413499395695229182105520446848475471306033831808434028078349967334929683806260768219158562307998439094151440216358177360115036504595938143480974000194918213524969198605162326819124043265317922523292851236829992742678276213512410578336055059821633222237150696745081355291199091988636309011821222674564888420467307844989947406278636582438372864158866390506172166709632672066104420936934001572025745927786403680798068380476397399862647262520911717195986764810239986607225516241436091373077563885526426665997976518794070416813152940473530310325240167338961215446913937360085845503179006451530240835180526071502638860081667301209843828473668982778040056034232796591091122804402726209794014515219417052415148533045140548858662380080132053180590112925058206410935438554095912864935904798260699095811352240714045045387726210507188542085675116926534302628810502997124752927386829485070482095237864370375874452291690641648552304371860584873881477479573024775918790330953940707240721260681398020883207063920766107873838926701412162479463355484339115750416492952854169591957734257693656049090024622300329777835394803707921055011823276627906626451220751684094008226883566521379848363220331728671401556669036945612236521982724309059077112658852621880052878664331308517318792768411916381633264512312983938927661365795331931380079108417403155702308147886660765299798649989223455245262079285369200081565789415547794022456860341168585870468391687621703496981644382182971165441174014727195701433817162494275977680895864110800556325414774572079707225887284381196804602404278460495415843884228650213163943469288190615872835178387700556647293966609513117826136371862799143022913396162087340225058633576816657828533731374263576663582735021136557899661199286932253084536619694977019539957415106734747975031091494217779507927903940035762823529724587902501453062419468433325077827595770921042073766996027129781950306366848718398721478747365746515373164198421731778814018759581743290670476567500345998786528729393599040726775887177597251354607867364318901856886585462316449558198881722943803627262262115187335820630519361501690700423182980119129883689376779891996779093227174189254452472221269980470025738678741621912803860251734192045992265796734075086696279810107992288086815415195401800097772927168904071110336662671285537945328003168046064986169316545547575004683808091326177157268434479155557641193605576552896440790937151647396845802328525948753201520971170091260727943835761228214971903546120443413549092978939297849410310536498071934590908104332528504198379099881312922848539840134777170130457449840387276753814361584845357726976903073069850570799376438758352981249894154607988580150369033919700401997173212487552350953825439941363100913358003014102717624564329041864690641069817766278703669765009851698352256355427362869649983168131973217918632393523795928480148044600610501914370073807799594146131234227334986446235170684363534556560239089116726907048394911109718570088029757072884682586030366509440677500545610493487311953016154097605068519377990945063753763487930807126593741259293274267931405196427912122465744295765163783477112775043557032743576747071836043656946620125357145986242545476185705136348928762354191390233795593705243635489828620282023424591918460871210953958284307516144810100739148746503968101048763879481863876963320361047634792807327172928945313046647577930882079318205429723271419244650661599696619622004836569577710914050334880407859386826621680088141210748390527983866018531297560006278938109692714676485710140686899880056615803939735695353152686119234794958690405371321289744841772203584711564053939443927824378981999097255090102407128428646502647733036620106618169969203244898220294230635373469654955021806815208764276215157700591403116142906226096354062437519492572200299090840609417125853358153249147533755994246602017261657942996712287926776310047374855770965022045990881614451664069092711824371808623191304015698886466000802557988894636250108400278233898282244924523691630547288231740057045848000745910325994879706590750147331357691325450156672331318821390211079480576596480624869757768260711576144910811367751868182714441703841357346162030367350345991478542739552240889457684773985800402644932084869123513858515836112587017180815267296961476905988994821143931758711535906224501162636539006108261770400710130243055114303323865686803219539988192148240845193690701948286051098775747704090875244155195480920255582332757020002999936656334346242376470038840925066364529007858369236782643683427387859148397212426025669271610045307679901603113939029398024817604480184722784569222968147561460498276817897871955110691482116895966509424383568681050791488119965724707704935545239339609425147540590875098052979328112794999534357752762118002820186068906117078250126686379077001610448669947542400129708175187035211948976434180755962270037824484660883212133024257770926373645135255816541466599416595861987982834641850458870829111213315545561684701065530329130719786023874303394745063429763482733131785043292812032027687438527831697341823557389451691213472561785653219772278748503857468245136498103794157298163043473209958286409475931769027003403639340724336940800647190460219612485526756145938261077212065829894028860607739569008071801916059824493506766829933346270320604445490947624633719150694137323309555790571570398684764962141250033189735632957695245971951464572683103664188568451117547929741333939951180650110287977110294842152604887186574814181453123216803422167334601816612431246960998260610908323518063049832023453200235782199835030669428198112430054289833695030069815523888327077112387750692357273762076657609333126856599550801979405966502181421245130246817941661228901798518677532862937833858748874527841641463492170320454216963115871409217982276615432143493961067512015276897644604610355292733908789028844388662411283467177940131552272431483512071269560103168989396389384776910280060211563014358651936671452755022736874007003594458194642600043034664262051694703592376994098086957054413497447080159957604718485172373395959416759420544606354686577957387502474166635740144137410171542901953196852561275892365683834408711566642268490355353006341396807729536449234560281511005149674853346615658383457691850803148244731740127590462704871100325564527397305930787618023067232547741327434736622359766560986563652287153774928700819571648456268489639683408416401731151994253778345915437093913277167489246055325763902177610423771748063717303683858903224677808443703585209656562156663446934863575462366356356903355875980235000295915204057948467646129471739890493695964171229489723336602892947465863040593877148772629945904085012716102803309846712045625579831894008270318400480342925526464824950932035637953056970375863999400329937651983933137890603383187612892980506955601897803640886490771382216269895226710565990023003514776534789046013110236243802891630304338464540113117716389339857802702516198460813516959746380777459198158915409980050628851728970580453400016591006806268654843533693919697415718635962613358300607129885103358615415680749647465265577658966345507405604237769420695061209072360881711605411792346001832345731424283494178625508470717088371382167852508457338491171471810130866811038614393602546320403639730825693342778041818332445890139114067218277458429860245711277040617663195129416551634007445870027200587244009380090934460337229494633287350376011168921557692510353144742760825022960382172068679728330273042535240395648150436612573781811872216072075091919752720490006309113603567491311738592772255406362110564523811537542220523313805359985737596732591141431395467487744034237875352386174266404628417162869908124600855404059827858219186154989707671211752205856266454635842142651608695199639603327885365346923215232941376127146327691483042394709523128280218254520245598819236572627746944588281775267759620556531538508424168862358370752864631824611720674260615082429077157990988600677028726098198285447039328109743359728692529149155490645342724826494233342980451555124136191558436735946731798890019037896510523031638606715173643988929709022712729135442594681987910632356108423310605807640314008700724354559531529254797200285956975405357323134303094945472422407791921168578329559521643919076818918355815403111161103795628201137079693713044705173018286990068686438841295650758557450941783062964411400856716723544419872957094334809797617670824007115900920161496617529581927814675480634539617917275569931372616069240152658906255964657352230823926851005987369085144539908735891909697431540169546363746911710474073884246744267071542332934762858835109510653099916286285142829566147682291194234397336777219241166796522313312498657699047894966564081724735116994391510137944865337998307863922925762653961971258717303046612855262020959383736134588795121253775413706658680577416618806591358470303598701766020924430713007784317874136678444045996627442705612683638081336099765305987188674535073901692272539317573602283325263073365043381812994927536213993189423173076232415363239046994680973435143880043938822926955762136838992446027308768387961117994640392274289916193438843427140802076976362478451063865108826224882113436693348219950427970118396101397458062397922435029155043382666232111278369238917483531446654154133383795724694742052101009015595951048238479113199204902756067440631260440722164915666794531521918414196574659246065461480058683089236148016243314316287568475556544557648043370200956925898284742338330940749496226991213144241668603819800649724681851378801663803437508058426433483861406509333657068530621075554028771898359587963211921540590155884916766854239128647412139765935785287892752205502366592179698382004064313201025052444289125095411879396036736680063752227593847421444517237750529303390952069959134076903667849761900671984156412956315514315070157933806910911027865337823139820892540143543922345133131455309560640699443762509631493181723849796729281499764638058322308458617033836432930343970132099036552448486579424336042780371570726043919114466828724227431218382127066329992476364350490369839919345719388271463717569042653695737170275476516865456109060602838288864726174414473680898115994611220178592155403596504755265267198589710355429301507258662457060052989896326525881577322923047109356358079978119677409338984712980835950180212367626132700709503492437234635543992495945874326520491084757721435440014901394512160584617193771626634871171550841308592207000567815076630049923682372666467762262559614625118612959871796280585114922234209711896477692072962006917804329595210606709354081980083439506845855168150400637107064786832136131915846248572743856035413203010066070821156801044298084919558104600137879024962511578754143875951725867450395080261452492059351176223279854540513925886890889963106919018385008397583687638516649993165934390753015945756222775827338101933772611375567026276405725045046681313464122220600010876749393284857299805280358667262985150586126596385900531384240509126117215200574135231602889690300698297786190032953246937040753097453774403340958497967158724529485784555383692690415890364380727857947226710701330964192472504115031563816405447264258562000545809643976073456550789155322936268878535198641463810951244124473571563187796232642833789006054458387716557093494552897665106973097196932285165419247341012447227961738917110524542507282444741136507360113233605219536188493055344877405592917585608794513930194736814789903897265649794427635927853267426849522152579592185427620631233054690139900710016648202906707567572518342827988685100184234005804065420870226484531194199769351332726141395413426627573966411026739610820384722335096664648891352225209911297041162998553286596923876552517602919857434165896280092209087972665882846045401596241125633860771517742554239963032205931258104232984689294905653555833549989865850246371182202320722306861034357676380648218803538109959639710636112873698809147805538563422514371522185616237360920464823024044358755103630732344237265346169387397865449224331659990376229651818347810716294352898166754280428362984323635250328507469330673671150718944405959299242231212387686356344917336491091894530519145096547075819841206417678380618350808371491957565768368236931220028924897024751640848775850603771838840256950010927053878084624994095691838147773652097772234339702788379260516807432665585738394465344914776996384243688453437031167901297202417724950827379488174751038219599885143364596207506027346349897319167717551503184692083451473861598704823412826433639587764167687304472768854445378911358390654145822390765465462529012895119236430497946663060264698365176760539050477328799838337004666531024377350408871318215127056006747324856359267758817366980697504767394723366193710993341200987490699136833718941417061897644181669105260421425911685310155068709366817250248297577748482004672877790602022034914076072414696918619990712956231489844055902196134884488167050784817165242981848673313473166137014740157111108622339927797372357173890092690354441310506608261075742040814326064047291494072740843713734125101730133431269602055886572586864581200221437572218140869775880324205828398567533566357829781536726355844878639728163890783421727459058175653804588012882737036680971505440662418574998958943499487521800257959904729305707655260473083157805831829398561808879248486224349288039130386556456235472185235230189675431112834001071688504309253378702648903201439245263532938466671304635913735278357144604529066712948310751155159837663242438667519147186603115151713426830744869047291342085875149096447363619106421676722079770459412955905606559985053489437846488633005479323246259929130224374552521382745991560190599476945280779909278481712053745303794611056847024075595336953749562992594619010454227395906364619875649102523401864387860833746184545260932191546918344751805756090654054364259179221721456706159923997527337012740036719842552112769228990148531936706397723716754770234376442134735122389688972288953140183068583501444298526255829356508820311013610220521079859328095875299579415180299929307927151033641429236048333792928200343007739920105473170191043486434446343729528417246844737741854878632656319180791987216943110381768576333312094635944846429971165834728837686616522470153965066629168437409158753950024679476713450949680934975482150974305546194742027804938102790607117485346720670645255172962537949925679279388371760143756244510438040082863831879606590427078360012036477979519108313711192721074021282176871656520728105751322916710747037062949340592046979397184252104731918034400904163339498166290126573568188348736403714937413517448546421781376809461283377676527942599453649409914014543877564754467115127260423328376874069052517360939372758063410873303500287510725440815300240246007017586332270110299469496562999744081718374434492027629432015854799564159549988220526844373952587086917107931161004001152161941684490451136110146154915682630969806165945808613431815109969856157624178882298690446888988240174315486928176061526718131335161372179029962147584106911701553907247175324257065574460259861603453769132357474400744971477886469751462138379465089604715685064607921688378856084986531043112813295909512049971114379209013475754234776901426587910156874698902810578121412728722214876370097068858077233228243766476722822006142597675437662517059552045747410360221726127125151692391282238259218568089114402577880779870422870050972493367719272221371794785122647516806491013705717437247579824219221339778798342072388415680853389044838608212812968726555062164634075581022987033008389027043459298414219391718130162813129547513264251464203713246111118937534494564332387166575725819725574701883326092192254696069984230109645620749599760894331061917006581859997873662936782060291931238387743687646798563795259527182868016254423064480412700410525151453464802444611760707487962131359161713686509520210796542883071390014584774989880895417310669715874665625081493477987593247078475054576630298533509432189172701959673735896944227036896969426300845172655566412571538000074787387683506408798492473134477617147538203286546938319428010836708138303372523978478136591034111511050087383494799639607519344465248573130508345766802958783402515885786994560257923801116829262223608511607445693801942129316309322720629155312833184055716194350400169809358415303596399378065071293833975426497089797019895369302252727840991175436286300452706377983230121160405073531016605301970374204649713983382955149116007394972041910093285868718152947394140296588163556143346030171821044278841816838764676885422886430907453196725989622353480937770488387282039835623784598710319756445342625095427855449590184326357255806960275824344150022710698250207321067594722346832686648488152192997318410430674457831893046108733147683842906529201157252504463835638802674865315063924651269637103623470272792142924096884807210513831998343487639486745166503656226503272589627415957734459659075183493444893099737652722471223924631676383910673577281315458147410165948973922832950234768560167481584548007724441841125653731639842890528327637335279288968088197554099441925780824154270569647540396382801204420606680536605815546639334349203107491255761223737392772101950190689394269553888434379716277493362970249555478455406617595799594942748333354667280022289696239249542620101252783248697080648672290445073438117681607905147456520676788556370817937910074139369492559135531852238573633387105148608070005070062994813534708611147112504177544535930185239006061153174765285038201174634603236680619056238619912124883670486504803131266190355012861516444821723026165548828278666044709489957654991242503056692209654574087509156759555846197976872317085778686332552545181780491345172576490219344541483825316200381288318162475824314785689482008046911853478948998721116746839977090109223989477730729158924038803480167169826339151622924686506560350878774153549348919472695676127118651139347719199698998976256971535005399164086542250633802234645460991934288603063114683733533415108667978244374263647986412452856294041299711372341627844774532692419994779000311626702288593131427537697084401015411784391543252898873621106921863994010179628634145796833089085494989446767155314973341536097775874535939754871923863068095603797776342254184952500238968707553214388329897481910679694318756308733131389048411759597285961130593026974116400238153371463359557624734862244268632562134364415708364857028288070206760869462147156973719086580330023380319335636586829886149675977322705752860015444539671770828276583025737681856342135438862337765404057519732754429411627509282657747819196175139818685786484020281484939444744485491182205166646805754198910764629252399842082152359574745018378701275658940665399229862074119872857336649375718492166678136815034306558018551073587576629075069436199464292039718299657417906502723613343713231895525203887427356939486199977117094400935633490198974468166028136807358865528044025529693381795127086290644604777580646708909815018538627948235358041129357843337884904671375756910142763846894560266491487003063465647100604217669019377000689154890718898106383981393496617030794008482799611643243868222579038275164224265200139959416826359488184877477389762957012722649772895799186828595825006935672015102002344639153118736554848323551831682867479182456533033245903287440235834405726663405825742807060872064859637728235726346769812577174415234913662709386737228003203865589639225384930279417242517040185705933765602784849562500896363169572907508453128487660662483194715369144788948081416519513078205338239105382072268346798047177801668879542301768452285027316773422575568068470977224150950494715809848221106546641695987088049642129581248849071883253023255557780581380016813762789103015217273866171441187467299549740688163833655467358429907292908444463281223587365126554806193466077062418305211100080235675014753867706884129306338240388724461144913760598011755733386659612360849325377102811814434921728489775893408004175074046586497159092730136840361220537357293289356196915858753529983096010332203777177691731485836776843343143138491053962203478796103118821762109919534639071528027109384374316529649412762387414611754532249453327140696647779584321754412343739865849752354467413290257850091380886615964625252954996333318320533592309578287520507661359678680193975175856970738999815712765895248109219990701484376206851404981535939463824710865317863206142338726203819628273943121105731922401928350065254035360080490037424184767695216829416946506127050616658928660271451416659213290324849371793317479055863375189443769675102380818003061716499236982685543315648936066555426316154266350037661989322140979155198530730906669137053576440257590695239045889727437625291556949256781065571135374608559837560893685325202414021011951451375602621190624861632309228287681706253151147277614563714999130903348761091040815691170343537952241370399954094190331205146898217153211145922311900868831819308157447642964837034297949845929100205472684305867404278172635235444261128738863263117200676104013936390319758998728950530975550554973588251237105948503170920477322979315651509560949044933235876657680389252414474909041293977011056413881687206466774288917731099549925868255198336740337083966690085472631235767773193046668488727086424468309161875942363065167680677569974042655773428849844437801876380940232162172774178136809188845561926994293490199148148838518811977569156165045074882177261792574307147213769993085614961001757548708850450702352005929529489537002539039678519066320179567535707671968839268338810780018214065267769260934800636379064887866056412224343769102480914960792283015268174647935330993382558887631494862993778680572241078925157037944214134707760038635473914522271181227050388721407389089406655565740151991387168549254883822368701031264761682302945895151478324292112733792165789070116234356013890548772666060835032858933722795093481813367433615338591059407067461272794256072650663746755146003895005877047806127049071431823716640735307780828518427229281569924454926715485963610517129175284288671493713197198362872671639998767042793061224335150705672774291037783188359235981178888453891351020912432559905602103371315001852237649991141790787441910400697866965487989725035067237906462879909420180145813553885583386616781917209947948133065231397623330782080170977526555261780905472153480961874951587205544162773363151982496503198270592156423191502806020519903209625157912721354133357983838397873105172103741003608036198056577636571606580149631496082502775591736734660671250404757058635960962180049218408705018856533964941043619428668761250317610291279599223771484140291998972033704156639708442540662253597077209168704962390021440460893617326952780548522285432119744633855837733927172336736486452616968535910603312901602514204318587423344632153970456674847719919954748135085049770753373913825159569781997518403113424023572695145220230506032606266768397236345069089425631296267366688327017268462028254419704484651034155547002364592451225142864719531214068685108882100803833922048617226272095526710033044289050900564070851316199179639026225191740505464340280824593752027370616323477717773081938757124344979751068765249875809615256709491078119434739426701553430176350633906313461889409028885715525661941085366993442968634730919817972747506355972869151107229706443495868624318878594325993668960320578119910819167933696602609255025367500256611161300698867537188516930173545163884187270816870893874832931483150358601760890820613968779654873163975247331181289013076624347054182352594226341348783169390980853012669061661828574618621511448740372823400003248097535962777329316348656657874409900082505217376196513640567840097858426321260948187168993220521548242662971261986300920381687981189226057209898584076366569285712738358217967034432526354168202223499407455527197974210356313608198230592047850480063598964138490776812024457426634115832994522931450528219193182733122753579614750903885435943994854382286288288153219567136911793143638043163653442992575096373899972420414697225214901164517300676633143234887300344940918441159972684155095285148560140077661169117779577295886201198658402093556180521443810545832623671466341411617103162313172079942755411376843267863320434829196687636961137925206215579147969722296805950600697561260373118784951991379076130858455690222969415088589783290540756125389047558732269791809351130691174065720085813830259501304363792426447292643908854640720484452173453155835355507450827384423957590160581183102155278451100080632328318632225257816697939665967088165084669744937349869996897271392130134031785445093810949468163272258091420099874962910205255020203749841582350267911148517391871020836860429817134254548121053081280392454792291632591767700623005053317399301499256784180582339325728925031329663878666955235973201858381977397088691714181701083367160068575652500244096973322398508018299564775793688927125215753176861036964669180950452496030213881774343664759819692291428092998194736577819571624874659314597519480968868288370132900367670141854717709477811966119109140723409661276489281910958664137232581972036611207141564500370217306595335588785733496083508993637509183048400706117643168656242185350669278460712695509754181625006431695612514013937906407512494483850462588559579305287704573734073146673944450511540848035395464593918964402472273874987990564948983633781321446960500043970127972828259391937319304342374090622935270226191685618375419728872307714731954433358328685636157910760340805136379855237474262514156927899502132554970702942065514829390952868734579611671186902656920700996036440672707044298249638343202123046571968625380124393836018099036206062951402968619467446117336068624971523172324077276222352728228802701720005713545868726155502694066456549899723888535231558968946623608134483230776558034042684245264110780409697369095618308753056941925895124596927516146319359059547468347023975831495653877471046435722798741492033795411913069721343115444888253416361823444927823130013221676272839554871747073317551201372831043038419563432295790566816425916944198715322555188170783666379070704465353827711419024234459929534788217083260407383997270950575816282569127502091281120996076349619714072996171573655002782798881024450277775218120558432611139449950747692398962851953518457750479943882305550257551320932264596572199308483620632942698967420694433060127601525537886882913946301182171902868087882966275336205672524059308840829437378700828781788212397688109211652027919262318208115797417657845583933813238108967464031957163686246530264681347814649868986303146665080525733565693552314572231614458502204196379066447835836457906741482663415817498978652213805071374338756907932576724595356539898157861199404831123281374822190898490699010036672424829749934571528744229058667245794431312405395573789489003628535841047725853233352729474133590470937992199005764466617090188795455108943625918860158222524922072389112190263113428714611826449252542862557860684353494074602752606150443675468272214736101110854615440095252291282219450903714272587642160883682255264028179032769077849825172131596018302748756373041365872277524900025913300778363801619616122836572130674425748259962095571341664607605736384891399052520208082578369257353203320896713392276389620027487935739560933773013629443612736549569404355315993000574552549362268327583566872178443417412412510119930644937053896432759088596194377302302497187198625468725347209513877195845055933024961351722471654131824526405729425175638235029250121201323998781890024960347940655141112783676751736309355688019188363821481034118223702483474345774056339887237169035149784578203461511034255037544226052269614664094713277948719271228304184137170254901722176426628587958122363517717715125637804661172804817146214460526144940481313829310658880927130229483441038488792330303275441952895651821444339379114203399825394996007430073758826792811794335365220918929368803374796738621402589865819486567850666078861298376959326215142261161623139545386273461122866662077399846917394456235883401948915169838446778588211905600624367407803686233035943589817732479449707598612873167480371391495648384608607900623948729564202505152193503090912209880152939858323640876879489847267117074907437434410103613703709877863680816936042419392858611713498167995946040095918224499623250343842774519440577579074445716353189481052469208479134411019624191484221913442381164236273438235995856593804607719469338598532354091804953124180968753246360377881812064352747311824117043371151757619447544865572380213737957149592720552118781397645940837965608623417586034079909836018148192649401041042276626697427440012936701518084514382683222957344001267558392873858654271622483265246019637062417884217743922224988185954893183832170820040040627074557213237796280550273598572630934823258572863034641413904692048538413912777878332470900900324927604238576128663127844199670235088619125781130110859997070218069788408259225853298358982390841717715765701554718861698757813849959032410666729894038042188280672057708266666757837530954013214371019882100950986062995345065712769908608814417641933419009892835520421721308497640700094567619751506297346670112328860007352826200978971871775426245512841259600806757105563384563656387176545672986625009994902280533418731374920817557912609006723088140814111794205234370373885521657661186047727813126923143862963831749951891223447060769059311728118421684240453001428722826451767246951069175280491893929296036098478342140339824515413741466737529137034661254783140077946767915823320499882575246028266175085740061160726592839099270662852386485832465624264218252594059962089273691007357899246604387130433594169450483921100579547717739164203617839095647190273772091988009473179243106817088694870885711405383131638913130354774707177615768290665904338412041791600213386010588027005166939140805726418627095201652900959645652558046167636027497894657705661669636417986255619119738508386590642065475903700514875660822664715663747037358056433244562260579853908270083830082035539667208541676338585948935814029776633350608988802621651538751829641954734289665235091027236608167301909031434483361903595840803424641878500979437651606859958334910304124590553478679402504253676574114684325659174973881980981230341185895119014405785479566703005629420440715461067551237960516829699097187174966605229640131965626640481293203777475753594908967984814662780928613525846599478208283634665222370327693661784651143664191810603033187552431645843579770035777032335683126477622764431492058102048722790528536197011385006427997357238414861228082427304084678723109570637437546213754933166449660076680864117855084360996429388820346866303152185464042255106249358431363384291096452224365834127093095379316742935238851998210501849756546712808749082198649528559223616453027702526420621090743094212899287561277171677831575895590563527809601036740663026580865836322983887567822910207156455100228166453709701227897217527635637062246843540009167159963926704227411168205919083043724076277057252635442982726724143323273789609371435782552761970604293057104658617225816557205248890799839823658137118113328539628767294841900252589524653165369690002216432004989904584592208288745317548767338282515557580760300833231600563203451880329068005765371446009787055466737034887651322314196872786062186154656590147778628906762237233439506348049302182952151329228840700162203427747202147011354128435034551341128659776171465282905224823809318490519586604898186276872312288250367422124824258282483920956543716322150355995190124954256137379054845235963688400687506393993633470652539174540756698988636793199517311009721890402147438254870321433034820383411737413017027269236346286299059143383145490420188146009558533480818916503966727356244381668115853783514977043540017127496834532875554306690245856457796058766856215601463691197882641250036692821838574122782735070281964434042201843608575830783242606328369903630796760102105339237888229865473966277975890256904188876465053575533750507784441074019437059955495703165034200045086947989081329161901864640483182434950348720605045814322706802595195486048385183531952886959631581457816930058202837525149120564162429286141018600636065662329690818296869026604764587069704009603421226499707731730025593002661653340779493038042655956778273107457604720334901885275580217575696882213170636315231034392540862783115367848288334372488476748164106530901884612362913692931975163959682852512940432340123572631792801772139588222453035990792054960181942705187712937298889504767433589239737519055851923769915864364608427454578928560068099718976640731471191544169260477892892771145456260748532208633177340426559780288106344310678518303106287174835356158126492515003937556422719002411040769834214000159105024080974873449562666596922763526349187942862829192041738976570231827364980563287396456757331711031754661452007296864294881561323731863112994123853713645788051663594237982798039020025161119031097200885518756872153269049790759744478539850252299202164275056233071109875595315580895116137842023564510992248536668249669011168464949243137032023082491569581393385861392386785330995110732874248873757494899964749748618840619555943477546473296026261339767770845691421331385042795543523040017174601134006036793436511456471862262318487750154300018016482976533138512081456243534580449082582965690596263663683466623831786424800125715900619163316732349737267505605761060101000167561774408319136796483926323689657522671745743066836158532553239027082452405688685749491838720843029791311980575822486040237542485702884887214330079428584229574523786024340702226731385353953570111980227926068345807049225505958185857913812089818226811605797585446928492736888071464726844887184702143107719715431692831248897485641712828971880059283673644975466659550881630484432213331148521043997026410937365179243215940623415385275493958766477843199096993442173818617832781610697510858640441485062743316302015214216923917013796978874784602825211544226037029110972302103885601745118145047487830996208098518859264036214310720506270491306076197799377468879161203716704373889546558652693917266001710880778679217759337828106151641752666586027874257827651303006874142165633535037718065522452000428024941004240913392470241283844780202399989088985595357981420960777200459664436247548035615643266949590938600404959218095850180402681375122432859220811917782813395495451406041504825091518155447299546062211937100321817835017572545466441760426519240370712234226343755983822960416518378442716721187611966300035807204446987005206365908371626826679580986730701688500014657126744797093269526412446740603909564998991380651042186802997172403978665990152515204080415324185868918815609605075761699594848119385133440342365438927092436130293625031027667938775207562154061029827956392547971834978727712684588787298554478217615044069881711522868719746647517667398982268344613176000531182712134153198483265101308253386114367134148689372320236575352832788139038945263322895031149971410621270045278647887315082577889194158731279829276701767637961790261104106608950916035819239703231154256415697601779169853052015718231720939100015556448811416489080111847063068979442043966058404945698686761654186063696534593132495647638932511533103068323886966046484777821547939843785462402945123341287175026012225317619765664361421236837320162029882063855199713055722166004100183958838400769771547105130260962566942502636955117329808291034559343017675361301559067441542910166481420152372953544237257665829720735884713044161348754060109685421668536774314371990869861809963545932184575180460429853950099697386919029033827636533697934986487811442455075744459770956066738795380646385343706087798743595402141587378642557131317946106695329479449673104439730045311805303123491007447982747753056880710281916306641987564422835064390249768040195454417162317101993965528803621887779629239804451939065317323149318977671593782469000018083843443441421273759806289282447548689917741169556636851670166295374108011324471779224042035634162668319476006254502091296548107255332258613212127262303346085500080957056384886160767749382883970710051260399829782281039633619655987481759460521266749833255037222820313058322956510245407592966633107265091490913591764475188866333841628565119800483734556904965841481909902854962229066652024978183428211647146096121330086979317643285466222584262871296186663685119106928814002226087711794927520356807773230699991663778800041678132918083820708040928554135206246688749936452431892955274026143137937281660314518053733403039523021757074346139277092589460500021198476355706338322590255557548335220238337376642356938855016458160275387819837879989083092588491412866163030419200158698904964665221629713819607184576392377833388080310629136194469756292273174192262731747057750806623156046165378973964318179840552484131220298575807201261254731095801820213871766896735867087826296017502146060508974779186914810400343385698423539546076918939518556700404280985883039034808182851882661717873455793315104744094063192320105892232087343422096009285902590715253999390690830422095001800206646513509430321956339750429567587661358898349540744899926353713301877807648386142522781743103242269693239807933159219390953146610830679955777938844962303070692069439340589716493328621253097583334288388217935336744168719790839838497898538673698726752728372333040955924027242259102818786051933942343837493837669280008710248441924565176505105721107915638419293671027192566603277464708040433978023501654682740154751409352597345425471399435567741737127608827030471585883372336645259218511153274667289264876866950908765780708579452831148962493717929621832922795757810151590988091996771746240784776022481755026495542131462983880675471983841441785340232751113999443814227516820648975298045242444323677998454018063534125062031396128963944017628855694310936361869916329092453306172028866357953417031406091872541944625339649245658852238767517395213343439264554882774305323729929530764078863936640355977154745676551072704028163132870339315825081233576480515357492902240264644453750528898160198263925383409991423532377446434307096891445720378689992175769560408319503116138465426237045074652168744250702269453125335809477186337549483035767293970996836721570728335625736539431247221235119560493927383456954497196500261089046086955050690139030838866571304655528631342241401547372521318213010391704035704642398874009868263329937299922578192679103603790046941036498953888681196256264646915481665352994007228477476817909492623636165145348353861550130669000777065905948369679035735751106911858904366197413257603340986269159085030785337303566085348079512065738864571747243220978162826682000634031071321857475996420636964310877515420867276732448152908381927749860682579995802985710758198598494980428694428285230187841594051003775855390111761340328017944817550157940395845449393032733406708373457995072351537354300705311839621646995864028620074071287564774279991025166412730769772678663033251399925916990428597122376972329500441426315928216210626510343503143085331293956030846642658966895327578918005377910575030367464494147448729033601651743364493223650908936419839632211426185505554612025629074198163492513134912344115461276825379112574589873018450707764074938145966727892368187178695786252430898481619883974461673712474147522502720305602848382441656222323178514011225215618701813425770148890553375620001670415251596449179790149246729792329101098640317087312741264663037255098317396433279519789863989875557939700729431548704891994115818404522702284739844648720262298820956129208459277540431055710547881550682407616710397559954070579623425245305127403066720398456255165489168142765624203937508303986484704612965123748485185715267451085369095218513289569564747662930483674663073916848732533036922992947588508625154136415445545291820626023284276786856788974088412157094616877710632712314002333502981520925700150297143241455752647483736052472091676605840156101947329881802890899075797314714029627783287006267323120104950632683079369201757578281136375024965573243319820219210829332069297542975238204592592089271705852554713727116998691191183837392603535035874135627683416371295318298029788555536417649338704502362017103083972813869873588157403560718576332937716743278219884415847130242858222709640365626048612331398275828702586174729116541041185119648810769488968131474795879476669949248225471572433409831670721208570766941724406705289534927761297297220635716961793347511440414603395376799274314475343403227861131822171995168494215822799605371325359203012541504084255319499917709183969992809308591931042823165079155421043429036523300370048866873972561544239055199784722362367769709409740781490361451430693183749604334719966199439969741318862955286957930144166938593723869442345958678907078132183988434683642581294619740652994111754766781165038746336834193800143532220260373140891326188218709006356680294563701105957447505759178965030898419953706884458134030232264551828071005101253952944546434286210783593033547876025153028061678862607477465460871822073532263629029732196691182886494289071710687440941755607736512475270712605713731097206452493456411962595660824647245982558002642517252697520459840551050166694302792121906268950085425196564937996910378354528602833948564548250626349849719527277720754618678304253968756313970453685442133793591326434984487054799940492940439419581264802306152828669247770546221504173041538315924386819252426607381277478184260522011254749924371527922556946825723506403283841143924652206368932499464192538429929314296333496977609476682470459724759817526223403595646765454655799664782191282156697031221740528938937661122592193907942621516375707262250837770992349148170854699483899469011454723113234355717122028967775978433934251161593120327894334818884888193953040114124872951880001630215813522656299730709385105544453982443694747005944672125280289002853305375996099458419962312949565078611980916555413286440726825442895090344557127011144391730933684422556076708019783431911986871571049055120789297616175885197143914089120069405456417675189601502138011212367367032533092314935945111476737918260547124434092573442955962366873333214351000551867028165755070432627945133177636800124951256451412868696002218048556412483742279965520364299266748327609395105841710150619045601906360464737816915487939583443100855871761632775770086275914127471862552549137444292679099129648978264642090761567722493492032803653428978859635549013042899064701374964557165592598079113461352745264856132176109128871340806022784646597442042433906035431599176959120067856758447598204183659358551707204320518373158790126093404335336492095461300140270246764983846824036870733318786525496266258148206126711019727294914423481927168149887696473655823406986966962428161898074106504711726965544275367676799643114558484639939908329332491163971159110842253557868521992160085177484753258847391173742510952684357890278613605900090356515479416219506394115267766554667990474678420303719958670468159346547905085296962540719680186660965093226453911491492555109744281210323487161277926197413645381507046708975286134147144512540640639453221680982706846276732364469171649542213849550314780383231802798088092061429621592267875242510186722354145526914440006332215801859280836558228283322897721501806718761417596992898380536932012625776552399825418123904473116336677280942604292839434713225223266981776181289867078254470689477366717878579239166303195466457312630117189667279072737066748063138430421013464458324665506918847046052018716873039981016904046883475281480207641882797794133746395300193130017388198817010933838871512297656123468612229223458361052001896969665034931890775991694937264534813398241791206956341903590372796958608507325815790350045107424069289459775993462226411733796194519569020980713359141564580846410003322259432547487943456753416639973345938990515981607676089650379560481613940341683684347211541373601772485316765304989973223403992556773657372749272822194850951024526605533953811244209672717494162525722475513885531803481790870718623967137445759879073282033244564318863721029690022834982307136719143256174505269170372368959732397544208415811312341528112530540962652184178982375811055924689500675714927074759381960020240486410068982037933162700126855891145372192639630559766492251651569489861625935570461451775568491259107813146495041412823366124926182204899666663302516947233495764507613300045928744818284869170272349333826220059761457425611396377385227858160088272333927076095133977182822402809328332197836190028052229413479313090595308363197251366259840949020778288665609910372479715005913442579570962680632608227384892633001016793004807133814939273043860120593123620958350075419203369749093676650293036492806718767912746091220008731013168200306356905768478888808790666516521157242128989566578116606421968398358757597648859495349799684384164512576474542930338546459181156596381120840687354904921321364986296025026416507450676802680382788790171835526355650053988818430036934001395509737885460103407363494201963139065053357213858874747637482871197601543375103933855498223266200899762984236414348125503464817038438052247348199789814210725617006056773154345744964695030966877805081925400138515586833711603334825134790400014457046487356160461143422850710434090955204213862970498113138586709458243540875858402797726273619237318847584386826202674798279663215305812439758011954115248540270078971684674979898637869660404744070153622407885093483758438103690184245417708953110065412448596022446888193239742950529304301363678591238001618780611404393941515211473156057121867844071962439381731108119802361636833829931504571743866567153944069045943692956674158137631847946597885219728453795048533803603666788458213243691679492042946365170734890133391076038453389684057589155493685683876788729319430663996048525027680993406689807499002092982483967865344143214655681719624787106485455140023812118229552022638763332342076440711071600504403762071257979638311866616926267330875214850611574538138591318751991700396200476201162266141617727268547941555920584771998056789792031488081552846802500880625935221076772228233320961377477890885855902707443062238666018809049438420383181942700992952103767938458210443598603354079544226721239485535632844500384691315505221364187454689959078533532857194832489085036166229471150719120164541937170505911854877044390830880028020497297897281254889252425912181127575277076153471431632347996503125742703096855487498617604959068468745095282083462204796558433954761864501459847197964222155902665705378575689334270061441613279887157742436256919266009081680455510923304929469833353551718991146142109089208104068557734575411374463078392773538901037626126421054016770483208898168183922863452446978606393871413138190374681953995557532461191982928271782683031770744974542351796881773357751667479347205318322065577479305241847729613472371352365618121680930906813359245598294823690015151343363211033642819732321961945914695331196692986831090804412092788112395581287153897870695746120381216705327840656933486351283847140940821764851838438740264763803845525225927764549035928348743870322326486589080483836105162850922628846799521145789305898673078262463166955023467155338156989374331146977343177760609723960499750548159427641943365623381925712408816554503594129563271350074819733287686632213500061239843535353097994590567421795318621415567581820089807984054472043165099424297354849685585023173310552983438448047289097028753283124204343952736507348066595652160920284074137828858028114743693775657287424360474116672309163663086643509784818517266946668569526095553661154582842120025592513273415210243441581023805255397691173191871880490429258672382187387127075711261347124851740672511213581235951170598022019094818976418857855962286973577526530277777990458465910565283117453863901420643902667134819614431301474903122467621298754254882905794504411051025996881406710273202181746107855365605536040026899834478724089037025009068305016535659636482994662288734788893775964857062994287831752813120035981531318728953662792689503470519495973563544617623808620300851700001387557320766386042788464711982403232898281672058537719322746955619794246843558274137045125912153949634823594061412178193153893818454419051416457279507057611073914456712324247805656719067919736947554681140667599574180745290348921713106536016646736954208934812498761579581108141381448969101535920918129400847951721765601391203223547490651086284184651804406536574015964354342066283848107938245073012297317834989558239070238265528016212855756053988572156559095161149534546942798955303366721331260595058234221832263680061760328145995210579547302402867734269634367918483262307506251206809810186966656994399482226706799329397221014264221773254917519805454535371925298311144677796227753072459391750634142986692521181654103063028784858195884501101279818061164874638142046006228952097351972660575263476950123551426777417573805261832120579372305926084858175155078314550385533200527650439656890589267593142813844343569194289499487164135173174422728608960314689808981037664172218856024123997352246953652039187184726040208341815357433520667419266623904035725358282324468678326104446740478191052397005723369931273382592372004676670405031457300452811887190063285290394661657080726884614418688322672816075603939277431827429498026669698501366280011166122430440234582418900494482828796801088852727861192790953114314205183851996334580786352259243552226918842067418981597193300029321687996088370396271271607392424194693614401241720289208510010513032362905465194873953849496108647755538429285988152491991660950822381541172458481668005692570100082193277207861130103305543318203023316462575206741733956894370388115690831035491026109572230739517398832862280491341291764740347132811829206455114457152860972030430544233397737478943856549616513792570402230302895891226499496319412572392578193767735523870068376270759458310794586926221244254996741229198374773477817309558470110276511156002289495803245358237132114986322646649206814487735674194433118667499203407787868017564211268686319737573946569768541705468773097841689036880388111419476598543780353638438119858730914836315639416352730792495422166023193528703410625731500684320491178446058900741330487054175546681187464042500499195485095407756824032860938259301676539869527298574829363785032293365165650824039681548786030247547596952544523038110238122715712961608323626664491754724982537492360151752652513296484336545597875444951107086448829707681160517644247780909482919892701988789666443024857542999550586963618763000610887007531005252118054352216905804698428117851095159059314378960765727684488723633383546780776879440914119870644931088590260036235292832950977541151867073434904485560190857698021341554884679464052275131641123266395608404479034668548399947417018275561708914051070568728108836076711434424387296232956680093872945361548211132846433529550490158629247031370863767464442073530062557956491805171467634135328033115251190105650308102444198630898001613791616750861236119826810683443128630162482449447303920256369943060581283941485707305269038438776673526461304029272143461757899246853480050454381884216447455029336078814233588498941631093921802370404830152955984209942303258014075047484094384246010424409448693363643182583664384933427870933240648413306805696901026799801328536332697276382751564428910055568348580803655347320515762025439805061233884706205381751733942103492571904434384998600222021398665473904812188706975534262331531637773947140153521725917326012907997905476326777736163782336391036327646519557359245651283988753937714618694172794813602425452906983940505065756672946434345929024518237119380188702570041419554447604679196253734624604801393383168416282054674046515751823115148988828582842651718795828957526439985086040949259671548168519720940949095648986397890528088303525221636460843770143469732435915511016495998954123714123964403968189837135525824978509353471584447774928894087763598520539282851345042535788858613356993684015992161803661498706890303687637390390407951809125429013758790467058687408876394928560489283905926909799140823735989063152828199448346188708560187191184066729544082676318266954389448365072867986098051006991555651344480129958018916842134488685905920784850090300141968611552289891154444100497425060113535815584761031661156522596692271115526354608268918782846371148937780607053366660201539112891260465635131016579967993138674118856099014564938584787767828938209163404590400095404325632563378903387790977883937590317314097461069523791672832631918588551969516032100054878510927877109228902431158494686287691114695318596824288657655423561322643256102290425572988887910552980638659786549985992200649231184194176315289063212481801069771542721491854432578595603219620468120820128779317969802398166559583841203282893105533917231332135823845813535580103023590931347845162785396866229631976215904893034049997998915836351177537506781579591449175634760480087558033700472766915179247126880328861896411885137390903667554827202287233383710136913368755269872335279529837617347731316199446414842466649469912342321147482035084958754955310792704314875600284056181217322783984769231007881738492381797898195196177558630491939691558078608370215337509664448387938640639119326302251263466105074158061339722549177231214102054836465071585762979405173720139268986356999443127041405807147098548640888921006944169884109705727768912006940792158339602944652508954471149706842020910509050728195813784270096289630658739476968631873300627974916063081366499380921223203073974743004857724242715160376942699346005983444561512774334664457234645641841380917772856976832508518353194910891474800286927490558493323838771881533381977061029461761566091183330245232930813225765305816196029533358571804092528703739405712427179266832747242031145917023396015188646712735052772092401061684475952905003492390305696486567267064581566249128689577833812412105324326312295995559223433567078099073967374487089814241942080848377901950901087945148338699530517156752610103607313480898477762300321537161527803223968873826673964204947933393432836301956656599677048405450701466362200128303068231943445231288497670075781389820953125216780537129863271950001259225054783954141140307288295288197059130008831156701425667629183068509613530972505696662836380305281989047673167179863744136449669802828892123157393363544403781970365857725203365663017030929974278488749726354204652189159791644087074770193986809446276278800788108175897304639972682184944214349501738527674112422410496942454762212734511908545146268351039426529956242588790871554938234911274052713070083784997173082420869391288711562440237352969851173464154515659037301273060225088968092355279999980506617021325850936495185523155603336740504459667136925051182264804017195161542716335451919378339259597276281854775393573680535376000242556932834585830865906103804973612387165869409267536311004600566097493398070674681836357534288695656273715380250777230282101735573733408754046471078289010006164498325822402939204223443010107585679760761461694301966275593586933047763451043456513778028224418024524979264395821243401165864431161305323070642242313186772935275913577130696637065090469795124474540406811077366631265463472183224175390611807667958411875766487835738653120314494882086561681506542199851834294637162218631576109809768876260270297035877076460259218669472963840076788530881247964169823530722625195645701903750197324199820597262629008143867900587642030905125772169394588979131329596766564579107189508910280841052794063039989813915543183159142022335369364293167161716449353616536149008189989129189674406093536251919587152418720658330972840381234057789228048499076464500311204811323182668228986144373274177596374184798929218896940395078843334060936552386315233132773837147426033432630537551247185964106619844115198760186332792005937738375053178260332397243321758427258259297956311265452642417403015934519160690666027235761424831754703624652446498657351691160178596323691516810926701283856745064531020817338550678495890781477257606661172961649987650429017464629953301471139744690247658959938476963953279392709901686819317975857886338434594486681728045909730394722772467708545165491931392854382392783294144367891362832411753784883862079482119544435349343258896501582525370070006217535883655963711687098321121913686733480717608115148170585372244037347621419411704638552258032743974719786714163791958296983937295979173096332140113098736830636004995281736437793084797047642173934591644798985028433559398035982055678263583221958427902076634743239755421386956301597822753834205731648551587318582126171815515435765743087194888254721746429126116574336599707028176580421739005234511068523213741263959017375321276315790760262185375379815614243741757941879141961147999688498251006159480916838438929000865721947532431174241423000549270358558968410136785158038082337342098956566517627991082752610125414107734807875405399559910205015466132413208594370100142362627083816690287722097155589095612757060736163771120171159162773559984312463152611558404326594917578710623469577431402738128493807581811819673888531936162308979713610130574154854195312893258951657584260430593413330660523947595014722617464730377423906142711511884361038798284254930759564061115342018742913428361884318145414065959558332255549282646497446506182772402758848138892012375409220329975761673831270475142463365967708150918237475226677216390087200243462339145794776303188952319073553665848579215716316227003898112490191050939281459727607809945473821103247742802767346721167166253490569280302114763907319698142397306824816709585492381121840446683201425348307656717295537155594666010601301385188789558979705716553234512458725173682172976104965769241827614166157150280167368045475848611466703447512818829803881670903732270658959277759404449802021843641132777415658033093383065986639221757750908342398042889670511433408885326368482658574920174092283025089525975482559660621732864376235218284421406404630565046866188470821888927141613715280437507005189330123147524864227794392396618103260395983141063713762937827674099412348630512601892349864640359824864137903453960894360275247341889558888372988544848868244502366040139530816417631568799867274182786149418415783922909122986425699308497744319701521746362212102999110922789907533388034471262363888155995030301134322125323537419206499158169076983749681244185976996181127171160872781317292785388692926328634669242611605872078333923533702432343187728448551173072250007394202075720403790350144461589685395777745167599694207632851600770524696682687584826568559881718121846512605695187667184622042044954983745486149335802442664122418667134556073177613442850680347872507355208960505937140223312920432554069529385037056963212039659121628561512564707518299417935119326303287136794556741245096261140531118897297488872417801053990999701932178610307041586019504883561806423509154992913303049512639812599062156057601974864422549597335191782190858638047680094876975563827944655760842759331130060424097002728692874080352258845050252407818247790585981658806798550532535014177726959835505740072595885347401998176084137908248476159257798545057987105102421009399874360931255104450952540649692894390884312942060723711448769439468153618437148676010118232424211187604715787166002802501804163987415934615492420871373752045012838743700894598473708861552967690763357965206627906559384185114261052245695756071568989302772086035921739607414663885660867513420534633891238931884536914262494746824547217054960115580880391547329023718102092195967774234916943302042704804296952983509344907743596974831950582641810298809045276744220614189590883018157774829486408940019864989671615618936972062009323404347913808781748081803103190581768955775585981275834404997503826390714501324087203031712780403317882636273589474399917249263548117311501790712112850621271461021049191602380953737951742225620900818485079798877538881866143476696976087471432704380300079484275414914221250630069310819279504550235510531017025768568964534246748789400813635145161695173484059632294589492030601965062937259814794898918652188061506818733812413400366760234189393596418137562993626905754093602638346169985074534148259251376291500996745579609704955058037890583535713927080217348627241759875905240081922045747238242882243179294778853828503784808499713941252298978384528735653539283517918806386970318170951508829283684223350028724145512458952924517710498822159213095306653348257790407747055486402467851756398186096846825608104993696140179917881705227147697627068516846003626436083742230389293721889797034989595713329253913343563522182145398067136789284890823725795212572695560329395018562479998290516813959274894739588030096502578022185026996346822346210186623624622964361548260801630393060295995382183235831927710430200875310823554625753051025196809472534708095064337473112713750071048461524106009168238134870124088713909496823360336957956909554913809723665364131069335155858030702280619085256075015041112629787773817360780500301799105106773849838629155312019995780836842819961329559398798126459040175022552106452612743641124489281308371902086603995845574608849967969935289153735167237702754290731097910712526874731169545739695082847506123011269631402857457529807278584991198091339173528420522535561376711140667308133531546963553715657708414190745029601566854729368980275164076660630356774122137531815208080564749933456562578594205167922191762097683114844681234532647169611670068533080207961572076581929047222201976801579093712654068570056664316533171204306880171887777487284155576410857768032042997903014902634443461551155093517328759597931819738685053215363873173864873972590213115056248934498258085560988071205256010854655405421715140795902345017011587863988626031410444688460868737209197845408251688691714360542907419130962578708533212754351922017197234846816895190937647163451376153040989072987217889644561616700650984407297430357495912390071428176191602992803622495345234091642156095739831128401844204798902341598322413267452727956883285980650746002506834506864248832210504626077460905207295773088457786568227425455682373068745429149449559356854755982714654498843067214421228276775954492766891973218869103013502560282933292169287096517837213524775743565489200660743783517713271779734158673184151720870491019470866679476931904602895140762176608766913611239443549488762703906856855117771252803003735539524035525835745812310447013071754980049014863668127239510482944164813842671430734344920142226482559093764398112382128640040394160135631764008539212481210008069828897911807018151550656612512611591814273155365361828965898027831316297263573868670822508017870780304473253946040412893975698224676424869000957979750929281612234080552110344132411881390062913706237177167190834019600319194510203570938737953397900084848905845463102454481513828761247031474547517017467756055713935408271479033311616535334731527110814881993626258460270803853465389416912431117193277607890006360493617946887986764814828795927213154474967404963152193260295195218992039796476679438881592978503680652323436450710361099130752790711533015057387962804068735349061599955848819701756998347155140778849851412594027147793991910105098836224761197771674739383471438103900546450364664043624121016535722079116737107285581106816922633396854001927094303303664322155320168148513395209093267051567211525777323613062592830037708183316330041265377311461106030086315945203239439850621244930151715727936910046903318332785245852126689206002801283765390374013572803369558287908368378878285118776597922598824244780081402179516651183293340630378806239228497236876349768729719643910166432084593139558878611941686651949741653332226317547664322464312281500409215501645603821955655521765184196852204582486369197059421679987486378289909912272410206590230906179785855311227876229036612776699717847265330944328057292351127460176815110154042442279519161630796530597534153500301325205256770190363052928913756052831124520876360575099298090972444011991257845273281380974844309129381582990501081595915408758945942117579963804284489075700920332999621966561271723211253724409613048244610302663384498578946893576462771606562737287399384959767191315233793749165809137267543818372883357973360204488549547886502986731710239553243729327306601541942632611136628245263085575768541371685986880481016088384683013610864206873752320566205328811228704388441541935023847421541621990809963004435007467754496252416336285497882364372633840146533065818881968967891303191040679118466842663278306830456483981218231649336014548489291362567975846368525699012026630783247294385192790403397058750355153335543655925510741430543538760874243111198742425260442505854103650553393852029196548818732531468830198724608181669246935003764048571032489217706123127229062207341522339873506260839204289941098625040373837784144564566361146791779618099887483424884686669052350164664011215539120180855572453801997352617320747905261195603683546270094235474249797590672825247704283542833622366336032587457175137694778705760655031644388626708546355587091647815589871657825536580795510600658299576165449941005055369851946725536679076002276736773030284848473666615602951971325395646082199993347994660354037107391896632466654950284979012117191751302087678154573096441486419645689339829158020775307729233366036424361451596348825994201622299760813358761090928437415255632653826265502726382504642226468956975205581208103063678177049123756166849266776837827131579042848630544238559888732968238441306761506902811633523055822623462434106241889549825510290446647296955466923642095554104288181959129660176202599173341171092111004603019198914925277605345548336838903834037630639758562896626970654524513478882571247965096324775659510949317332318667715594802051416584728706044345257341377307537574320770206357543135667251818500601490194082537895786567522394896250524502377891873995124414895914071121847246390402690228613661939862785651437189569946085473969716564329790475655690379228426533196835269485056898470774710618413910036279267868171578315961402358250018964729756086466685417732280569482249347393755515404617027365655029726258866016541309648025441483124805143668858017007167124451633010283917921918491839273309760358051958642641536210390209277524122645635646564372655140888530280870114392807141793435344553722632426114775635642713995273515151612827078704905574297834075423023316138708961704396918264372185690264229317529744094241565083154481690254641864591521288879114392506767188976495967393504671144696507255807607851987634710228078671251675909183624016733573649830011586060742871236129558364872532224276863698025302244182589179996887430408580174444647839833327482666092112758872026534764398841127343455626570495034440322957030059945282510484044290733886262079217532097288542313882200196337075453670056619665274397021682538455542125219200464416369594910610487007228259132937622028112718588849282877676571304885282444994256741013627164558518754404462235624059142985407342684818585606992612690593045814048146126809836456427793372205582397565901929640757318786622960489402880471798265219335253022385788306264898767016390089712454852064210082159872566473033110954155130972698603219134309363270074397528590184887681174903404569717166040504722747444962347114727355381509505189855103452566123974347644760481336905972447862206867298154966146649588894322240764596622260560238867832459728670845498903608612736684402830646652659212661202543987827159002806031689801744669352429006409436910282422736549971899512027783486454260120346516346783437120695278073629735072940152797192204040283250030272857164425920498364277676902179798856972222120191131114661471274101240180192984445303839772931535488369660795228905112394729879564915320776798838917382151811927498042519186745943835850691612427872721003227518664268661396083789716432463828774814321665709519514853583603468805438953501659181522653830843598671511307325998926696982621697773806607766782358513723016192714553929644528966228888077641268032156184123931693099329504750130428014744064932225922730639143820350495168592790003581510319487725570981426066035022199012288946476779757613869847937378866876993712766138630886995384321274975594323891898378445267893539282120108656981019449902199139568412843652845214525229877342222012414519120313031395258518611891583571074911678010451172178412000183732549186995359723502322769825701801910350819987053866121810420764624816965021407752038274602805312498591987379589904775498318803298226022155895355969711055780880704094864070339207135804330005671060131784432876254981307730846694813619345147981888014023477019809441842270897485523974578663689537069403446345840768037203177058639735376480792376482784178012120899136057398959733438160250754766146006074473029224553440891124597840935637737214349121401439267944870025192013163579444806530177208822742774885776634558453838863459763672630050839071055611107258616411470778489048904252569588331985739869492042409118878020164342166215993992852465594662889197948591644737599652874487759561835955015907972385111255807305444702627879523019807546424204199938196975783444512961747443293691403953110492091117398586939572303074749001755601077163405051914276243202961990552572349362308638151410921181344585362230568585351740494368277688822405972098576322460668304251566262666364275031815292063379441597580873658015103415794683866865718375390019324299129174931504024845261033403092845612372402536204236192013672160102100289741626396965845499728717583523686100837956446950658727813690092267650427669587434460012604751183897523392416846613165637168849319576397152636103510797166159254875279065666927155093153209663191652495513163454203511849150279683463127140915612615938420074692073154496150317472311367248221515911692075167632597215427309710550718736975561970846897703955528552325150968837889264800914574815277253179979192904825507369881651905038080587057638827477997164251433775067444214652282381274380504037700290014038850224508821994361058345026933559007528861537027170575605339990383960693303031445951027040848791481171910773659505368990571403752421592303931889800334629949169815129448677692673381546335582515389582366719599188712626429357876773291814073137011804305487785765982998907515032815217962625309552382531170601263539508180843418204211165909180058215309352369763086232689384740097661550161406858778120890626093040753731135219526138657057611646542829320045154128407566782219374138824183487684867466562361589651413309544569590865351305666047799553714978224818894997978827664820413317309016595044080499426438185105550417561268736398139238491659366866055678766929895642922251601550409493687301310656764549122331862737713986489214975574131299472081404206886764932709940612962831491602326785678858158781216211471247737999679628732573346971331503951511568720980616028614291052292050221143881208192072573507322413602543390075581710348977385045739156234019995603380371014797582687728846118115351350343366804598041206034058877797724292335153766762247584202587297884953592665421650979673022607818589797257777522699851010413318282810811418901986484628316493798681507482654505742010525204063749751211597343675920616523048207278438093001645288144563720445860557206636448548133950096946799935506374337802431267155178224749480505544902252747506528749605869182193110755835067384943754815079227466650358473419009244682756553199610446294883563079534675116448178135783894228706741803645712149321352808804985482147807785509885258690039357345040062444316980381686998024343625542427856386341804500401660900748978534022095811010600363566031112766577501344897584171143376407846320668702107560775266700217227983414534064110610262417493211984872127154314142577621999905621477511255734140592675709331214512163372028573523621763226637625054211158492981828906307630555380239631731079475775559937351936879506915529672678647886907698944909986395261033174312259079895353462362938265745167923566481469975758971409486747487042052718701773704339128677806710441927964747214384963333278137612912872267524313127317329767749624252919747766597426656038050651850108116282158832663775011311886306318245387481871772300868258271201038939918437878615114497026931143968772522628983158307363926264093714822871679932402608103012195804822820649775202898558627402348508614556395154390637199255745241608172993913690337196136519106255038825115332883472203782937421503937204277287933616237376692367412638716915217341723849153571511390010041362452406203651266695383756589875576427001461372277049774043758112630088320880939755315404400287950669739792157074905534338230373851895930367452335220366926443360521060262412850310855182957428554835029636166663855561604934242916262451815156578499965248170452002248789630263924410574371306813065186673847956562758517483060158608610213913600966120464668082108064156242067138317577613727607966757238250138146639117465832297409306360112524041998799552813348770195264726411047264141490088699158253318854917968379084697487012332637975797064872005757771809589568784970955805697676220703422927290218665685654174453199294923199414985184957425767710341983654635895005542106421894618302414839315923571198505233923060597312813439716559321453444134704500543930931789206464497485917772424037317701558368649025648534639583277087838638249299319775750006804704983322527745890297016427434879595625038130531187324122102186128832111171870392408061868439440688114024872079828972346270764370369664890110291809283894050612218401774870718071002142929876549537924166173642567353962329119432129991977043798663632376535602737189620284642884693573117257339457041540237941920060989751521154945014554050815579126303029588492902382102773272445665290497511218931384023963728267539724990064760404125266108964552188573899879289915954709705989997773581460000573570076437621930453628360163034132990374479257577480755337624266313778174404453404067416236360513237600965026863731091804565078582759732268796308185723385887850781403124992685663228478977900536532459396484448258903917032816705844546376956746884086032177079716934358149807445300069915829809145155707336643734828303654768369048699888097524561388371933797282682725659948968363526874163909193611870214762877250292812005137255881802187028310692877640079420164392665883987148515490550256975095318118905568596507178355600828824928238147164855910164952269368094596207523679802175599991170504519124833641787113304734201502143886231393206629402410837914353477757356311321470522463966018147732816630565706473044275881841628238260906850016816248795413176817037566644474866539868476286956839582800691866821619941103215377234505972241195929228641943463235938997477743440563701874404101854548874925137187152551900493674464726370628285496042354990706705080053726905892966656636305112747393069408872187328352088600642437743329104570706231187327140351943238875712365648602310673411570678121421752703354511755664217548780776468392360297847917300896526816286974043083804075523772520943681826689771292438976222103001350020854304195773671104516302506732421551306534097881122234168852620142084280639166034807005470064816722463639907904455120930095238120492401709710837594932056711021192041066964545154292631286004178029014630587575233420395496036176021763731657136234624987577862437133746575835914333970398759011081409921514509641501775226998680437731777471298488941057451836609863683789537945181481830100471528504603277264892748664670066521567827917489798592988711273093929378320221433235993540730983191026882717790659104920818398155253204258977489445697211163158136226565026479176805573914340062237881758816774475595673618100307317400586304589500738560321253031828114133460676806130807770543459509826238321299955499599786992203764846760892962157363518078745958842625296701306408691503739975487004093424208365169185768641239277882207214635508011641810636047593706260572404266170181266255778702425931879773062925460010605404598250524307899789554043412989633070624567287547730108844506987309796887160615182065592486254143774258910720067526670002952100705929041031631990135608350028725256346455977059624408030957968395940098895774601286576341193509834511418386064035254487951315159916376779677690729650864712498586710199566614607613045740032993857094715119503276703538458729838970165758427808425691430823404575257832415499965248025207704711896905048549466917341139361255041952678410180625678793725306390619510363545295221188652120504360967186094305283736133500304544765829475708399437658616685207489343590236265857570939773514555709382573755486227576505171682241675012152390633546940902516133148787505610637981714989828761519196684276156794995832064594421171147697670638093923728202857844034648478739158159822478759472754239291273361799800807225349844715787709905865318589551143074707352971977112141247866367804474177947204458693998052039429143749728115190462163194153494512371386467553706888604676244063601291184721748608494916311870923341709438872113614830232862268350041515360028362154181554506329154342381682375544069679716544764815475156945519380573879777602697792030229885398250954592525118096997473354360117235922825961222112777565659628831757282229417139018673397843348461129975450102154988521794406415821640997538451439366682354925859972561163175461394432715473653724860873305844142966692684686942220640970394227748398357868550790404884372951048085058872487432089554161204823186575988354217281681173937145475615398629391771738520972751762271315502097963399789297977193800805536078167792910445597551519934057952551094221250719256084596896041176253838498316634671773005082817606969607573200735496710188147801680665723430161404656107878853673022887567633687780701832639991504808251383168151325670630238603887876389354914967950282543536779495264656706542976983278079467582958808068054715533143333218262811962791420237267358236223583734279844044493245079939305358391784455737454572417933450521994226975343511918778590840635107451135122223752886220481967344103672371092690510650074927024692431948052555725579020162061098722559777617410480419216526759755216698222354838182923230366169108685496656906016190316565872208950374571499129363124930505447452088807125200167094478079969153517843125012456114520081955774015790167251417473409239976802519341435711968311277355882792251538031516323194673541010670941053470707163974344760370741185766675967507437313010288328164910004117050802095112784827791225589737205330631058821332579862403435319031271507251614546480877757423075830422487063139607272703336781241177956207094345969362684505596669911282051635214887088957414652638726024397042508407491674121947218921677631343460926774725870431027121107115847104441370299444059832057810177213870950996108642176555807970398113044884127008054360478024288574414875636094524033515787053855345930033090207461868783971753741425431154064556304111623349307524021498943516491884110271410847543699892615948694554185098619907895063347343323269210672746813109175772722934544728025483831148694191414233955916849177508488441237884748759511642965617829967572153126964569160901508510318730216580184941173782250916305552967646066418516221802806021874851777974963745004220559833451004295836517375532654617188724233526208349348173068241664888266183231332033574771694060235309137940521446982459052042685557226198802967871877655102057941993361855932467306228079745297910722832951482775368653226306658078391884269639187099246858468289288323489792664771983176229318902223554491641912714419677771316647778947543494282930344581285901267956627176714598905796384317989544896786728773419318521909507672234013865125115027774600847585466591824409659085852385127253066670044896090809615352624372528206437768026186227896196131817466788822444117837456735325147454033621335720822832382682163985992537868026613975732222062188891975458936796204733088824608464263309894028042803321621571364802993525179273314788638905952877426801510552483450444557478032567382700691451315397161566282839104663947671937119988703991725958568406516460718208560527930739304331686540184217798043882420965913532402294457953111366190756430641868566516504222778604615287849252802807957249435219921712301630552002106368766055498458238698271782547327867178354110350169402733671736587085402401705384844276730066072808481364222255089430023099928984990233669896236675123152841452147283962691221561764144707113621309105126540635219112453753424423522729434976527336187027746960211450139055301919723851051485331956486900810581739055697112450650006970570641253163393918297515801618529276416206538705333069517043811552510163188998399480540190510171736007281581018383375074679927916049257521638982528527546432859209887118972111865159665389002904849726002813248895445868378898703646225392296619596015114114282216947055200622843006441375056603044928982235417076845146999393355243269790413326275150464434139629147316804217609178705648555013017427071110836174389424194988763273331376488482734497605304827614623327268843561687049002764213011668785429524015335283083883150488751974137848389127827507091814679286156084157733751821261679446735833200276647795867744821545260870138955936971240215273405359763595742158687210322996627247359014010809923875241432770398332640253831987283792825553914587757893889373934179651946890665321959586126234337451152896117421213506669236545433321775244297931105763718716538845578361378469076084531215144097754219546795940935258358306937653464597046522383627660099061451768864203704224450988426089148428496765713893666892392731481114022648964362063137282462586063546622443318409752636787290967509429226343744429334508503810056730676187214925036936892383366452611590613787027818134685212069648271428992996623230458087207898598297689600472886059189693746863517728354431880977716855526479626365662860898646919522905407256576463708120700923556713270883612222204923100067495536805564506516923000489092407410781781831633915766948140951700817010651743064183120308538909454065735814674622087891898909782177753901402462841806116289857377473905017227419650232604610130474848713163119825216908984839151818959440579062612150247454087740128603020849372428486556593242889703464713045011134968040090618980711829192855865992322794836399542953087288086958769363005983953650152987390997441319424006924331641983104683430930468377893461832654292332202892694087931548840445966766841139806794951670574786627736751128596573152416342776433907904911094805803498125759360463077222968062878306310420193118247059435213307881697527345399664359356077777200534076584886757052863024240038878686109636701174603826896168477578129067495952980333705097949892604770129319552547892777845623832189427806460664754435678713368849539703606465331862389125479577266720504026278089039679929368294892372383831048057517124101561915892909477777369223216246254216378887232441763052281671094120858947001220014858001713291308500050106314950333946306053900900798115298323553665500712990926385386721921575009637267881031972217872061023216874690036783339482146770801621322146565059872153096574291642238602664598502110782312203176169259839536841487525797928402557872050122167339007222438516478579627194939475434835978658737853182495239044320134897587276207981799932377147701111679619535421698046517419160048522436581628909005571214281326479559205318638303932672003218135669946256205113627029256050767627218789372465053613346028817160200047581039620417585342064058832680916192289119960948571783854632127771757331316373010407438518622014283481051125915401117026683278011398804560404791159756484322298494079553497297352559685759589457128176146734758685384099121038624191386880763834895280283935873998769165873088795482668192640039007042683836322617898384249645547999619147617509855567299552490169979472979282099385545757902549852429036279714079969496069707132235964705695064511912651419129374551904155616557089049608557416843829855224598085522817950784234671175934187016180488741261645836736339629430483385012297362320639254345317933459137096445365942513490643044174093287904511637454151553325389603468419796641940995544005324981133199388672616520267806815754713227580261528811632372198571028214996234858482799957563182079767683096789463102194776234385723874430421565445952543424851946565985717808964298530314437168538397876176310719365961815711340971026342047495841892411653417839370769327400396233176893645970965056904768756986633818027814626047750703955966541688505440843688734417783456057825453570313056455997458954708641355923158171451405513803382262334268512017319753335526954046276493358798726841080736638707130263475850443722075661106699863725405125921198827989320930759103881829579120805392002660789952563848398175987509787865190031083505117006719676219359862085760253400012624962633695254218869494563762171402908687688431555205434206690153627290938539613601198276949971435215603149750506185985305244458423500631259545407133988287153357941594266225955921541367218638207702826191869133767030035464653048600680917274562300304636332065760240338243279997214558894009120978091288886326135392938377742768965261235871650699012042748072241790708121106383322006838740030457917103815767337672870053440617558851538781311773951512300073551204267040924160247043090428443583647968702867861811734566897819542722873445844793067257726144270804859483895097204195887316617774237205503421747607857688929067605489982791459629721753834473710165688383254078579854502590749528429358518259049300582487783552642322458261533194930140674141672862694239742223028717626040666327987048249907803120876809282023869456782979640460843559943046970213055406933676547268424444159482830440829057359890013338208419285658905586997535608169392400175570996263923404263495677890539796502830763845821126104708152393479833392309610162856826789255855578323544654099505918136107457913177303816610550965486683786068659581370650074726688928939206421953234398797060812884145281885894457974255813618912306072446442554317583538617135141429179840639626280064731426949399044456820154253227148361432307217879443171418740088428068349028511721891179390070639551426175164995212711614081716961618200258619936276424866546502763754392499300633054783289649519258286593634671730895769422107538343854092372488643034670099269842597201708645144855644532709133156351640013474139730866821374680359552427731948148478876128027726290600362161384303571159371704781777614224866552474861813142124353795803688597139829506060455506212762618039727873329717490686322520385629722122095567797621806214977070794367036315542608661859249026696641471033226995042281718189315280672664694213360792222532703579624018206454612265717924836847928074629510881093484357580544863624519962663149889291739265543933955113893176844309271859633680227123447544558258227922437227181388268159673812575208059203505248933855851768960723872842766146364578214362891361831897855108028400988506973208400758888858264433822244297750631439981896891659732230496426052055278765475004057975966530729449322072672618562589550453361301944465667903649104205111312835572321108107420157545492752430931161108431877465185552677545739876450715787671563966867529807465933437083604672617068389745971495365016720141800663795714899919264440259184812067387098771300369988005196645580310543749597385298956746583495379223898651386232633371527912548412984698411154483650614937077286669280985130696528250163081449117885815030020300166843615154482815441065675809448324580019694658288340568432935067599599456142342706880116742892517192046818605705829270874573796993596448028219637788491683284137479251473995594288381277760332659714931221654698060154503901532774605236293143287108351581465245743734990956731573479765338148791848177188335346498851641603633068106823245322868291876762925260171502941862449088257490984987882241944203094858990555764523992785729189205472061408589987737938972423012915790761533146085565747069609110156417435054236469438748858067877477340912179317887831896594238770780966704116568588171131406360318021031674798540402148150247214335119136407760206667026875777672559603656688449227538316323873077042184424198252763891646819684453430081930441402008158757558101934210488411518808884853541306900340119297584512322228373910876044132131632567523178147531863967106939687737533495124727979349730130873663000038480134805884620479328375326318081150671347237044593746014631111287248885973581418711132051532447252023618464985941373637146221315435716665927904633207222426408233403326123401570862929780282296406428743469872011278745163439789037382925225675236977744360919042747237027522441411913053858051371877190439970182304824955380275036634310725776644371456532718006765797444630648876656143313083771366427790726000447386297200864160368182945953341057426107994061440733586469090861992938403019300791250456434802159569753471469999340423830982507987446017666452969835322063676500878765706314775114704728445228532422275452408003146892865402198211695072250905271614973338083964692935594116879049309281245824988905943264907346701670604370971182281418340416910018879702454942349953042928519300694157852666501700265155714160656959407029628595547818477187979117440465941520607890123631634305365720272431214952675140501215846933771540638401902855824770928062585660910420466320593717321111102080679825015759013068312413877678564643457462736700106576294879443446114157011136345765742327572585185263410112973755208326693761937205958786642229415848341012690359732192481507340190883692668183070027125997789005402797756937732024431286776093185590330552522537711489497831481529977627455202564868237335435331336849220644097347444745064283701127643192778904531416583091983650519048937647673373411026997719589638644956822481130160367581843560923617158202189615917997596457885917788733757016878316430321468729349509131581116319836483523578524095766293839299421265839522285344139937216501911305265044578218764532324284282588873710095780984070190327065189915875434101693661474199082214516187731549722931121704327498977128336619030188104231228942158853176837820571416125019326202812471255415405853663864313308037819573305120410828113479363183118382768154663624272265379670705533905002891302848583017873431108422994196877213063179465738670258757081730225181280297636457142060800335643370740450383230542259438853239159375857173961590819231293869113739478706342297600590973689912297663414499433073692126234645890700142321929600924364664178706149469940407160746135554171544854117999825923053533824304120599892236055000615703333834670585119147616800166843214118444110216416619603108750158614498968694240656933779420560825028671835229893902816263564960398156519656738992555737656172847330727957932305884612607830507155547409544197928427399444160157148474891513934718259608322407997740000943631738730247705434652761390432713867051913017799455028091565507323168717012206430592445068567750148587025930637756727156630396991896162057065951248898645159180224277720803644010053859361105209784452590109333451918246331854192498288871287591268227572039471895253708120754850857627492561430742200517454850736115580091454407084121288101750558646468170448673797769657995678399326060210814335524521543121370409821111354409715014833690059840372325445018837196781764184176798129382429797590249767936991132039781416964305924142297428552865685617484139436626616799641457129913473270289918312165248412709954113879066869529166634056931640897897796272225210930462538024459687195077822586811536838918159120339356235983668530647196222691239370093054737727099630107503992284374659402407181715338998810663987174232022895673606390162011125926409744087256539422951544709239168290685457947249864792218953024306671913158628293524934331998327791854533213260269626481890981896428458022270369319114656867153530828035503074733681961435977048856003855367068010043758229135070339035929275251521374347089830794070099008074155145425359212450156299992233195320672771489501700475228917137638989974383290889588224791000537227648966788634533325572165817437800897248898973927412675064761350341553474682680695950960060904279866741409899343949026802236840777322810735811786977540004800540178099893296243940689781165959201617161462865998961088990746933430094771811502195670775850985792417565714426435092986921995384994072184953407740161922534805350280653685152547347491275005662332963374491493331137717845196808221994122703133903543900301674518039177779036303463268029865662083219590941790953446474948498888563540612932780067207388115611636224731484412813578932180919619436227799027258580001476214096030505649338745085835435551469070789782203389017891139243606108302090384892950762017616992176488637934377670106337004613866010669897496386608365208200720563571179105651659902457190194241303571572284280198039983589862769590892257725370188435096107867422413484161349122650180340420259833806355411741091263193140735365154743931288917461234015302850777496534695866578281957229479099174825528019220962713819359310231279111152149322725147862538251111663248663217873855153160915541290459007850008776254484068544383889413287986408470747938036973409835747663073169089478113842592216027640109737240938058800099378782479368211630119234270359659236027275556329671266431751188081528851058671084343917096525118028435077771304633181397271518085293714045541480859887376653394301545530435780946360832623287334189161102188887847763355641437096455898097972744674956751333502053602995296518737791091170306153562303823768269910499464257909481545411049703217018857939631119844780828887200396131399375157062758236504872179863022018386008097516887070684984980411043873326413292187335345724401090437263637927056794262506463007210412360101848847749538482861291325193718872090940924917270960891628013691604036542448138505348643639854047206833575580351763106216591574499966334384067743828386289295861063258949799997923757389024895886167214538066982581557087856563084542224456355286315031809659204209350919148378591481182783825952097401355876912088074499603244412807110840915092015754962427663122710992416625322765639219762505153506646575380323127355279770295555843049281161579966163008036373323964559776443083426356569861644461966040079872115420571152515128862987411030029611589871558312005362645120114817464080066019209205590906872731843916589454889365267021751588545595659838295864871383270098676168330836026982831522765119713827174721542955211178984225987147187975644628886830827091309868028767774912628289848632573358908305744387604578100958893603193427209203069085865688026180790171590609474949052264362571970097335130922456748657216005828707824546583286577296464208512167515944739245021821484105579971204386146701961892990783925078876286767706524581675338014598141675304480528614501944867601832895629734890527335673802778158547556351514228938523888042442818223944540256256903411508518118963964996196153925078532371066244451603746274950006866174468093582904066331373227143899168274988983089282632971385882078941671132900449845508407090628591820759620500830134276304580633473363804936774904221683547206369334889215590784459721791648792796249060281181709212616836972151839718817628834376831078436531399338026590672613641184026820816235823379567984473374828879777908658911547773701714218489841503705458299871708309998222420712953720659595593165150628758283437258065782335512400119202319494230666268523710764352563727081273341108211606406123385425974386590926491823465286859116190399123352144377211391289713513307643399965955611281678805624072218541639830139057532535978462112330974562951439346980846928272439777176489587555525533143329010369758125304829127028270847515040822961530455125011846237345347984908756526902481927891436797539401459844375868707715247518203213725987655803962546317965003598571028968970032319345883950277691896192506947225553370331894843434669889572920642000526503137955158751231023225637964038852445731956925531361548431422975314791307615433529681742794145678423021133733307320179277358817551068490252239252392156516657036011252486123892363838710863789178840313977854531611594580651409848928745264486408203122747259617711570637996680117690703693969993611434215910936456024635500843393605717723861388353637830991617081869614674309176622889697580981200654726691589242079738117851373639863338175041672793543089435086875317388307889327359992989250561980758631441793668052958152818517212430305217203539023421729138802694347073294586137013377220868831410727113610876248118461707423103215934174975304135732633457476816392598913967401336494369598041195955669142590466088742098907255069862959885290101065284064561769251550960343789333017635526075775169342049479622960700103364191359829990800786694265689408475468759008490113733529517918397148920562513408130765610286233156982567699043031160109023358434657666559346963737906480380593827093468950059202789398892971157413223445369861257389969862643731230711410462932060166552843596594101401695260456184405097299383884096502543347022815481041476197661779189806823397311882548808404990271183725456265241036431772256527095783116923499551962569020046714758434075758287974424131905455576123594282146228647195724526588980470192370222891538699085807017452362059166082329506171318824989538163956092846204289814271989058732438864683054297936895109962823280964416958526630079477513551702492797316644699425203381363568418245888054258090473846972527366684797815348193358397966698935128171872398565015189554520872904848288051226712875117199433229303474006921376408744347524516057607330466198394911289213984275804287545162267940683552566689928249323647251116006517319611243912734601100625283498277730385990589140361744056693836405620093632478088483232214592264447588344831843484484893194719635089953142561344117728937420763316293194974893429071317065816515170677827959248649815179826617334173772682726307775420115073189784121314776249130496242350853641407127403732787979390097594157923228031131620771796549064441128357920531785049058028299509297188181257712350703086667459986677109913129410725302115093460554301248257302540772891153721914544562592898111202387186374365128309440927579767375844328567681451631955930620761833749469682017467633838420561205784742976852929028779935503958671861399114739982941471269955542272208875861807085690249049388382503796081603225732872502104219257602932975675935692227033757021373263682608543938241592189435983445679176841208159706445936359111872485880536236301908187959497916459192855211038389563217657148478196565346997896072060960665481617228138423898859729196074801715140020122406462545241845641492918111842818269957548863435124960488088975298031433853190338320061105037159854113422658915774956637942281084234212194584696736345236835606071981421242010390428365212520963303446730731643438395291954322334048382048412559979196384052767979342478315205229852816653864592968317788367277759389992320620127885273512654069687694055901735308932668885330861170397357655483757256476064224664869920845021365165832814172197380631936134941132821303340548242261472291155935613763466023308762963769261574311531764837359860241149382503665510214386952560169797844581347516361417932177425563392091060186912965242094146328129719350511644193687722080608108971114935596188925411542016471628425347941962717661732566626642046567536842175254055285468454165116020232101857407793942799916660288965414695808856002919773041972245533335421334475573482824471123186134286520485395417994018762888819743330758012271681338898861233115808134180523535099052078118235123851935154554107237399942613245594917913728079343377208820920386120970847054071618143560441428355312202365309171561332223642313619973307034442365139857776527871536547833118592526325942070584436220318486250600676723955173257743402350021618250829609221910491147129941657232407014808475440248361116398263029398270434652157261752299697156421349481797541726071048355661720153155792121390455152438751273040630800887271549598592696484194347795397377369070895487101592742481506083365020323163132869922207588597472324732604672699160612428396252371213888794987217350735037620552426818248017241462401382722494021688055422054660693025167513652147705710672258225163898968720178291909424176353474862159449098028567948403131144603161074220666129027293039832866201646968081592988064545496632352214467812107723092276424000720603589726976060235626757617631897152801557575059829858229562711482748086691471981886552843845619718897657446386340685090877137023727661847293324434585296260597133125400919600776740619357360955404429295467302445620472695207083232868012530850232912477761623346776593754966747902367858569518488736172563644607935938591076996023456136742314512655123930408519191676772601516431374831048683224337589013543672040380137764833069149683712572827250866811970559462542975197494845384346144190205635607844412176259311699199879467300162462288797491026251149424953406462103733374125539319754790117680768628307641203438478734870191179848897178901669872395883048461275796033730672472061150739160920043029832052512152652266383745736050622351141016480543116055135149503037505453354218249264035025526660208509944812348276393307896683312684853394875600433487396444428950490552421390325049073737379649405317834410201532835673389069569554858942358175220168431912188364056267635133185379404925384925729483814569057916785463940948285685348044824417235602977256074809267190204248346848534609711593517646129255339582069604874452023915537570462503873723591857335908093176093590539748960055457188255586874324973129210416339617621424676645576001857308862387050203119871273446134569217030396199604859981960682177537126965651372350833688942617194136673140966111965294252463220885563303243703089994756644893178851954729510816649436912886405690573312098102207577386337243411919077241098904064813852251647997429502730156896625449994512540309600328205723928688669488687808498251664442547979318082573613098825654646092665132707239336391810437634180246198137390290559382269749364900573930938828163010439479693507340985969493079346531169860366275520577071005558212612775390861408323813347463241936613234991245517497807039819305752292286837183764502708753326312300015336500090933088067168385580691790231766001065298926795549936149987647443267920422218460389190442149960701081910129179289625951926047064384134081443123153392717292489652399330416827433294550511455521305178192071439512370797874203102505742747883204001215361493121759535280230006586221675271985106230521876444429019260591271471677272330605267755830133658795904798512145572672451795594339693122000155791982767729102062350855189687765626333433654230186509970644918057015917769484144246512970925970839205918323895539776238148610766750178403150499278241435614270474440998278299548406318555798160702741502745943467472615636433538078833449117674057686946228867255053614884604098635240870486853594551869443615392329297673801193706442431875229481703958131418981453755723503297990615714893821171954357104174170425964465343053499427232999661229566736885622290063781164248995562867093426569243828121667091619548720012029072494885454559612268375951385766745102238056830022393792393796846585858867237671313102501294094263964932336196391513298025062659563333973531291146655978325930642145985455626937364419663822784257385845052222877223278787733917416750180806412275249287519222995488539836231868372872817328175589906235269123304543300788348730883735248243468020901422614663054312970642764868892992441084975914668746332900445592517494638939279625461950323563741522486529552040583363501511127572952284142704478599467980468900418581575188348528835868079605964452079298757499892896529695500076798550678233631313624145527056020578364791974620346778906001563148157156432683582011300963738668076790463226745295950158459926868999952542773396549605311485207776112347217286055116240381428600856437888032453781532598274767634942100056078297729179757061265283543755965381428026519824679956452246263955870377259149298591056947772844120146375475546859180987655281480006373588902861510673430139064263408846488403820977586580569550571667244705602298710710066144924800629436482835193154854659997006787811775379712139967150200940751878988388130773793496145504784101979440933708856458925610480759179887418192576267463044893820693579119999830095237909512978143601611237916346385894583894192850663934678776388222664386473965169886275829089913614121547870339906728999237736361358164141406648770957140602538023002609394814050973890691171371135438081697090661049550493393450834480410343317144506542267004299459839658040449690699480490203648644379920810750585424412885331108692146590583379808378661343197186578315748729387406534884618102659976509027487627410583089938458457163109099085773232394840654097705764608247476799808864807381985259553639862629834615693691318973402793874257625259013564044987499423332093697306516016839997328224335207963465479410338627794092659454802093741209705119853847039136141878659220053127804836534423556106388194429944495393643755194509058712283177680018983726957931607974234782871063037510436204251541596378896581833800207615249377493782213634392964089374609731557212191775908235520972240912515159765656985935289307483009518270735528935432582781673244715403306275084756291854416127833389623727595759304087355059666378697922213688628510224417252547941617806884696059508131903431737293859275598432342345360259165548825527859390895946788956679393042063141197078565091043806081167505652878919931887950582694356163522412668510993266132840882934377587276748331954052301594783092032128383057543499100094745475198193374224670413113012505292494500253374376634731503740801742422069976914511675014679193390453704056321906597855995528814142590406682440812817843839241375265304265773585911473929489451241998628707742406660328041211182800724327584870241382760920053270921439667257341508543817775462930946227265976303435763500537882307336360690007899606909452823413411812182013259718229731941944253037902863942109446370817828631525022623597016461085313213469957917599649762683276225323675367632554496688612704432414779827586573019602110360822479704598057253899923519079806746987335329252611012557801236423126499468018973194139802741008659296399420629667555139589862542630241583075539194632767979872355869658378611439644825939545942104333274803405814059255475033977577619535266892171163134592810315912168952467915410430201496250998681696155213556135786465426258396767762019338972340427577217303387830020489916605884319811925386012233772241105997036932452997863836304596517407528954702284986141009477147608077729436251804283719552575488877792986491763708860341088550061123342531704656490216073829635034056255652644946532637169733771436304852026044845494729219530366342919835822117200417234443497035365378005862710602930458513285157663068542503212761284494924107350601585491523868145871641067725004257127088807346095293542550431939242172305039827796045294338990162739695944593236522205844309109479705259909312822731294962493484185306514271011195564539985872843113789550251092580931746492911612093142987120038856273483946262731178607890564641674948475207814849637591706721830183125323424694896597588381168795787239899356400133377302051851820075436390824898082042623324856429472886823072511016923304278515235253981082695876847960041118547892925066690482402015294490381886623479196494179455708106847268200079234973915293023064408431464492828606985177321658706386802103989561746719770870228539171584572636770241616882303448225607509775021891508434262267540177136918595058882449879672302131906120356136141849866076359693636389710241983171761831056082298260452781396256184174434069577804705846392336131357904213878459510861598052105732546134008557319838602469602751082757345801425914746305605152841776018979585151509005254614553901797414549059033348141411555750068304431584449097898576183705142614913052550868997533653465806876647792170658144454482664619530517331102163449803874579502272636140129947081985298283308164067398308263210561095047229120405154340307289652800567693447037631097258473395837062297052249077937656914745788950777078099925883901246868517075882034712075832334834201095666363974509703588744639101954156649758208522258324190439761366484260011124090406930506700422507292667577468985457089515354719270002467001847754052528824699106447922422766789353991194027207994242372357204532113893777553789072952174197852514537179370212465966160937116854690065583496169357931331325360058972582595662153549279703120163762469458182711281788861982212777861878240841997622346340539550214575112322088914216986033433399716694436785548683438976335771576780027944004339359373843021874662582689874175629136204802216622719540069674303947642730893255761035799899589758271049646538067263131175549792356695239038815010878283510720369128057844445920568644880963644129910160028720171558293728725239319515446050165772685017511941353164663348842117502706601741252264445412361236057757910053160018037042180192310289010582517094272487934750206660336069618919597742017992749067901160533610564336218810157936032584484753376889339526968344810321063663464012447401849977497784027767731022654124246753326894477364176131290082875048919918735502568146080075338787993787155735345297937520818926730967694472518101225310310489891946405552084132239569303587595787019479353563932226792200955315418945998298038224625493943237865402063719333176087318632237868979498032991525753876309403041336192829174182040889568697299152557097274246650954528834946169404385425572636877830989260821884252670780717105130313023020818195454347178087763161759420646582088788507667941959846176388863602559268585850542496452753169083384363881013562986525056636353243681850033275307565488712821834281783816320838096083044991594784176753377348466837726846664543879995679327700774585794544601642591866443081645609986142097746279733612902482411974046293951772757825177641902124438150274730009591574823719518496893373203594052822748916061308847344815138309079502428267737789213897396235231962631531209919816697793536407096196070753417955410011404317626010539402320604070513679496980428367294780684625858692617217562074995473203446886899870901297383748212149807706103785088440026779270544407456789088414100236397078498427329893264594961194681968957053207129121918797521081093122018269048567226081287536621891210770622959232506971091247419121097594037178343900674751396135002283857737692511282026111183216351126482322429337317598927384445157266446098411025046032699249207097514466845673571311882208219708647074581606808981400143238819630748756016563269072508111256143446874161714356758059577355700290984865005492881365389462055929847692848016256170377846849170588438124836763820256397335109148271602872494738997310908078127364084455698579718056025788074913695536633614108033007340585996846367377328754432380907262100289223149699058230773805926919689704089727460148147436221473009285179142183326517919621623648870117097032216426997522762788673689382263845323927322852470744354924335421742210901290958440803619714165821088586015032963372334718163976720154880946462847584088736912055422921066257743882682647829655790840024358463436736094536117838517912340220939301355486009510429024244304854902532442735365570312978396117065419255589013523915459747092278962831931844883897043964049563572080075186795873002627505130222635023013111640712305280031009928858797484983101964202829865693017041750714111683586690108277752663822744354419011724424590392391748614902069161493848889611241103793482793358758932443011351230550864577060505010019608030073110517686874720213870652703823717450681665056590891823417544919076527934689562554818838771196840369082235494164084066495042793524955976442355108722559305094133369708890278871089038766410891828326037009644732026631305272425644970761516666048530118388983736782001996665310013577425229377775980069638494945439888558882972965994730309759454926356156215781820561481998807857242221293283039464988888522181348863422579766965779571918306798833060386211447260135272949486969824018161042824350371297925165895070712938695723137020962397138762359893572659725470731809198545850892085093066125998813106486211702038989488806323899449174605022638315170125955645349335530232456733838867410392457867138677592425274013769305707263624297674778898738246028945866314100675745694116956832194135468070994968460703310703828214528123871740739740258884473363391737517885951266972925578902589515329243499107822070923145355717750151856947973381559041345488709475438938061096877143847257278168410596185552007250192851789994325653593245457810187316168965739132968575789665648867549334420868849297773712967166517058342651544848189196586739301343913480504975114869519451202849857693261325070945755387406010038493961466119709268004558397609729200154812134083676425537138076583094148559392115477601415589267003497808641472869163745309805370187162800129746903473618453371570795562815994284476439271063811597182263632307440098334699417069471979477024715140029638162727975111284489828464722732363720033976691679627464306168731809122009046939102786120115242094066909151313114277248458105410300142284791292704922887950002449079808984510353654978177873982206201365834934804685225645315582768238196861592962224671101494437670859776735341884733638445283294558947485794671095129063610257829131803453067760847960411132718677290403301170994806692655007382253247274742588688779528631764085918383617015549498466498070114246488886763777112883753801805204915991468061475782445099861359582931812231622310705950949425635772630266003539426272795466732872248277444274568025567989573858769976471165271175525993319457510194208275565048838611755992296245448178412002440034209848946264772050545413717529009811142101707135276866474169482219166087927351069780349383180152228713498375700740774357427414172926934294676181155995039490395380330846353479610168396952573901897755995237188735803173731132108817834332136214046365016572382595328714954948573734029807728801770787688051894428698938797250954073460753765661405277914319800989859266230017448238958913890993350508533149267065738824223876181446043799679938359849885453770616013423679328806510422250450528477485825669516022052107449298626739013945707488707411987716309983047458459219425383106012519778320703001325536066368348959411532136849892275496714467836744246201123444647611854749888762066953943316523568394648100973170599181409617821445428914947102853504645015346456958806421880964611943091862355528734933450785215143825590265365177808920272903401728239963893951837138533913558635071653033540872467291677838343930615638874959581503312368546480151173217385938219932553234006191595877496402541575419030632486935029058697150330364367788011782384702716975669753796891950845243111449861386043060733613436509957478000637584987097541514788525816223937218665288827208618022960979694475716724128830165574945202059249001392599330356159798893495561016472863121055976695538625982328937562170106810694218262159805087387230434083589487214515821983728837583309299562585112688514269949867846877255341969513492797238050307044435452766536736032536028923242766764809866326558106895219019205963230323405353691403615399828138813782404423139647447967446942420308125389856195288715748298453252601895754692361245058104154648043142759994062271107829317992137125419364524907732518178814081389194945023110189972509250329537985642640707386678126681873073760387917353234075315344346323633601649879966831587660155076676201905020583547119750218669964816796152614637896658044558809366846960773365374364629543545422788718376694884098010673501904991642355609443099411893942883016742483520549308490738436736402969756531281774020544361059578194962801623674492859777053640875119514246269864910172731165741142962818386669366771462514687482575153274855902939203727641775210152722585480269480573529362840995908478972514367187955491512058737551140503897881824060951569989250041142021227847744550328630900097796378950709713862699286932877492178393128045629423169959543347371763360706558629263455724125472508361083465277063933910209705847996105062518693884753681225119925575851395390456953188775459117795865460596327175262781580982649220533960073456505255641459422634602904126517173145637181270477018152325451845489729526211682727670833239137680711337052729066863361840706721548440976413056541925964693123716340935737780994490977034001857648369246529758610016993248880038456062776490437459275679463506377536147619820236079792138303356938454004664015608182805977015949763481976653471956293998422182900616560938145305933373003774084999345336819282307363070959664119329662970669104014116017298476708940012721610786561174051526263104019507128742052182403973139044446918366329802637131945100356679875215518201771304031306102342293400493781669202921678218368545455816088215059971054060029403170866829565607192012994003906935861122060964382758804373753350891131700052964902228473748536725978542100093081943628287647226715214834480524401299455412251396454348536341661688290715096656918393892752850432953384601074145674487198920763184515064903321550659005745501849524347197002936675301930390657236029416395339792654627672043060723043533110248172263968873202372312855835009169506884297647189660544200435058200304626272996231218485818643341620965939316079910481076153560600416738596162879620424928027814063604291380949013297588834346021587963912489110290641709306547910857790465819365536466934022337719121212151840676698350492020806201597305570234369037926242577202961648025086289732818212091232344474438150504462756590158413663917978184071790966108322930225764675931247096553485266413794865943985831659224510561399368176459226155212080107167171484331003491394839662181999405583277553998073739563588373737490543394951036543269009302897745197324255805074096534952626230737565618216082076519801136185696732687469515738559518394186654171789360664923377899469362231600468199891678061435266339346974660211176609592898076271389288759037776990157491249253350538581445627026920085680896122939156387162733247737154402217164262393303645330488010294674466064898901818402343145190782801998760974202872239504600323393357873688760191927489895990809899546264429229596145142059567744821269229953477088207699932973335218120218682065658509696520114758072692590768443106114220545552651988707904139354310355687745004866547969719915904204110792409514568511575597079689088642298092573205006386852554795177417682176874672704268009037764079070448679844978681430897203355723714439003749864900555496412033410365184391764342083225098641140773797027182448616563048041310810233170199324529734928811597764115916911388936661429546918743696851019654716844374279311956583361607473902641911037246937246323758763245830698818236691496611323682430700645053554508960553742791113217600397615916882322166309271871013253801704144227863687585828803914099588428362970959499333625355248188017184033922129555487782361782132885444948400293386589351261072012032096936635305073018222407949631687090944299570144975254351150440571744323773212643773427526445886487198870933650561344744892874370083150965795331686042651486083121521634094403503292265820440692706453453928690092297620650069965660079431041639261078373510933652741322072501518307175003657526092258331495429484531528834645858515479795244871926760939185055335515995524099699692390092632118560353132625304404102497210834926507962547684248116869171842252227256635705570686654650599237074879334002739803992372043574420389059222152416250551052905482473109762072685194656199619538416888459897159142230051432958837120297141378846877636787669859856935458627610109736694021730265856492338317607270594613106609879165214210056898263121003079835137427935434012891671767682472723327371219047448388752799109340471944264671000191706614305147806347729267570498783454389784608095282663322324543715794819148782163022723744547919627314011528587987824320372339061983562492517716384156400252106611105041736153945326849249686315695653569678455492154448210503795479604070905020790551231519381081511022680101411072050408649351097055773417478469037396066962159942833561943595759395105137244043793528163869582406447848514969382300827054982014256052506944848128899480815685611739827436697001613682713235704958314067921291930289930966296920098613474936386758409908581072455656150945709400053906088390773197962014776972259882320377039882393742723852450107612923345561157872728049994435645984770378308801096944415554918666842826976395466307004072831010729722661592981377721912639781371740185397691813135659086937055854363712008896418600847168920635947585628547545751730193454342210598722005941257152911546236217791647079778890212497280241683493524690272793167825734873205466656407072253561025577313015754048267701757200951013125338356089619494078619451708992559845357934752701488801940881403082068530116242996651517184388430532451473526137360193249237218671225068340568632825795421595644943445198869844022933939259345661843527835947658739790510530620851593898337106955059073562427110777197919253670723279167431414213640600364170438285440563751372094090241654077411901717846828004278309689747060526125452315690859443398561132383236331521418426537117921711097571369475800816272671553206567212495204346382118599550088166631487702414519257328350641420158269015634908309079620297992886521528642148397977280138260514892935615430807641774873827768832958964820475371619390175070216592939816929536566384305005232136306300191691445669627309185926053961385502695498662440255408327135307717873029461960021503671403166721999412621213536863799398910573145446285763026416160720057363328279982791985438301336731257597631900780643552868259850828977323019837881743937691397107762178496338145023254531018570538605276383683466085127060292256497041488905024277452010511211535046211310989477561248635331930382322754985842911184043828297782103558558184805398650355565792328036259618866922372403617440266970763613727348534579576992283855208720126896947295525134585965849730527228724207140001830083675495989045398362717924017297073730509713608900175699347686099657609978440112005746583575354910498049086668128564840887551905240264183331527862343267952569170578574575337348866109997831365737439463279801329809442201288667668975650887074442364536134919631737894852126308676647087135672033570383889547611659925239687781561737818882934298089964230728861564789942451618514116948209000179760382894232095229866275122270536282931224505409752125653405664250879532746819135485107512367984341300167582534926077600714844770111556196270912231676048892530415816410823355682633690301314531392974449065070922913609701973212877594054747298061627947283117200617500067321732152187366410747145156098545147468128078736300459860228692927881738255182707590461433638683216366945783691529448472613128487859357935271018886913924386310304632398568669502473861576771470804384685361649178329075222393612044512634546046693163718249759586157331586005787824639296250722065417850422348569573409308914723996588920688005206617887289109820371315767762692236913164164583697966642508171277108028107578335697425960750278509126284202697642404009581108847385432679847412097757610227982802453460023953093893601525264381828870833187907304695850531925410610946884382611762824650583026138671909766290414003966863810759535997110404972680980599009705523330893045511130360536084160304904830417919918571845028628403440840884150065580470294165573230607059827436373220572868970878586445525653973163305358721213459792659042556177581018258891444994245437738366467817638382246338468538763748966253720306891872786251734049864953962622778627305114994542536335590598484321727873726278344053401868979193809955304633900431448543198580351528622427387721780453672704466455172144335036156040757168462533001071815650605683685555922626746613705334575573727613834752023910065407902438620996649771247167668944669715758284523695833493504507388781553128329650118977254992388564410719591360396602823951382409313125958950126918086606690385406152665767436978408747780270295332873757067652582897543083459243151542841995968186853892806479113880921605865312353247844847971516009613379657906804828553263562177621252346757460074883571090685760525946543994429473325906517402070599673293317649743654318811467939921002823931659210239560680068109460902724433006143137610933160693569817754052047928191613587114103611899863722253208006653073229283397798591817505071146088636340665235505074006643466479460414898681040465126017926457611043788370322403062432071508106353973555608341658808238290438561481643945497805212414230996822992981474635085668611520193048228404436474190063285730632443504028679024393014071772877823842589153708401956152149281020169269558622481045099414512302482488018344721251445811513228769644667762056583888129794829844904169084227153062425835418478000981257937579810132104014200232896662595945254296162782259324913684600709847338225192780404201091980429744921870812132722337762029708508798260483405270265009466073023193258710943765881000171084698087830723374232416822658761246890104535209003688744863387620044390597761882036045234862909012651113991717853043300590897137508725927746934329423175811954880534476538886014179787152676213501251991918657829789641370890332106696670241119076167354539138628008621286382835246588537839539613350943133770531544746923704563473055853561050689629818790421192246149562831518269042116812165247498958241650731976616421553500491843950992640279733814577316380440476425747822874417688673142475365959628526990408734731190674240375799551520750602684903777188016700385707399453364681227702193058352023652095637668636369428443097640928475146800477332824654658339731111222282517679012254728335159708253019490462527588373723667461749723142059006134719082770504760993101517970470504200089363139598004997846019379825055152546303314034280260038923515793458202080359215309686124741408793477670533482235168811528447249978119060989500658329031631633806188053123279086817369517138452461764209108537842160742945867445736622424409645907563829990186248440237315932651287033623023746961331815271006475381950706636027656925584544444972543643225540264991353976742641728376482198520300606197973420180421775771780876747457005725155154062164744314319743215776509434554248207665550984574484078060271283879976822240448042951980148703382905492977739084814785334653770635394911760427835331462524917196312791777885024577616768255778177314032214055996977167792920487855087777650034956642806453213514272756271696847872246673451663444093091747829497434511813879929386170763968342750668390032916690579393185502276531450504409942615612398212399764233546908950531397696861811796219261264276822674644429330920749747441079233954270567221703921641184931838751875141578737437696430190562530209378484835145743108580124629756278411975391301586862161987453836578816260896783879835011921045081731391292992054874464158449522159871253074388863629195464231486155438261610259260471188433511954021950452155499898841261953669347050874543509280713474573900228554451216489812501202938626524226059464676400101854654328428808932735596653683099489036782416464790218965304072741902543050104034619616659217419052615041402303325210230651223588748847855726757987817296188994881193609354686941190244988276301774826782735555074860717248519090140458683467741951285715835281934276919429069994157454233844855563052836506201904665055016710870404164860921512512445252396774790099488305446232083110591765459717450038523196761879522365119145823038560064914626056051357747139398814027434785655659662255071538416765126918063523757936556107263576368558217027694028634392363363660946839151841069292091679843925285682655048931592335086242992121606567017716489111288690072012671791404902902842058167123377907052896605391819184466937357759699050012172525249034287530263857097922660198963515902089560843633805478341393585245431840531930907052563455958663489264846360904047942016671656767303087374727034634949389649748167429241261058088986296085012377398975240558937729608126954146285821771674152157229488205499478702297516862459913570813481841608104267952665828540901665910798021870726353435279503680450785053868707530760310416001907732487065681825316713815124644026085412043828281600926589340605166195289447179353994172613795363418482275694646552681892237397812177825371350546249424576755524651176135032983557170620709294635950266633502333716168921233349168649543011174212502378654358818068494225332510659916157658309895741119507584848715600280041022300130137808251952037638267821163386795880823760517317477838490511387375918572740926059995386589721895427641289865015195625762484764644563484556593194901664094230983312982290388044866452198182845291391794212703078810673730287396123294319316578651585278199009708515557501541904879849484065026253667351138480662927732325734287216653590491828609141273047461695365142162506291218625437827901101722887728785405861567963797362285328124666957591182564347375598309088898255682648112018043638475009141024193791885127665162458139151958803596450187988942776623669269083784502601280873871565104034188222504219512911682239869128382731361675342069356435536673594414774995745605606739936145473750402060669604873631915860105463365306235608654124058271372017398131391001876453609758711629362471459703428883795728177771757010048321357597810411332259348651820858740567024416523541431853274670035948978673975113120470339784091686233079664655126309551738724229427457655292038098014763430504637213292507454147624165117056243697185987299646876194207819430115703900717991733387213036629350595642247347378514860100483682596301910257318604378891277182386308002247414618289811708445455851879109415113191637098730023579339361341881292954184064858886081093994301204916640704472932452171265593737465946292711651718382324346128014038648265430390343166131467020669751871092256150876377761274281450826776946737679485041089450059307122201319511859611908486265761917262618155885364270701354215537824283196029497357528406398565893297784369786145532388519605406216450325780331856224359647126575818426033188685148201528513737362889792570981007721966299009793850267036412173869352270987619060072931615192285496444177181429752388915423499681920713859585189492496556327179299506492477562185952926995948858225017969922425293089934684652689702342896729474383599472738807734154095065406460184729584199210897213261889927002124939403946246204277561060935140354467684277009998090356289016503161841178784132075965581165024834905918346297557162238553664619819980888899749191467740526248102210954754024881315144377280620454437579318637453533162564461504351544303991533420644519922300905021727569687831185828100869122710318474423644439759307083636824820830837225176059984996364449232084249108639179777180612538315536585233884561159152188201594292577048838859654267082444344305595628799130797363350954127726498219790219484856110960767347565655955672163522194126936426123536770678883747490042244151109202810439871907734023820669644411796806196733852054881357451083726904612114340008270507807628908564000061728563631211618809043143028113671386438121601181093170001686152335960049363092134998169452617992814795576164065652199218653831038162008638583728245193120189565991731939137483952813753016913342812990021976353791768223684468066154062843624098657957540525695599632551852392487705275557793803538075675053822581264405323722139143861644583936603956136009359713164380798921980744466041082060500891013995938364451172901164844909598602484570754742718620004730158989450029300014065565189083558126183115100134934086049210670218002199386052301817047325017945291837766658114816012729563365263690174690952555012932876163424270087979224690013051563431833973298516530375177618948183809389612970387689963979359863523677799952386928970941885884342891345832572184834998698211129167841830463321494609286074689592700259237264193364330752157502619334715805398072558691202289680081955977255569983686780466978283722439479012030447408772425325156360652705989677881616287107747532606452545248410355837803641414485578996296882743429958921077385072001413716492328589056349687034640730913213317914278064462355942251091533684837952551690793340033409579666817920444006424496638708415841339935538113580689047651148041106526214449104025094416227731664373374032398911583768889723300561545397418980008644316994945180350601269064167821072962273296446928734078381260665722369112965429823867491522098032453753077755954411792016826169828901371576089250988869744388190860197672707035629282905176286689991537334694284815882058176327820315880231132884632806383399891867617740122312013936689478232180730898568413710612018702969177473062383514642640569728038360818762650348290333393644137065130598053976863437777706998199671889899920364724461218468149455028433325151837305297395299654422609013238884845211966288704745397250899058789599366090504551004894410888974704776810807851151210048099619699760406493674022646481456351785109032618144318864047957094214937181899347939846309560203057416828526688834857088396372265501510005812714557172302813879217771057088964694301122827229316683817456939429875143596409008736345969375874299904783498843508297784020434697014262436539272747417265907649177096283905295139848571849331374128474327521837009524846977000724629331534313112546503828857178809114691227036869497693927554409794096373385424944614005709817241936228863447972537010307604076153318088022664681035722509611164846015012255079017623568651392281858390703366998767121235249319292555683724998401366487711918587995895741826744347048095949505445072243950907525916876906332516240655468498593877053495479692846874081716173640146719208760519111138765834095046978270083810339061851760946334051699110563083246277687452182810274139622155792684325422643370273196740189719897069580325843560339787630714846357782330031593002786743829970841935068844865117036458449644794915326764571997674578823399858849198449307990737661464168633306435610406430291809431636615330111321722471254270919672241651128927531816777637478842844824660237046277773142287006020183483087901198958029987269292722540396354424446308673169624265047609832069776125410957277671523785289881680492285970863395690256697550700129637806628754376252344865913182808223962940429364491789531665152487937239575267511354544971686459177779378805198336155486386355649243807224087693913664802680896711476638939163737974472998359112153629378078002415949518633967112444892476630252020596633897812903495526736214719570388270219737542818105638212952217599400248291022049118154348048449192800053122639584717227745305556112508512139012731091591166603683401306152747099530019346340128217909275272183808179217231117317568769124704634582797268051457962271252389221626022748906363160143227492968208865485531470626624599114140119005972169568599704880846119655074632999979863133793811120179451904402565439098512609441563854749251271605371995009481822859126753711028274876627436227995855744121864273429816082220706579865032244962958385208158590339180864340777020609832856773551927512108045560324204133353442936783038969797933313765098315183928385637597868375503127919780216016099685577823406906024908186234050187020774713226907885796258950083337213946481535605401203060683231670179792971866992452281541381957762240614197385215773219383215493420214227099495556041797915325854288432630286091104633235639054238712519691906201671611565483565125266746802537166087155320637303041610772465346135764188460026435639229949895912685171267742080862450089297696229152789344454218702949352951205359800390774518482500644748601749653598318026387847200851145143754869026258622858560401853617899863894931723899293609474295943002200050803067035355635368252373860067548619766770607248542176881075118908264386039104642867655686704828958942410031618292624307086955046323674502860553173266189277486152873732805815374615640169900359085975143202453853071209255477904362058549801445927758647887398932766217516634288906663322242213027068019085905254396114477131983671928131971391471183304917905801855942688706204808959989971389335174648081366194374494844429507842290542044056720272651509942445084047503446458700781229890133341982264109558186737492107641794008013806352301700088014993037467990703781243892351424188153258304547623735974113894372441526481682138123311504448860680488654801545532022244230038077228474326850578755019048683697485360089987163253728210369909761401873496449465977860253153869441691728248680711900396736261074799859151470256806181538692576273082096301862418955216387326186485957815469652595535713751518622918827751564826394938802270850786765279560617571089979782488542798415996409581872262990613687643178073453292103973793875116030566512557110859955781181773723567476506626246726221544702378683695860879687681005788981596454529657186741187937825364908399363818598000638877108587486426928694937270261953796153239588444854270894725003877397271860090299288890504522403740553383861840519321619721094461050291220693801363686540821958187586827777170041956009312151382581341676165423192451660349849947490233610630283705945484739536610849794820068110689336414530416781321963971730434706025490456404840466965435666802151262355067864430528919401018640925889121182294344140681320772909522999313942230421939884737997876776813315353858106529368629775824308392682080508553221267830345445824352413929782094357467583081908475425858727736269816776722228661552808757239537527641404222354547827657292143996343034214852459894493099147609656555311333117856306889146011735889971142171179893386109150627214510991216509243454593322141573145957943998731211765244996916332413567360096156362020300377375816374196907727221509033790332953737959267287432002623820180372119672533790910800634978789606088735821431341137427205223683645286974114005590450513491207762986436563698834608332981107805006214539438844210212653244559566589769661870763089697019687638219910339416085359119384308600146718985707736976768454984150327065169117413534208856682487931776943837618916937256462384553748071994368308705862606715758817775124321720540159986469225604477487864464050633723985801144433729513594688372940971760593593530972525806399606363935836664261050587287510972347873767225012047359546413120592613383595508778950499463954385252278080322531163771215164972948943277544933765791742773202832320970824012136413805224555936114007341972805593260327135393292914254133681765783576661699150144673136943440255043642940525552743578811776089668867103351839335478272781030158213666808155687295450684239291617760749236787757733072826391829187768665740068818344292316053463363790994912439367470000653615133361115824864877082719860272103913742839085573613980401130859811177251053984425594230544056948126387698383822363111493137363310439624405644394958665145622240688914318174146752971536034301991537707683981680626541830243710964034528426495012152600192202145628947181924675833627061141131368276353798820193628666660138348086950520589412170155818880581739114859968857049207845047895878262326475978202760881694993843444046514565268816678389758251301468688106157303943473788444168833716182420602994272181890739111096228772475338633593761076554482894925160200144515251164774871413626623223580315672171140920983487248396926477077299309378359439025667687511937269243986243902197398414551090960897113474566778464309240220287689735298177988940836109754534567118305046879075963831138258724369524631643755142761296230844040030287654988426169752246087309836464643732534070304805037454621171088599138054987566566187897248027490844509064647992192850539444621614550492680587727352022466346776871383896208776992571762907820708912546477456535479685581121612166053339912140242075455673341685520192666789411356983652480755946134247095771138889422334351964324056550220699699122590284401024362624849964280562280569108124091860537697253647281902219894205988942674876032538291257474135807633083774462522176068117278145107591427563093289418177818181617847219688140065614772108008802620784440535709212324285806721307529605616512290287726223891877969173481033101918431689000407226787369580847664913031014240805999009400161082030826976122248162777209865149135379693651706451603743779170678101469936763606664420491514669662991917583534956438952375920220599698581883856157782495074342893589986596568596405958418429118502486449922916363874670015737374551678396912942366802251987125898874006375994951565325673972196169769819194676646126185869551008322678544824049638034167624417696250313283710505155564149747929851945313999921741781650525534719379396908675387171001935202813784285773610466889103434370583073244771672951784035322429453045403185951055161468051930155198180621672708776756165154542135065600679555068588929998232249489230858615935793614189012340861034683364447897780118983179088369577860600876471183889133640524050804761145887567411747549110333551022729193822093736711439729574670953421084074329776090985002687685335560127490804650550070078004874177227287083469529271103839159507394424900297082297954473790319262319018777498578019830340791862328271299356142629857877020762521532133190795536378672498083358389019597276635278894661209113927522950170263455524957691777043875506427139838119807664449250824670914799197655901811455820949937200639480257295009410580096540311901552877644240156627163041757389058524899874426502443391611978085056382189605246114157394010972002514976957528865117195795872681848266884191467290722600813618297213699597492650605914517968968157539011559518709972817942624969852739160837811389889063932794876507746628170555250409133410155700117022156609431262747884881966791845686410192859582475432928378364621462968878944827145258371032708637225898428683911726255990959945270949218977837228030772277687314491908337348687941211418963071491922866167373600941046135920040431434616438236281706086780480211688362399114149026277424806984303562197536502889715629339207010706055098408886120595057591176440076651082010711680334650274920363757243696623216478186819340617855772690760598079091208474829542708526705322390297916554771059534512546865474147642607720753864746407676945515278425090143964961215869727163884220810326379423218003941227318856247946989882337191464510909405897766637144796742024817623392080742605328945846000629517454286707663516307328586042800852085137362371602274672200050975692950658871055153103249166023776185518201532722963495443366322966117386356378177830734031617249764491779857346009884438973073492336119839621905034540181673321277680770760470149018710140758250589543613549364411009857551634483099795907405461100086213214964226807556494588631356678084348595951423205473740741312492968526894888651469975514286226539446350758095406581582806277419763152906562827463015046310514248603735689126846224983466065085964316109766683977326264210041946460289816982377227641388270562864194340703051364859871549411974727130746586939222904582880731458176913063147892827144783382859655424113522358372966606363885567588160071651519047584279773465041279073352166672941854860935031437419080240677523656777669461730010238971882483568245925251018822570580209210383608558174297832090425534365841955300591044725616227619371400244446900422209844044685403719539909879608036577494379264528443696706393577642969791783860865224483852462229435036645719333836198950350333750418654149451246409703048541188732980497844185414180197373275011048805911387835717000864863861532829687941164620928647015547780065477812951296307779144280500557039339634869596350227055104265460965865535978040284141246311022967514206086570154185166370469868712649707054119351790222067114517879824694151160586114058283416071613829396144876471254087062624404168209557723215060113508740299149140496097608991998385293457587805827826001845478765463045676464544964662867187045871422477800474214844572172607505698718024193421812798836332588464990967835686511484565210925058297738628069021004294456831054683897147771771907829932039474137171078772652000520744812196200945283199077703463254665917446921118053162778005141044380352421150934876984799142024956606689706286238315615320940123770202577661611835073039439949716347117260834008267938049679022332789938781380211625137425597597244939119509185293781186041072224080332995072699953619841766206550947693034160200772767801225378800931210169798368529135174075774139790760330368578395983775980385824906974352113577425167300578891017443098675199240172893265712745514295793429420757308565938527228105069179690856951522047459405853951188037601027977528557393340426577673518764314396914243784793235008001488033465910142737039245221918162337302810830598553213859685381203919170111368375219466261757895344627240631358790937605295244237747143882165703236079390375671414822410368228153464217668986679702347074523673551795953309712603848541158413486152817804068313832778585861906443704777030410357906795052680881896934786772672992270200938878603728112801833386088907756641014474090172620748147391328717298362586567235102817526401483767584917155629046205408374557225965982555433269490126082116383920359949355665596935188222484276478392972349642101349023318856875121448489492727176141448121051120533539244272148383444224136612140104911880967847465075593887292225154640615494351928834693635692390367843592028134208557162838052543873728247188138879559398769464299003729241000588104939671417464122994813234183030890717859704737421650083500056465676290723746252584419401098344642164757256920819543291277792676427645329872918624534403956576365581487547853023443427864806359358992877194521520726039309363318785008350806091783995857760965736120228057226069001411687884626473002716443833272018796260804489459114712641037375836981689367812820985546308709533876641777591006884519344887730275555806604095467815076972290895934607853656813041604196266077985752855432826627533943007872421570771422026239690041629519281125509502011843392148683182007160168154684365038859943940777086285459111806319284536454247474659313937588769112118081836577029365821104041131613904428207509635074083931017564989621900475247747388028530561383750632788419013456851134168141010929384405531494925142443466813595426409142290645938878225211629790578358451131530087732121985907486584329060360888206184109602348128732464797348964615520926305360353936665154342766191238069009213168761637153665238099350770579080837015792435062278341418623120699152746497359909663406901861690687100878906938921132289185939265176163029576545607527287424006456059274447426992358282568041832431172974982954113006966880625109467813803374958161408551625895627436167528877659022491789566952380346286846193779405318461769503754423811381191025471584465496512500476105139703515360829893003013282171740054805197055191983509124500556818713144116765924989978959476623374443432385645466688951505311208140428196095133966356845635956808880739448967126463778502326514723376748705831573345573502317215292918357654605961292513240965177795549384229910433516432280415720301252000363567393161532726770280512174206505561706383243784430165459550995027488332337200410693747495275431758736561603991255807067822049644263236637584352991426764947226123716547241464663842091174651378776156776511852606728515641535312939464912119584855613985982641285021045280201780566079609308630095371731135654412108842991022758150976757623636077044364533090051067399542788033836615161830058779155309523367267844551976004312565787867356378662199050960563208988425182438093949729256548585211278249231501664050582439556273209442500489471819701288388025481525237851601378517763067692604279888382154543406918436380472757415342405804981759772670532976220523232056136238152244445772512185840006409613479250717715206948109606937638974030826156942234697742894719395483766856763535917020945279669810582706425204599233135357160034248801704803850956423485157913798575363872866513003123609198880310670105943149014872936088374165741819464871603046683052709987444849943239145405722885883991781487284971555746180631499152429986278250239389320774308932140751582881150257096263009532469330213854924353383779544487120485286256851098372077695277167396440786182396711735539762689371747632574862283901834676542869585974898790959324485056090353752467270172091810144913608106021940114295851356934099654891292275611939276779229121822445764619424036601771404549952775645551401585037518454806048680478170051220718412576706261008277537178264290393703550312221684812691012683254334150490623680006336731203991888576004617327492444918935592531993885044850298585549156583266618494299181090059852687219195942786557184289855430498210784317691818896908286302491940188270021338809116627012390726480033588225761944373941279120242381548888112156209349967264636464551250206683452334379165288660050656507415713316127304083030101110711295582302153053717869004582135873686295741661218628393451098457338796500553044307029451377201233712759943917228720564671314964330116585160677168041001573655298887136270139047073744909106799014839061111681857582403156727599873581549637705781441547465233119432212671335905009168105887562450957699154909825103418994839840163916296682634215194417950371646598089563291065243801123452656148410980747313427451416154924138370153775841012367722246147864968752435855118227195163113312581205814394965694308419466279294518018480122776179878019853867950197078842582343738199983062222966973368374782074604138161281136750444469466923105023575739932314797748734786251460513938946978542933027904167734253068299110862571073231222615509437879688236857969124777323888274666263317393188488920852617656860211830034761501550419399890460897153730465424573668121834584051340345670889986024129645144802856771870736932062254267735957537945946768130418822306666884291745171535511231810326725409683277893442666060927525414262942180377753897364020505047534320571137758050047363718676676233804608092660127560858950580200107480862629127838835586825136162137333300398028668626233804085168866722599751388729455195895191988601742571541481008510452667336606187677122221550946174955043922037920639674928808754943679675903864051203886081713034387292226816052048501552979964920957895104722890651963556003900628150099580464354962365206835302474026268896177237031698890317440712519723292995179157332011826355578267339660433179932874281258046879034247996206213613877950315706880020050942765939280992416357769104381212069144250964974617341143391827762590170459299472456052823597069766822535959814119674505225278833660818821046519372343132775462621704948231315866239031841888606509533913091928651899957988702325644528862841230687222623431847715662187602063757573279001418090796399616529986840518517857019686274302358970942732575578771522187203379694213863781479759887720696614358032732196923350933880155644940877471652411103366688197322708796419787276308888889736240597081490010830238781497955310912681625443731113662036746359691854559840415144711410427901866342801235000450388790129591717454898543233622266263824530916451622121455858419471521258005286875657916562271832614326666272259809248148661400006189094803924441765997639354471087785324189335214919416041200601831621439867577265765399834107211466492208824868995457028131494644118666615554966978928543998668109822396719134423922821951077672664201666584076678279595594519891784938325582889223797081367467340768338192834565453873657600791024920565272984554939360984209874579038245955538140194389103758004808333470065084029026318900927110048152223944973592814701588532234292456674963836656073386741268185099389648996273232182664360775263121570153355905582481964248840550430597905463927808754342695001668781136102948765935017992193293174282252066278127774139150686223211185452234390549236227240458432576936960850072323522829674001070869658094827326385879156675912171747533364406166456142002666288111401286376414189872887614141371101619388865315841801536737406578780690003719396988311740912022030097168448254667737002809409545184384249784490279271648098956822955249029417161357555468020331044803195076923387210713785194972035587157758233782511098858633265338700617387356052398839776789227162099285734085328356664793180852940375714812044635154224990678700166466674791701975840958503146126816808095984009805087217845938322843313509491660248746233501184298599051704142421623855078148122661783934741402882093346063726313185977714036105874811662844272189531674139715771020011085231621742645763406091598589463712070189582018233029407111887179251055208780977586044768845669115374691554813534642129575202065826964558520355475944819839880998692762868763870497248471563134604640150701842398350967021967609723014915320247665660332077061846373493356286699208497939165633810772335173858907159764768076964357263345489571398065809314898166620856412982941622479279050137414095084083488442788814829232651946377894384542110125459359442634554062181803665141562472263521885463785685199976072802473821605857304612391842244491371363462923697431175589287311773548399892909621771183528011389249185683238519171623130499158917425670861890391229382396716371796184403028236108876190376520055817116736705162123017584041078351505050076121601419645408110153425885911913982326162736259156674139335898099577515505990931079761393893762565360008116603388427441429022144445371546312793358575311126831154722218996204907645043081660450007541812138668545752392760916020868268173756342624759681206658010644831898195384425437909470276935444989086199215829625550649803718943065846949837229194619527803317706441468051528239000792717193382629015746447705715615813111953097379218593752770516421760755708305715420503498770241386173127427144821380608714975466372153245095070040954308069776935872711385169252236397153231002932346007068626249297117280860096103691418184258951136356238706878841576155538701585450849239956422201254730829257053950756767308144729711288589932985256772964488152645669511608230750302788709580479473742010490075456842104120745716998549650411511534475575370390067747909033169697419192088541568691474058583776856541366526293366599517382910922956435166563645334889991726346441197763568562543190434842683554702916675429403243168101895003197659527500324229838673737932357975562048741016330016310354508864723798408961062212657741022077703291654412492182608251059546917369412956765886072054081429672152310983525511559848891430013725411498307569651446048786402372667974535815311376880869831843472650133983066167360305558088614748807903110320447569389510460234452417735354901177347318453160861430303200310188093740651636235332316766329012930409332392396870183282875719624438116911970029428825607218178431827901298613357577943731024769860970334357515702408429441858839146995356608928178991760595825033935944993438440683754337520753712039296896813792947013469112621728836120465001074030539650762026316667814233974629598499930262225064546415522533312759090924591796664374270424098494690651847143495694653632783514145376077652315500180581788738885745091509483464534793412530000344765208514981543969162570693501136395627906160227377657585007294371403911195487887040149159083359506363797625490670606539527202069188611077569289861167264945864809375689024759273459373224188079386889140596415044869964767833553514673153870246458084376723919830519717322968052015797598418015248265057155943354528129184359958723807514591342187825354276209585103878396681860296823356969940592738369388763531224577172106564075947476190493296199180252309656966593689413250160916297180082683334243637567762422059753374708963144235572397544593807620727636540781437117731953064527917050796805282912043537602800992173869334122704087980307532725441936887122625313086512936625322560095644047175636881784968937607159776336265748109415949339335950997429938143530991147912976536230532966276236344575865299651208273617898512940662645276033051379834835224698240097953584574397273673746488535288366914675630813595249039793177080495150065418181329165924829441206552130918351257262607360155226676676899344309123213998074660693675522499248273550458867529902514628153472323019701979877575840859879563393934959324456324391235858452541951673366917566226486117612345285216844825379184928855194916522480868063046276043839331478325336292528699551563503549899759324229885498011861902312091251606229463628367335196533898967582863319574264254134278948342709971771513684926987947624317312794747672445280330827134350033178576412484388630610314680018865694075169251781669766419474777681775745298975021743546508916710874873786423405736582278999218995935715880549451156320841931827595768922683589887549882829457385774840579411306174262289912976630478204351869266897833687809155421685314247201480055768063763602576692695944878251671563132343620721230079457011511197305367689134584697543604342981739470701856981929234999489326889574114138658749972447348990066579248007758546883677734899081732544385412945883300783992661232568426884833262333399031255911442955089242932098482304770290394453807784671737161316219956238192630099943669097006499445634970953631227689508006004013108112488978858865322260596094559900218774016434154123663078277167328300806368142286791808193600700752649431495722800832724058377007929442789775043916496261262864186792690197220582729635297404164258355969765492496271468007347876861496787717245907710660762607834054740962620955350392394139591971900115117745950092791843875109661795805338062583485056078467131411807429839634089673350466455002585280903903190117711288044545638095499539108168173409291809012922032533328917165622417966181248447970910538626050743881778887109403505958566306280332232284741877095117858369229502185782006606584468468606330890528603358978292747159051402510437630503955842360523877123893179380966670776597434001736821830694065050606774778544543409285945009961799068536804797500869061125296484644759313181434605492037410128116411458625398168112858293171356708075403929347797630706557953313942404624178529819103076678799094624971911829315990660232108318534301131167246950828001174023798281473442642253186139128388121963707549651759061074676946921318632314056306449668578223473830733352654127716476314147422677772994391368976492848123291384745149760303206159566762895948251927299555730177056714040988970053903845057040379165830065419670472682679716000013062739931445495951964308645703831861434445674470046435543301167036266269587761945104096900141230252554648431674209188035536981463002978002883534017535365912312871841583834330116263012795530366048872913647016094138448097123611139697818282691748127288718665231728351306620907742808525275665764977149117156739016226792192182309549870318747547635960983669336659227713131846286259528142817463213395130947050649192850003057820050288601654950436933047931929643241206235375525618905940312213099097124000045716188401714607945440222012211595189303023988778711126110270861895052985403685924469386321541756663611101391467226581722820207685047171603410912212428161252412334168075859022416022676775618524268385925945708579105031222848667049999664484176604021965085666768133398868247981714858297216070016991016707933743659835130204763643417931326754855452058308907783098979300690130910188058167811839182896271001808365270621785576567125033915629190672053676965808238542657595807528580003927055520280041529949283877506849823065703834540647881047197399069284510763668594592221437140515241213646793967194608853648917187744771565689848170815212035317602087926066119602706622754185961015669148058703239933099721835399197458758137634824715418369298303314898359167537006552744068226910617816331676850411543734042866626268743282791189610476833709474841276491356870438947883701356275847502394925831715357953946255915834047304578112310658338016512343681516359845324926251222124617326196508944311293221617428195909816687884853936474173948599555690294450154063436498865294464581507588969787237947310163120556163114509979836475019384703955215141796461307014039255152515847966761162339012401886445601348776587495825841827356424683782714672691916407090538044748741288215545266610519357416649328057818897051612340066522731108921858379347982391293037740086587192865621655186553584955026135604880155969955514844007682676527880318215285730519142424207858127270199732980885624977274108011935323602527487929700882092134698705316909376578159757534066820941578145364819538640720430082845621227356889560514423752988650109029881509885934982320464524138242595963140090832811907770892269331169396363146029275339396919997010024572512967533889047101396223337328153968963396845043352163537594567272632235672225953406029355923173129863550967900171665926719209485820177682406690455059476198044300436177201552307201886722356612072479606167813190911706703351006207582352279388969853197289083074436161212567553144865679663512954580479720424877875718959009828650004477525120534038770292010733446220690219285724177136505523348106148034195185314360964909631704769509728179155279404661616946464236297215309399918147315393343595857685247635857190072535526374171688319968265133109513271188290239711961585800206791339069532436293831841748610883376892330664984906569328330737860920060049312072056766675858006224105797577442005813759769498357546040893629023749332689104621468289233874398371699295063514545166733263246689084467487909508566362888389093279693662011291433339141819144119688176963900646761561026915829596347075178043915946106160178988369174793283499694377752478723616775780819359313998936540186135197452925700888220035031093687792448575040502259046492649491274811746812788688652903852353692090561564166727936530742709302226229732231680332062327907475574548063738983598768079330351114807840689298479683183261946327701725194381907628053340965413356029512832741648053334131870938321400982532803540643669839422643401427597328733236975378423062330313323036247959338856914074510555777648586446007581876775590320655886666924155359436610828808581561501538061191245025644804720582686984377469365471912678842623646440728547688951754904942134736509684693655953873007879513920266737117057412803870559288729734795068742119768705041824040730164142501146503673119060921371484630918727393825599986007647719432301140464700134403427210843066801364403707579595782783145596060480427716215074923219358344911557392095280853472605497199058974732893122635926738163337458876430777301783949913101830965251552284748638663713818306152124120273624174879228420140039768190441800387925606404602211316041667458677250485754773486371721169518466959380465511788025956757878485902556334475632575507590994965085154919704392243252082905852406653531288619573346063374222749894917148825301578121964302043165584756284754655113570244395018284945009796168172659232310695157400968274614982908460367474184003891942128159810591133270911022629267992913473993518906024322131789815655309728499723124071018764964981969514602654699029943942188800710912640772441771114913521322617849171068895727138559590354599730534041972241779168184754555939700305997676396703444493292451621614053226912083824378391095065045259691479366698829755791346536659925165904691676194723054035439771206091757601033607884968815041781757840510573866243716622217955992549173600999927707169707428622169456318397015098559407838942212845852866818687587867273813904932470794357158053620347718069793701657059559694488237190567705625174426051261261056302704504670315240296432670130500635433813614577030080983679408947179867471280442740264171649152194570225598433381310211055374221723116083608336428315157359762921532748036436322235547715591613996932412236793488761751220053925767697269855541409145181131899022178759634610807792096649249571914983675918081230460910632625862404665423788706352332082220909869974737543466358344596587111305413105426782035615628532128366953983907495731900750596230252324018035142536082120679151310928839389934057465520504238111057487787308172647320135068735823590277600615357873959502617355227072735051276887877129511774583945755704915357517264442001189398578485373212442312952255385816052986768483094667708773273387136866891543758340270809738479400052456283514276980449568445765374171572944293959564771436308769735184018542579856708305548011295289196222647170034887812749668078534459265619216793299322507891103821393583242413013402249405490680160735126490176559450384169865243279861203960560622818204963928029496536383760038926270243557191839656496740576199573092513388620088915588752516792553236962899427480413451945756872078958751905079214158531026475544818831737394923563113994951676229996801409383696578368312500929832090302884726710991589355366824824916534986317604881683500377230373524875961921848283217432102736543488218775918105077667302670958616138423091636153099963425316606745511044160322217276661491922509720213011345553204581719531842536647903358579578916202572825805042084370903678674702272591250980779207888990408252223526942391461701360622866509317702159046216702962327627760395184800745001786643579549430825691432560391678155286882655356467564614959675887118114677439162512689368143013802543633383783317268666115961857531621638052680627663864941732392624046026209422454588123037241947122789758210479165672094520952912179174214387062692855557324376549246912324056771425941535469481494746510568870287296402459861534681663073962420797917019372036135160696048770861383690148523130527815838129229342819635258641738837974187943524688763436458349928665088611481271210793447902861658909427252376346563619712473789310240454712156024791705430595577521764029279168775572259420459509688710838020073752911664747822676735858446672153363114829050159885204384644615696569921217523526653301306254308972955438866259399483904296804825256920187134672020020143489160912912277775117381274336473213736211298600073838409561647995863898346179391838844208637010158497787239291853139577032286781140977096360299775061377598089353138700496216111952272199262652294286695153412141072081331679219888824967309203399494242077384454844250262934776645637994361078206429638232859553496821588380974631045212018715756941916117148172531764803285084452111057539946849180706822002760872398063965524193718712865851311648326005348857412027012252532461207877282469686375683022894511775744162081086176575885826344766227553438173999999981523926427138980889616753240171334040281558307646352015961194340594581079962774462664262217300750267276884140761921335965504891557801572117692728617222112294748156569908053899206850305722343185945676542985285537599615309522651243288139660715317122732422023672822892780902351120630909599848972104629866349597526415670580521257083026170526574189483862817804366032768240646559968179925851132698195639676999687267634859723011261487516426516016310059709504324281618870717637677322721671012047736888101688179504274083141976253579848548749331263460406579795175064228796098906066050850592701034824130349275995263262295551005872957231297826580722499261564268259725457170392790095918448294596415972809999044625849051151297183195600005376744769452811413361072874757636779594742890001981379568284473251218489383956008276637300324738601365716373544186288852719509616575658979670420246041198655449684621489150663211189219440068394977908862197617646867661516787275115273205799612113586881920042099655276761638437678654985498588490647237108116616626339612449625533351834058080420208891111995035839750793007055377500550167182351158661269887303055704549280265288043989582251527696962300348748669252818324917391520346663555349970576245354856175775487367546260862380605932958781246296310110367894380133396814042012132792787240137738917886154617294048659203581123093869458840067079949165927516789345262110703754652956701795667409502139292480550043340151179598795961204105290169523504143335070951693143946980781510778832941360682642072768776919028449130124756771880271028696384272614567594248362230591231931981959351146230861873744205213002024038384218118535073260103572069117299836617093225496603784441042712915962429713317459100645385733774777344333947374402965697603210400071496659185422427875015830644805675298711773822974582111032594548402177360959702390340243793869792202288516822921539341265647263680491005492710770469748884807769949874305883924511379725052207919802754089102006032498392411931419500456800495979049788865530988044410997094695740829836145768460601553901104589947805523663402805272166501802018729401228140477758493173100165364322733198027821041141883040045246534716638047761838405421764861677356908305251567605426812906884714728938393588569067325639743498594281132018145609020954922663370968524618547619890221855385471346173281497563444663623998957400426167488731675452882226569336102745123096654662652741092933174701246812506290232616709969524493214929668837460474935314302386098346519305475071234893512339285809379643678003440008276053084528860830217050321421446178485723292417722701391217037546404597084125370165083961820772192180352956133868703721180587806920849502466751044879192121789319081337788192845652943688199547916702867234442663052336231997671168677469748090105527589225712666058087562690508002242034664020071798073540574884518089548834886727271735637256132485754593001401554602374523932589883357165245421583002009271137603402643974836842871364431630440589366036360579884868654977867696007530400616929103822495544652693581521280183784055390632403491856988429647974626838322259149729336388091609906431845010206770755398469223814981822535619553126825487672210451060485020711379141230392032669687983737940516601038449739720906797687776998168931251857911022015921429522445241956627156193446626015342668180879343397222227264677515677150778153691182191508699690364097366188447688839383558796163131650080771593744868267138456686515990735337510604847011123821900665928703146773138480637999948705489929756200713253031719706147503864987964682940031055130264055152078566070657663073149079937573758021030290210027942741583292153979275020781974300911535391154009855309235602621440335768484987958579413156674670642969259838532315725403800899535095259727019406900048120368845879238914766032040444192159544230301166130771178603342537904669046871757634222103590359875313101666583143229776080039040385101545365572596943115644853823625313308406836314225826956883327768816760011117022826781404148732871188798092316860676301331441096424542883415313736888714010359848871106527852601425713007245408212110373744380757531355149309760932193720992119922974426156996410654827765237159895004293694882268534970965429549742909626222734672148551517075885016617079486849205203322928321432180560123410073826584564125699714920942101769882316129318656421526066085474733774590249565757017361389060817014282481119970149094289271393556840064527979954540368700586348316682849104904538458057802094481239228377781825841705720206150808870629663420199939154454596106508547262233808203441708942160993100948646806779046114328124925039527142074948081970315820875467525539935825598407529349739291282011536415914682407760430419968066610360990614454535023109156432426479586325410456682084170031829053059898749704213550052258972848346507157425663646083825228308533848342597223186924589014812317665553188545494182345398902830811884500790295345908444022259061217193381610902116422046910004575586874588017100033356312167432345875196231466870471337720165117915837819895708088990870974261025219491196141584710626699880310000584039146634977159694217122710155818156097027707055549937277774122435709425461271666294612462346959515849155375303979719029975278921981508884766776848292728171149974676059760965334231355523537545068432773286576590821375632703359616757810124869551145644289037206325803121331457115458975929567857037894519020549075273117315418415405776672827449885923459053282908308125685431171924859469419881660812898129506318037248001390056570833849803358805245992878376624877377710021370472345871989474337307392538060066764467166769833716001806026287809059114808072176414280566312492831667581275031545737176035712351334353023085211557982418594603703513726482695292335068699878029023817730440720179272294621714513247861202370190859115654043780839283589560613343894371889908073190938630920599222171460858055791326590374248653290332780974619921641059518985765994727097861041767715834632821418868656385210134784011456372677882009810740210993872544265521278101891758200258882256451614631982509090436289579507126256216042558729929962591783728482825176466864500625865066612841398735618514513619180399773640158926078648729058755467372389773421069795915555706812133118580436378378751504783045195094111058908842364752296070158001406645021348563412110380244734507579062433394650370124759911781851578985291220004716270244357139940045862901992039466268603461653305791443021688450180543209944249356244802174224346997418055456681504256076728809281123518638812030922128722793881992242178608004622723370253546091227797844260755685049382213624274323912215573325593831790823367653720789448979194969019926858215482578410847790039538691573782168519091282215370943419839028685697997318609646521492086705907868901882979052136775549451732469641371625469882376553010792458832889805048935849410557473086119448372010842133867023814412696104650257514736403798232416505619167952703098224121501123517688253328676360868440727926237765344834772834107022921584711038064048903779634850064230663775553019106471554050544835557818437060742855740820259440946397372611049666253598116327211176649330623979278900953890761060152850362343768577173448164989151859174614319861385810564335317368852351054339376587416924626528069139874566150993989733955442843989262759539332758671566637677461608014858103200730888289259119718164866607608551389455924882344197923947818062138377488510299549229803296920242624271734310939787610694384231051453673047226011899947485652944505990192632067151586565748156543220012987093157714774920357075846909892348237084586530728440321366140772416381154820693414915353831711020331905058044829507840236085528851760375744884699215734941025142242291396413393305516147044640497118319970493327258679758977479160151695375354737960945393853185729210602933945278125451807880250426296614738527281512089426888853394427501230876184445903838827763404183322841910877804659689519353984458293258397126289658501290955272981863907268052846373113659333751581387755508521803204286639467944994892343935584145941503216781565573629684485886298109490063741505149824297924873610433689933705424722270587903259582856386413960307024066172085928833157051563891093764671979403062069672772341509525681410322942455959431233020854710328014641070304380047227145675318403391490680171054281975203000936940241154267140787898819790845802843520610462261383522671451655422279281652715709288125603765884705593674100108901948617458124887021693808006210588831131639087216252963260503841141007633344624058693453949883326333685814440927397536443623320501906807964125289584758365356768695184455720972803850904326317374364365766095759948499636593422250013775197423454492852898244284065169279266581388901596730743506862855811044321125799079563436848892862920255793681813194421056769523571739289302682501442348878856395826911890432072907310697367046069027594215048474723348873216211382564524374664401969863853341629860468741863967426259092868850316066286790562668301011317468855776160020424939247900986955855078984387109349746474058189856117602468145031758007557654355489497837082312978604492851813638551449832516158254206593222712380606638160165450162892069951437006648565194586461706156117821222634360491787513521717078323159083281158539894874489801602863296597503041656569111177357535508526662688757577914643625126770840190448109751572334882637872747045536016567691383076917543405456757854531517643952660666373247461124849924604416617015043371987322110426344592106941008710338340377840372790377044688603768541660733329220989712853744927452642492566871488007513705811644891336856065438024242054078431075538104331283901825603717227532610500842559240924238471699412381450209739526902841626033800351153290475644335202922789443921754529614207505034830822042221248094099759737890902804500826728864467014923970625552329999932542333486304022798256337169055902362754013663701083793107718820648684801606680970058940792088967603754878328611760175279022134632395529661001969560903544409567848123600516490079069856271436270410541080974737839629966517231321267699056790347657965304044227882381063478419834182714874769434094294009277936066628626173221405244930359014027560768878560938249208814827488289984979134894977031505398073078677437484013865547988367711205809784174841414508759898682749351450576078783145184458277775919824636198558965792348257938717652474240078688962739366625398988222146432384243017992445859059165848854125624218846426344370088460171222749492202271558652546770343225894996518612760549555518731209616146831871885884883776387798788904132729938249016435548814901109583197723023256130361980344298586344800392504867668864034712403729312085153061626100050831831070894643684189582379788330494260860660031624216404531909645979486611900940672984975227125429786941882660595755428479123806049709791979786083259301611745600077456438337629084889122736354528267721416457680839138063531246132728501490212493657162390933549928489706133827520446892053348060537410072886950940685142046972383916255615054356076885251443114629073607096738123538607932720945807703162462399504179961950286864153317176786440097964212093109606019417002860080049761463117268504618208417972870947977645155444067644705780524914418772332554162738943476681908640862780232015591292464260029606211323498188133216928533544330278073510180138440948785419185877195461061504125342193858082729627085984945221251049159404985717400804615028470533946272087829320128904101797401160587648734419438848695762571981762269349428892871284270459533805984655624674082917568249439621486897105042783611875498148264470823099983013853306239681615513620372042287270254768383784890455843181967917325702210373519277195937586631465438253671719481533953491427954250432476133637811911713352894499459110981109929048065170731364244323451063282426503638563470246553619402378018735516738241032282936757774360385897757623722684522578393737795008140551986495272685316220873078785712143965982766158688083731921306188174795018897827040189868578110741559958620731275087645881657816362652849145587828341833006466848743722539111043948069960751870693389496729903891317187364321109603285851523370598263963752825171833880654858180425549499043536722651791030819880777294680651644841836774997562065898182711626846258886027290678489697615601237286609197400520505549903163207825713675877464294374398592689869506665067620823556066847325265229804130447441180733613372355459561665767714489815569276841945018004471987822793568638325433436194645872756289094454054012033703903761645995726484973955529736657473901098665085004568850100805119481156245099288433135876315665407087698760531546527994426814926905668147364305076188103456241030090386404275797849398460118965599304820434278707790184759363444358490323341890921188007826933227046521474000510345474618230321199773815700845946508732520135838160659372904842091918430490484729090271481825457765136100326291230891489425138200475493413357004437798229073653286809936696744338520876965108450629253392226887880003863128201171701270117125289247152089001082594294441431039875248976382150869915072819691557805747734291937695976788840477161659361969463998086846895532373228662827832181443661568255808917878278827425008965606729945044718680073559217466182232621429393950535466555819900639183677115604310994230000368256681321743608991196704913178125543692485152112392127181552763495755509291414956187862897568890111436746219953346155044556022630466497267403516766318102101482340050373305689100923908224867507352231716849843372835573147117780442170203780849333455448900411562417488913912362248398920590053591997646286099069177102510369188326742580190506214456999812282106714409218566613371868129241378384868087298011138395323984070635534541334320175022406169465211082553019328287278433622782015461659097846195219625378038660878219982364227117207486688327368819597119136982787578737386694467089173805297488103595316573888138850285115622669915978743460104653184193662509643514768137056023789052501890611235581635146681093816121541981887173228090316657790426788369772101469461768630239723932579490742388391471559092176912816639239304610939172719608039192665861388281547329007630784530875231112121983364246294994638887491097954805210785765537293631956958948449763598056891816802414058538871196905064820457220791075028602296000900805566203669575375794817263729901034230441610592378624062433082943883591928586434328166502484548019631748952033180044768953584033307789773811447461266223096724875286675251132224730345080673234071935009627577113162230802304386862641769189468807261855503540402303780291454327106632613494300101541504512823902879454691143282615185452683699000748143680035525479237254881401147495413477967326042367849022072547988681015278824154827701129705540930501189704083819904723961414021729219391134031380978780442766346704937701367546889162730268213870725277807265268202754882998793430334977068125034190376133388712998015323921049408156850210208636401352436195826446103778418082582408296350396500041516727279297936854123046816872837789055013235558292446869640792375456737818788375957176414821332056148174385640308046598602247991559232708158378965043972516149094969180037134776031224301014975349431370904041226162716144527924235089787065252270479116684533679475546535518294404835099219408319529592831253748273930197135176678300674529427205588943893046444335759886009926548926381047369342701559871064669387445931480502471747195951057693244454816661457839103992760895417870113527159561179602698082298209119700925820354467178612516389391809547886366711983546117539668577602429571173779421947297128621805807152365664889613723686445498638386563574669974924512162830386740709037058702706588375577358973263230316795316586217225119784343099366418150904249324886953792562209365107037113397624152996654078396378278805792780993863066833991563837389202755533382328941585972387435666338172856660708595735625100353448299572153862349185203696425658220240852151482032415664088849016906173436565178243534229417180425866508950821202171866009546146297631002339804191724495756378279756536140629029512486720980296100722980452834528750073334179301522103968707577091137642823840719193736671016298906795652741317220384622099694195463667629235549665947254211347114625696942119046106443129434863550648616189181593632992504791213659919635488830427144054746645059762167348198478524571814782054510093589805850413096664371303868664110315638765394516244762732571577386431723346058823465500113280705489117270097668005940880119329329612717660264691427513047724312968411232000268207248268917103011001148786576916101621157397638140783130260732105440292671063351156685135947784015080448764712742609226135518974679349095277982809366004494037778646542231675994087528994990135707519356868571922476850761574300949998880970701538399228742989545861218411321702497898884637042055866416103713478613157077988193025283307592934550459990760848325956265540518696929813911992486704192667968426215818345167083694244983211932761790720071511472706662150922137090778069845287458988701985089168400812864225664775674434344325249558751220091252269270447484178636794992985250876719217703956874252398637752732001677315200216053400929595944485668749109169260066987936888961443268083061623191312155202194738198800361611094621252828866671546631394930569090536342183541719239411013617089135389069515732664943808524327031422762427903463924732141796720978403047280892878811547869152474403509757515557807581249715295139588803317797773494892524326619654721071815329077561738411826803205837722974099324378312286402022017039527836151872179736160162458913414905360839390801087762840001468401015994496107958709276504034455156560939628527902019848302815652607282306418968056153943654446519457662398433295792926612454544123128206834965917566304890456663284047464673128157016823359105563674881912564640327355676213299469951069324567179656248790464590679498380959045835227628768688324589618623991198536399307781723406071794102809529553769930931336825423448018045083925583308283513320548044224668840553192992642618884866029476114693066684117911945049373590501411340700003995325904914741370397645945786729773885958528750392737983058290487151009914174018089169896444559449753446551848694928730152384995971472190603373243260322081315244926249906698092178585711941109838595364873983904643307151706589345853372767534165797369382618987188906120028000878786602458726638625748281097261041230485453379370428766828972685711428413154677729514718817949717321533383409197310690953569460678692879054375953246279043623830162473254895205844009278059564492113353656854116271178417636901987803241865081663305014501763850213401916662926468611508916715508617913886070342257345368036815772755495660200395449301599575344749349316026823582968580614154689599440323666689342617895327292591347321651804683267666321802907394001274788147404593957299044591265688805791899994358819536397284911620008636027800064610060119995306553435407450487475419540063356959615612316522845167552279098278194329186914270290161118607002655675369335642404095687897641395267448574796620274095559799893557611738231710299350433670145898713879439933898981450012604863767226299801396574682642951267571132362411489938538336625654051113410019920449603300076554541246828101774484327597830073473069910088458085626738495381314521802260544276325652420332744517646835255191716568454981735546730268512467768557781636645429105353358297250572676745310068148583472675967510713732006591363182480028066112203163651769155578277184815802431611050075914998796784355138392467013554656201235764264326215174547088913593063086777685712929887992330523320384764371479892675109227697362358284439310439864153608216140944823393803871896280440374621322069763809908824221906290701681991332868102273224556941780219063000408112042380677296154754525451822047785851097945368264067818509096194316369701396714009391777400120756022886956741323842050197271867494720747593172940490103178266650084902797809934755722047390813673220682916967964999248731164574137606644460853350683657727919928383051223918619173819875237436665055282579307166086873184263435934583897256834331309293040007417746833346553953213699980897886110098246802624126234036229077126758138560208236611923785797498147028496637064636684124466260220375798782079498891592789820353698508035481882993124621055199917305727067774762909305156791858999811578696608973997848751243530821388472880861200170296653288171679369476732697997552641746326286459956083802053971429499882029266928040388801137738307653540119419464861004340316091348665479594473831700180281427877669164619355687014783527016386890588274132975011163973516443609913729691326129198697597091671055711013274407848193583284790817306378731298108206494326459019495100019337989366416073775207774132860775400157967278343564700692538143197385767961718623764326394470816845659134754083125912049350663101041109870199551141561846172816024272391064257228562570877762679707821707896560171592127392511054077028358058222301192213944624193989127678434453511978163194357373270967417529239752445289393224124712692668144178548555642797812661902837098660212619063942603817913951196237971389125151213492378744963803749430426879293608192579922982229955229067359180026157579412423668101958175803896496763153870542026793086454565928768411791419437317633133479909074722115790087873446654403986091137519330946564440396490140699631507654046914921549056362107398902180298555675275594229877402722830927141134864882340883145107799686213807924789450027766284364037879223429780638248025961486981647687550138107188254384633122973124751729344523465862808467882620527736530133136332347473285001536313839757405531374262922341378964444698007589013657701824308569163521176103173289553971625026297707238708566143190424549933409038780942538439217884023258264227427641703990019805493359206556459941084685272613151518526191815371127195844911722339988423853900295626020194054936895890290673098426112457385639741792257873067691111560252404066168605987378730040753568544734395762464748394965967678682043095257553842645631013010011527146728294740552723029497127001264944425782719505419052040479837557184699206111105901190475642947288470259010748458991974751450354397247461295720451010207312845270609131500779864018268158764047734740233180797426649050562923472460907975509297809587191147506145638971046557009758967607351944731447967550763883643484724440086048810423720255497280992746477180943628517218740328457510160245653079241654731876171594256206652081140510767267612543782203645656970384927344234371877020270720266587524193838905489015535823931486196524293631360638484794797571117018200124320505268247126460739150399606817022789314015394378748799525988121078617193083770565175164651291960570592358801647092388104108959183912217399133886159052868027687554440037513394480589475439375206519796803102372305925892197896391564265061390059305368077218655657232208893132421646502442153265914329929812376993453942512321277628369806413656713710854207236847130561942380685815024412934122731888391316156305304206109269035362321305774180183547541466292511436593781344515608921886495085023749640419326500775057303843268397779984955245341765868490851408075408518225613379466900439216193140159337046319405388368337927916728044866708619237091813871453958112253701193293955406847136823725326779618019778861714120278032711890492507160281194475036093117327716804138109111812084912094085004990836325373270358548388973927822731378648829331724179649377969574574777292313769373079376497870802944919862826535645470766141861664806499660625206260704896914811225285390720987828926189176884561036231678701118942438505556103497745632191899644497532677721067514378819064891165066550194870172605434454980077128348390997301211156574332654314799255277443644648730747275559223520651064010493704910647648075081213732529195249818211265561493682507168661871387208216446924177286974132213815595581825517724440499735087237270061040257710649148364778862566458937761976939474630787604020085377416896930939639133412113844332369152176569628204453770872104072898670048129076508405079119456570647143610075725879723060242002935803335496022728650778080383322680362925028610284816793159862815406760412425332055955449109875241210332446043407893434406599965543018963268782273488965856330506539495287370072549930404113551748499900534949991299657484258531274248375426825957690773929709664355545751146533952363100377179569071152574056417549766691084811694705599777262089646071788096297483225345734221641268684565646925858275785416599150222490059130535437868169788269288133927436902156022909670564533710416224673249710933333750477571453274033372449009148568809239219500506659513192543178178208776479257218411816077018694146044561078554332488005885270740329722114022465626250771734208623192056312749304404195285204693811372929858754964661300445956437977371974760834143511819392616718300111508806568951873301079322305170242395588987008654605306924455296397108620533880026842450022952360303567360460856895568716356335365975979612719853636529873817829178205340062922538070457467605557132578044597724742488299325458455717139747998470680514097644856670673881929260056484796960512192426970614788798569967806412620598920751132561254614802023057631744306742844197657751686926950962315125868972242955506651627579140415164484506197072874566859867094156750424258305763739969766368857932417220252856330323471207716309409982759726691347056613063434213190392893197899101578946172011606890831980048587628624037804180459797842809028206554419152945180027798458944838856286922293315487705726109549504886042661847318496850957255877911752657931122433543867296161224601986622920217370637149235634910339434672171370117560552339445683734433090552441334322602627475513395239414260999346217707254502896204218619044747649248388572952862074408630294599055895875807229169038715400231503015726887583374012550152038527113520214819461335718461513886120544696525388355373725296914039036111272419428982710484359391287931994078070614268234995960338524768554043369856441113694705480612540565385993779330430934417752661357383180712581169864528961800558384884090039285817247579756736509746387734829892871061910431241328117524510040135113688094936241325193271228788247975650046701832012742296441668718728163753607155975909424973585541056644828481857564164511450855870397519175942436128815504088889031164092304559958793774777820059535014703058155422508609413577322702577171519499093916393659932690310238791812402765634918848670805799114798437735133570437886853870319876347614763519773923462109777498720754340911203676833906169459975530297693374484719990295219963147945616139134932720556164655490008484189978489881727707665117191087125810748672055738647558744823733200840675313031915937074677923862892377966569580366617743100547860928397663280518450153968749192566522314450186067461588196550744980225615464262755662764975024576057387429512148235426771550029822065593086813295447824909016966478780329379177500018128116707153821262118471396875117871741401816582109564659269236432725526609490157560086768413183392384385731367347499741262629221147735104419519715634224217627569874757611665949424514261724464690948031714787677610028384360180518992264451999658374356580435151589815316615380495538022216997798423174095513380402126632043711119425871978030612096062897769780639243729175541916237900957837887858169173419711424570982737795803541187654713277649940742366881622304136232688068761030872790545299156477695048956161202352531303497975874265251033250077556204460707927395429845823125449680977879501236404686975139540346670524454301917320305722070801399409210083549953520412842640153719423778056855324297147205700015955514559729605721802302175926379769258673022753248584519825393743209521070536100607139003258686602485509428685861592005458775906449038568941839671399465044830533814712169609917870741212084295231892954928092207150138891892432198571795507734837675324340999535335720890074200772264020740533802839342319525962947639077738631362129826716636697398409592093003810790416412004725005889031258250746469760986540392459856923962023618157874754263161294645609093182740300211080754733550743720797845660613116479237348670946467330735039692083561653208517286657952256929507967182702773936909685768733845985534104887627065993814158355768320966184628056241348312816635738274813546857501853414874182294980685128047491655232697918394618009913077042967884897800873125158359961320276961182315628374327196680391035710201230072150857510612048658684007762299587683497905886636591928355578878890116838131306664987024167342384691561727971099419582090906390879444833819205405593275891344239957692652305810666411778336828410865396681837519270194581239511592691698289757363832655454990437810812765676669060776909197104165556530434543891614925426244788949391236449311965957434795175711044165671836375607028789787229763602304885761756610603417643533167220994768145357545919138524572102648364668673900575010112229042608967447211739556632095327927828153638369348387849335589613320728165499112687079784425736713285673924720713946830587312647829307084522925266707458932358349162467328798615006917112578969487876037563636592570431231659014675336828937607076412454660183212133659474328934256236391867693112282219293375192687670515233062013060589885776475000065626543992652170264972842983978277877834387814881162943383876738612536292675553046156546811487690049165540529311735602859652280112431652198088488347650679768728676691818734367907968336008658087705965096468418618087841083229024218891931625818869576656933634882196680057638627158745238172627589609676606998572168237510553414633115967583109826453901186583253851009574426795603541536766028145641352134974078077102684413535574514938202535145220009729297582391674539859649348063699034936622700570141856749314589297281494944421018237745500109271330120303361169320706935300659861909119687963602296704484780496990782055734298025009296068933878377399868064802511993475775970753180511960383763869404027456559123254744417154696661588580504079689874223840685345126825638755490047475424309968001830360387369820507225653638374556409892630465071578050341414365100774596362990188010629978378689711427635518808715940342912321336078408151838417950396232833251298870297646564166128319281505914978761896074840931384216956361725117291144007480596300785011238079862176765131002005827041265131562001956895734890677899866882846957425595282990267175690941220585978969341064351741701963998971721102782645498154833784060542935844828369466421030271722626912183349004660084134325957861965177641122273771067567437179958098398338506171395320864260201951396457855677091983139269607583127459566209134054986985543204255333268430963627440848180480306668558852145516680081253185662586323298438220730893423606231704212305032627020515935020301958891975231426859297677299571429828162247720416083055637221033468523680422256222608417015805767203031830272072892590291842114684433449281281114839914734167276988620874139787884039461632581581438819072405892643899617530855242478699878699233841615207947231701466020792403796202147202654461835608982309058256322370878344194261732825821795236985046051770020237044490600831769887258437038732530163431226529579473710525386039129219107412562523109502450809614953515560442210297677466554206443939704669627016671880740729930446326468511030542265323060677649597831455418596560210653421253975749790948072958500694073265932552523774850842213343062516243904296756288509674212019397582813817085079909640458643166624785078333940109576052249231700641357814462873185353474848996762093412048710216578065314259072724712297226852184335238333062499859179056472820284095596896192966235749627306905881664238551274370046730478924867915511481377892232157843072224832945044343616462570566572465002933336892655017580192830866708400099078893972858585708549254749683460023613414790117260624067023658265031556969304141367252424253711029434513293271859642175240000189625303954901291968227709709029677613159785492417982778168638204548367948036941449375247255775014287859601397533185073893865950046905919504624203404123435193570388227237136565102551669613346090908665981399178796821655756846547833055970285978510246878608405242249704149071918651619486974326244394136138947957680814204103461469391073330618462485876682500485394729372077099419378195989491739623008417455029002940012179628693682000432655266953161115213221737632725323734186404956530851502193167298524064014456840657616785972147075050063405082880667251595241861489415539225078885256737412561617190586404393338049758372914783576856922632785449993591792575116495441539319769049143523656555954808703766241936456331291993965451867794832216402245792770492438208924194086148840393413284623142723308724922733144332828670485288560094443812706562855483763647844145592093360036175694959878483922364914728277270997645879386809571453273933694158252756235699684375806340788935904094745753652253567543231412378601703339401595353062836476707235021295471097025509519038215623967683410247580867140625178189326499510182573764326777784245870850305892171036218416111074059481152216214197404486367175657024543876795472715044910944459353106031599929342139886502651503027773405972644934584189954183858832725836717187838346612326737487496869383941597330510592544736161986301001570195963481591811707361483648349246318584674705367409780812085402508991711908417504794119332368364282405498123529398720887599203026526830765614112837669175826904713101599235520632827884658800740077099673335373872085959658721525100217965951730296914373334828508287594082043982321657709663182130560134989582999451604333534200678997688319628255692292785765904378061249826239230417904694369932668416417342069024746166291141419632874140167993856475960995475746496144989265340647649956680223962362777463825356429700645603290832604430511286543003799896083670634511712727087206197671879706779417358335553998464493940404802870458081970681837954141369507895208568615675495600676728719891895438645297231588515812006770465435553581136654887015329031331854402483707247817127160984874624873535562219993332985436458184790673968280394488738190569612727230218426345284720092801497655013649407847576726007018263888256074144137806538912154964083070334063215334377876846111345689573767560080593872823601146952293255198404991870191632030992846978439170844414980939338639587246755495128843546662388755346153821579165912455726258126344723627451034055577001868453582289104898658111039076216862880014085592242510187198818822974197994985710468861153310571949266001645498534846756603095692095122988746900186991963646276032316590130719341641998341880124567423445345209354953607050711002490965040556914846768401546834142986298607688529915776695777620872017498824625145841815762944196587166214614242295290106264103003918256864344855483980166163445233401845241763503106710819083624452165254203465894173084549782706572091889293861108793956340261229487595705354348349831121808221526887742610313261977172259776760494074461367468174520442531746902349215656313686134138201635376214458935732544952774898982037254709875206096552329569291788549903293878118530256034732653305019246201896258099731793854885639728931084971713830143946451150685549801219749122768149280309379493253518711055011601288733894296068948690167908716633877184657959115598534222438437099471182633782435401522916848228608377391208430984165376311339458560899661588420033149966717343203918144018581076422662248850305367585123183564514539559452924025171037903950723255346698264551443494440605770389436410522678416332922250185812461423188846390983586947320717150366850442480727394172148403217987491702891877151608945495225740602878778610366574461188417429271474834096253538138670894651117200255870366067204869601584579631559338914432592421435982896318675154467023708518068037649817189651770469032908341263461696521912788283577963951737410275349428937385668585296063209425071136164920104513251833667503744488037531222676313430098525071367771164248616452811479868931443280031235585449832227962982306134903758519912689785272023386385878825762186787751462956817904712566870914844223005011538808494169390573838186338466243003685363293250113247325040002965392620262233584099786447591114964495470931976913441247236890693361484199991494307713557092797590783890315214793541869927571617126439841754093843850274035010284255424184806973235836579343113204516056896237924099956408626806524488900886447786898827546794465049283065706245897947418625465868752716969788241088144550146107178987816107902068177040413637773504020508880379098421141784831425010561676934591902014518835244571223084905177805035213571873479178856887478923094936704167146240407754929873937322549676047192770795148878014120813638752135841647649696330702578358157534120831107202418663675537587579326390399631260574411900161131140748057278911801518385220487817633316809930871362442073146329359841138433508953675641520078325708838122863785767241781894069541464730281224388226876315475620998285827557893761202875147620029838799723863077570691046496148934163994322116077452240934924195063433729676140567732917590898031842394519021175293885777890210177572955241642604508445087194938547204822472673379902659896679401731358868090018667691319350441849265676421656078684341853681483252953568974454038548511484516759365919327489391265386158882666823796493347830062323369706111663472920837595029466986606272363861656777064275018796339806114497084554192317831763493486415262156546409391473185921187961274552871003620674727216249175863365422528975648866796635095125317024142288120498570021046970094148792893165725034747802271001324106482999316767604285507731870710001702560623861670301992794292496537421485519502546931556239366915612975582783437313475410340905178594688536402555620463915185020989856353813683096640141589977422304467833571339671765693440834815153547033083101501270798704667518951315851243455689159025573283012628998562836757086596366517194230152253938499959465488598482436027589029616413274665575203744741237432906325508204672464583451298037355006168700380848364315615080419356563720489772133327890141462058074225651997234901404797283430753715958428836926882595777332597817781309957467837319759414605376101150931487608974247748670652617026584792018796277690749161708153772088675627340583401194599089791741392378965851263089210330141502368739821908938752431170085744391538733451402786991338966878029009086332402350198141581866283854509875601021389954059152727488541447492851149854339375111304526001786375121849636886714046231518411556501017279047255928457360292403429471602686175206182457130191630243391693698496421438578516786143167422287051182361704871612462812920233682831073883083715159283843264257326215738751368075439220425392606240805869529136198254564383828636045393370349865281829634663335401230374450096569233480302125897159816021594645357247756138305352490697567927537790106048520732896850289182330217646797172531692595431108062247280259549943268934218504459655764095870683528236892775792472328290942867416093040446348460422727907155713491325934900826874887916030332538365180820146521053530177895516381400528698085531346094892233676961066776971819891934064318411380407147548767516277326733130165323027434502313787423078200433726833644863312968369445121912781365609133825330808844434773919273520430746750359191344690737701965682015301992652467997793898036004082089892952088880599192832336591766199919994042380140454854069566231171402113904495945236473822086216708727143974537565048430545449345322236618005731242888574602506236172482156313357981113455535376751723422771064707545350058929102753911745227621722087850886867245298706993426065141194674148343861889925000353598943318846309702337699432822941490677720016760002681751376094537306814608201891845044328413531561168771316078557405209657383301250301086982871791401374630224731901453915829187537615452629685891980619318852642462385753064604443361782727634059313006530241598135908537513016472116566530974544333925171405375519290162188531680744244546100272488607535009096022921193818259655133728783275263030320150617011442453624437582714856284323291172989245777455208399821660058514339131200746804045661297213002949212651713118672903259793406832257171910893697949959249336334597252268271156984040150002860498107801520586228694991296058996842312508333483780335763462937331363396957365923543509877565521329393482625623672016946885363789616916934943045247448778627697117159834480139479293222835277015654641147184678551441862128545687248463256534550809141428822374988839145153455120675324940464381899715589228067832190800160417875598122528269763437047064816255335731498147870246293253946305842669988913633206986346982426205113868141225122765145277800107366195627333333878846196922748796462657107131177498359799565992612355584481471691932015666312028516128746530066673085821230908480856874577949666318268550563192255837906223184862902810442464294066601798846002877503632228882617650464878312955412710194283089864776424546185290899014437204465341072987943487647707156296265379781410787591912365650368861486595166324121680827954497504626404673355487648290373511753502051025460408517879691014379905482023487138082898594432916095623990753899396834880511613580279375571635790309829516970028740761742420255343012111151693694998392062882015038316448663869966828374391517193261844759669123785806392248119479915446313359750748585563817056171289051793091102958974016898562536992324937669167123957421694848487868533533689600360250073107219607830125780345777610535025349471584236355888963925931208787712825445905730137223168956218999145166615048252772395404285153147634833268159891237639644233836009583416440499856917088655504611736618498434224922219699216153638937808576728814942988791474019527064874599438828025344998546226729242685955258247221286003522885217218165158242061101842060086356643641856250332261031041618384207912486706522108252123160348791381045574950753336296853169475752133650945655265594795032954755290967694080253153078423762038023586319698302825785845063021272897706919883692811511610777385005953283322446163872206094008264397619429031096252985024219222021045913168189523106650587701835529883553242442744640669919180302197951353713626281624657998866681041743936418511114690305793048511101947026613798126789936639596560262431364419162545206548061172550783896284279942499008765838087321406939944288212326973197525808989265444080686783653800826487938469213609654429177405634540962569405898254289713912984845004436059013358682815216383746858648926265875337716915454614479195503042611364767028282941717783059311117534473466491671507143652097368370371286175956726719745672709350866564973352862606637076386565762909882642303431092574709704119656344773040651847911373570764969562834299749957974334822551331751151415570172770675081691036732673461818934765914337949896067524270090975625802439916775214003679933463273621025917345894174592700909765531913202930275899476177590297360974753480642785829619710800359736835470412725664287006146673352706062709781939029045490139968412734693255299713951304099747463223773434892180186054894431592456989515735422055618062045313957777537913949366579141888874147814291080023523201223892739610942108552923759356604053953644085021946244470424268284299661934991843542378153577237493961217501888408861155361616305292290311656734987131761976354020313106250957254969036341142154214645792745305436948981600817358559737852779714111945463009804245803924763598026303809991871324916625383483717669855214144741871494930408437552333299820122051030379079078036478697637162387929359525153681692684166809537357852153171874868843051167708493581222023807531369731903322496096333598528355157394956161160132652180338256157496958067494774239336292820216782072111275582327881771183654100044863152914850827722628891764321508459311477635904792247470392984344548058782670894049760605955020906440777360319340523231083187308398577604827728611496677525028042313632587974034419524350581227042198356956357115906575968716135121820269847916931626165328544727335097825829828621573216612627002307753310759483701332556310349140969861394119013810967223525047526517550801685400776717252167342020400940638194150128706392603082799604032369472335881106334207747168476678515108441418164999209846430261225175859450132295382538526683922084470288203674254368472136793454594642073140593026587623724607488301815901650673765687380704256718698545089857210526973374340611098980032420234520544018586813094966509128369448913121582679808451180801372807590789507871162206324038512125676793822425144765645342453133142236384641174900122381287703549319719956403432538025699585151588748684947221555458573362660285041555982833394179801242023378712888081104082603172711365932662359820207890937921889284539797369638741892446115472738503815540962645106615080350734459783761183655425465469960429976055052445169125113996486312630737354411614572817690370383726372876851850251169019720063777401327687959443619103063123822165515078176533535580120212866631224306966550946522694563057864594013624135323877361574783767859739179530032901080326288605417767144878033649957077127442892789541756660915116099610184423434845217012454510241049326059376884520639354304223530936813577964293926665779463855687175118070594746915600568488946693536977592575875337451406443286483148230344354290821362939532323997930890703270214726325830285873818232486058007631375747223390540199472459419720498782423110848923896442013679470718109354416502594217720078150726255170643285248684608983066400819194089511414717089992658601987984981746184297647617760940448974278108393787297551226370169257257557273030562258746006841885572681045524388301474057717200793573631068816670114026394834145848351971610562615665718168081196926085756080815989026885803699662506602363986617943689875874169314588768970926300484686880402899892554739292597623393160443317929790533107762674381412148490311950444060738892903216142851688025494297575247897680494855571278923384809504811066459098655019662309315873825016577868626997444005473635214610013644878341176966202817883163323682293439463236459732595711229090011030847747406895888999349670678020617349315405220798881556414253276648975326256825989589377998855694139323385197471562352171020911564437949139741338377882201892461900144039585443347966495978163319380181756624977344366122835471978499896540128378437838493599648422368430016195185874936610733203968816580183109230684153868356992239392472127906781611615250805091569185203543230278010627745893238499049120239429284550616602626375944323406996591870504808482665207981038840778226990323973086060013485921115786223081385783734690622910346216217270206602230633173780948849512656697591660598551338381832969753910833411602253669908396826460251291115490970057838325447020907846585807929644611621865235911623586384722640952388792784126146032327416072789500621713580692604619786734096625189183283771849895635948997884757353023844139593436139611692598927405005643822855762745125669671297594676902018589038763745532616772002414733920151715711870844700790767524564418499138459446640316250002398941403495948398709706807130733106868167371320491434323025666890521636997139413518245485752087122902437357004914711081051270595383536566784459565097996529814188984573951523011056106708148081438972727072467375011882758207872132623888868977216939051821821940918789626524211599129263110522106337078741987812046097182314977725981218638492016857503731212503140660311978645504865701301979440022958095276529592397409125101802440041223381275950368415668318999121827749132262265710344897996588301200541896650633741314314836765377373617314622652870439361898146265077163178016313006401913910761186171307516575676243155433593162882392964325209467600762298731179308662846798199082283356335221074840505098660490923346132836178797806985289075071261237875139618194897801516766572911042817483119263867535672150612770391377106280081062039974599777016861608679227035242649572471763415488828562080469986810455565977915110944533640144926444977723195945658993019928976519742174227992133737966102240727675653577847067144009612681884753280136262723031410541377616479620513214829859212243529847617416566553964847020161067068510289584748816977256550916622292940096683867038108275843228263118163257088162117077819573168633439378550998905981469658110533164260583534110044159533696811364835905900585505605069479413537612456687162030325788657631045701710846118564147456802965591717239000391277615508576513309768185279330346039986145687215665128853425916703818518021817074916955246928408415240617040227885808023740210246556791829028793957821648533471145787303306117417288714095771269624967168116612206696153007074574963810669385617261237965145028823116353605312075654409160943495605350747153874144730050343320468924569583072165401106661565235952033264369502974534467784559490096624249346598316682563815842159007260888795019810487436744837932345356371709576879169516623248941721387059537009561820665008995966103130030220087962938325575015823484394936842490732507022516453505536735046601768047966462506336146875827542273745554515015071134571522385262296534993075700196034393662998527282087141614122553906210802914078311401647545614389903176600332612244617055869587792806597943700891936154898502699038432631134956324474549953076335186684273074551176067673392589420484537557897774015272168325854653558842429158265430298519471772768395881756860789349615785353598414633284836463317969679648601179220313084991890687848163613064599690824536589594733642057669438922093640819886274328862030664244383685925093161541846332824477026390087590047186028909510023419404737765253024280519783343426267410075955437761713260114192468829680836375641894132194774224765200286248367686451809374725194565937818701769767572615827617114050907041283695532667582541361749359073543200745519378346566562412524670279608338619207233352900752354639789944087760002560506793889071353214062210560247695233626116787432848570399860992119991980107033706082848106560061363310137161256451497323788700578510807218259033500612824487388384005366981325973732922296335475508224287014135904819397659345787332493065397292352609333200134888823719395273560015698625850574685524982988971121666457215401190414473830249249818373115667553068845912260934312516756714651316653153144660070665534066630981079749058724390907355763927762418542640935259664420757880975236443435427230328083651845923175032870913717870665606319863639876727746875740229144494521278018143058406349327011148216406385434189705839621181875181470629975257815048014672305209912128117327448351581449141148070200235331261438269851529158675882764040127802851807234779331784373918881712298909763809102918188031441553907103972695933702119791931511598839006084248496807884591571383334700809227505123847794077965456909892870213164693475859853211268715245758378710978727228673664333864579417660292759013599170019814303973455023978345829592863207156290490998252108537217133782226978670169878012259046717083530125582833173369945555844925009502215640193232939833346977249230346172504709327699245215666767330653403858332392945974020460018515734640340444669578326202307743319183507825021969804843930774683593961100684774975398363517051157798367514726167059185153528227749229923071980075399965445422892918634903323634835813367334098562692844042357858908544128508802329858520743742304195986255710940057374044204401765542819563492482019882239791339721634195019042524254086982234517596075077378961778557745232775672472702219498237765069642220414971997172927188462706554686963677470276288139045439178440176291753454463933243988071095002761446231441741510758157702651394858900590399230472641274920259528229449693305846582028989392999632685060124760860454908941850539846080468524295544478382767134253829096324488738172837114236085272650985645432273952153660828401757723178221810960407361077372749163480576286770163388320991036394390920367722114164650451646162870908893529071104498862911961121832897067112676729987294391329970331724716522353981710765533053848252221607126043371974424395448441074997736242602841162250204842206668031947365399247372536971409006120587731705729329278819423179819323267098028310264144232200911667560879326275884404643678940152826216253939775345158344052276361680148944271374264909147094692174671351141808680676417431919282126209415630848777025659050128800236060913453420167780061804885518480423493885712963995553067259221515364270300555408877377177200024703491627849819361107545093170298973558069392096490574744752755232403718565165879914771120951766378063932256322985823393203367289493560426328116190615565608184355559629517769488415371116590697662936022600994055572994737215528369418487173067012962063909199153553082061026543787514505104929903689648394237642666830985617187507296670433331874687135163871278771750596021638853250083110792206831973139973687316957068891219834621859607336222676610181334575365416703498131830474856051922039393693698465152914442157382983022689355630544504844502454794119516017881386272331089170978264650314295986036932677926317891070563705318367194100798106097671342025362057779039047121946522090096838815248257851781409647688884143608047408327332750128243207338847505613079773334024460658678299267554484548658270970240393203979442277665085724491606814684195671830085706556417147488448881175829434012381260983727492380780023931018352770900936593344783171485739297537442025435045094281461665639372431850630776070872231361352955041405544531811568482448708514346923130244812855049888114121146059622921963270855602616044148346445968747792774235051764981112589773166012024453650111212599071986642715916191359389249613001127687142708155511006165799589830815776676716877299208580050491411908194410412792413643094400652812742505711498026125277197941942626909156146436917894613069246407978800458481746898289492091682928732078023373708820995156176180484322911423141942922162912027232580304139243110913762396792563678531385976887819569707786592402751298255500651006804688966271168881411895010966508041403431511681576450117746502245123068938552104863986351409832641320170614529963187795444529552106927980344606800941418497559118137312118824709354141556391885508901062217852281953797003408571263695587892795353725877082608306958148225301953307762955201065206452911381831455355993356636491130218256707139256891591526819907228491102586697766712299989885688836985541826309923832793890602025036104008871542790149902197075811268212883238972522055862869589434764132390490897068727189189260549219825282405776302876633603075319018609377082667370822740437459344824626246729211590950988818397135166710192710952855660886110413061102164419336911626351685081778573633423322488534748255285156879064828218334658789994448314360667127343798671445856778395832341318814841362700982748863477449814471996003474540595344560099255232473813195130337482538487881100834373636916483430874841473449205492534410894375679904035591868417152115302797681770900621944671496355855277287347686550049766935726619866607678904211521674212570761427716752241813299928209522653732676045250846911770722667115078438985235987399627145107179750267278246439375862628843676229469443200898430330232790720052675799838184753957289917984270416955903340250095687811601251407177630531404528391038750649900724620425855556935046284222145507967791256128472822812902308611268337607937062314654017454675545299772256906326856035575864605486681860151212216631243968968361896483984284717242586733595816219800802963973366074319077176302001269282992547430476705928620030489401853512693159729037240543277048988079394998578540716015252124599107842871701566404249101798713640819364329600887072168049308833250682415141394701920518127348752940945609656698884838805404532515003831412297307992581014176704786795633339104863913731005156530628679501889917130495028312305806631606771534088086497791682999289930431687500885727850692890812829885382923585937570711257992174218362029451871061208714497179263428422235642387836797722918564961880934323035758425463499641102445439995543980430826121977562467066916205345426346330622798069628700630549867855527713689545851302354036391589085960697134509690706782038872298636031467207447050700991106150864718952703161188109009809776248748496926450453038030255827075548751164843161337954685167980039924510789513958059483729067948094483334377841621482991213500941762864865354410979288855468930159496548394119472159005502693466209281891021189836337884204952434596769428400196993997117811385149280055224438078576047765253852422497943213725409404789370166153658892495979504277751401455622293444798904450122267390915604232387653992631182618253213927834189575341310907367683935411855736758783931993079303111836126436629642843082007292103902398658753595703701204806370415653568895687002768091208454854401289474021074390419353447576983077536545250687535846454735634628805878534758686791929490996029577431715205262032853535535165035217064171239286976977757495817048018851724566281653507458426759807847798728402828905926274931921416719714241550437940478418722803419149010038385682895720667238777761928980763946057673509122798381465878113190558667650322717352565885287679285794467825116106860008627444334252358651416298600967010840261659170356555249692998124234283943988958085401171479876361159284991791338380528951736468090044261959008381829140979987334923530229703435832342146477746071833173389968696733083325407436772082086733851630491038547480566864866709519928532048972253986764344083743951720756288334677943690006552496018533570169201895678412149657203315571992904796229201296551364232682130774732362429539460634703352651126119255472283507166270650139789248055862575864578182657300482162059496553244513440679123069398470029001260902845111498783942530669029201148310535547347240836442267390678580969599934207876040146086150734341515612702811885499376760931206183855566534777744950852802065009890806316689625867268579463031441179426449010514145921298294352063527872239372216109040316567298042172850401479515068822449782984054362387608488349389834830132187447493060060424005930758024361085984962485212286591241090723594692521622536753120899594020707363853356134785576869002912844871432062215389578627768476184077404525289866272314092029626639484402263691251305326000132723257769387514057962085021195271194647744567813715676130889861686842904837293602756367933462661639293633736667055402664660793671723560215188408180410925406802029630584979937461904647655626413917316605932832226812030303643899795056747838173922005488767006616049868471048685067146356564518927458436374829245330152341766309119602265678764978060858430871651526269237986097716713786811448849475638978330159841098396021145805256176258218424798969410680244518563105964259623325262827173481891500612409329825781428946063720838087728182537731946369688750140566948028565912041984860798499894695468869272897712024734244398594138419045079692650737024971573255301615159144730260186594153525797786474653498858049529068847367574220079595631612115654329775135959347886474074181429620669090033022113637969175240390882356137763596514004799979948471786204508941020728819370821040003626449818493143513940220400223541960485379552283430225137921522449537749226363667202239887412480227312223873490407474130444608491997598752904886999448401562365566909845289403062315509981789926958475123890413643590146504014532397539947855758421107284628551656647236391728134171478252002054066835261043858800357521949380480603194942447925501162691971197556239777740328545336469903337052719745083880707014899995971687084938167242561532270480245224533640539263882267585414277795706145697735183924315735380207304747477709927850316072774420963260183830883580151252778822628007747702117500131516171932276308559009066044438718530156818713359750559426104372017014557641235915864846453166421701366620267114162581676304854404548643553266974343653457236089343204375277102739755555843138547653275771705668480291493538032276725333934468483819443131071810350648340760290042372396082092396726241763936750725058947764964950297080079150954674318530348582023555445917962880526061499382205343963802692491623005794748598413589796578021799111673378053335935544717662220511236150181683091540609240052682217681975690665242803980483048817938594123768146361457251146821063473080803974526412406761650947746029066490593257347224794901089878516115058580356436441484401801158706988921667378817662950404569322765918764050015956026158268841809723981272748769034634774143135634414127360917808021082358729947342004270945789314495181231709543333621478387982581598893012692865226060610634409336256138200122151703851576706025829276337979257155488090970228337603950807123632517468494491975019098325936917959260264011777409062984386515821903131034308391685254031353762438897022107180238613520242773256226871406504148719712371968772940654368246876560421520459460049071359306315733249196068566052509189474657106554507493642508076528031861577062082208131356612125364445255448029195627373122660613085493391599576442578192185305130702268033398272636686929209424030521416577848478977935042714522613435375420387963380872479795490475319716880343832067140443025297661070202996535490848957142983469328969612320650222547780713334199882043263888071663608579888763419265464472418688969240292428595138516894188314689608321723220342920501271474596954937301819845597160312598773660135965480896925367521652248509523284883416096155251100010637624777680304672035081099771869377351066527624522049408696939545373780556389810163408496839792816061821269627163413783590187847665980124744804494237209996103238310704769490499784840749546558483029638109659506364741966833447606548895521892294595307515906036376161653749551991778531239135623026841185977793582338635498103082732532342347784753188258908614568751636683630149050135652516759749452764849778061986294822676026058606463696385796665471145142923161616994659127637040428088255737254269052264163347389115684650798546600988949733350120908787954039590009722358305083628535751927947152895064142234547289532776689027673143111520901532240261505673846574690734982040381756867023194772175547616446155090190985581008412346318236773667126370644438260382496364563792117889829835673263667086797376422884295625717376569714284843774332245749566749073818958978134413913500845424484378876857045616692952117699710578330966344730791771470383872838339074333227206003026453170642408611163843538144932838178346995340551298661044201447873812839265410251571891160270576079316010524544964560037216390906048166338725528254994596943423223764139891205325500611287464000118453404932935615299736666974029238338936054477713954895424587464392429807781452449976032332327478070569241558493651142569525206597716910396974965924507000405111908342409434019922490846352522795384255612481855527193389763322360697968787518099542476751774480070763523468128249724748427759760686784815740073495850509829018038113740230828124240538995567134445900867232375604594855223966560364568122613449683928237202979334136726483341718726199578030235444565669515841635409815755328231320502843254892331541516809368610313478087436723347668702986358755492454945420779342247871264132002335040057266443172528336728537287338477115006183049518863084531873123170062245613086907894169800483563500352921178744528395314588315204633761599486568083146893870334545143130006602688947686302544228425393401628240587774814038901960231186134261661441460420181873786863529184073714418308428218502792868150279316891697597050870612017718446947751245161231587259742982997831364356133645446668361075513028688846684620728482263316885606916208570055738495230196936810729348049949557138185909366187254670269593214670760025513190532197431627073363599528564494658843816851557403209044411650889786096050569564491439794075735610407324990586717272138583187994217016324191472569287904264751949183768798946254178556768327041050765116739912024316955238087709659468097006227945174435455289164453395523588958767185925946667166784948371472212089820195398357463672972332728772453376744657744715061625310034136431077231360970434146429064631298421578835111753198795322025068032323906900685201449685794177114115635592769057815962690868247219571501477266227683932160770644182101178793435126202615173956725512467016848647517405561954232924276460545988929667349205834972544317472523410523827496819671557093887057502847296310630002068289051440529834749124287102817243257414869984131990529810666423379333870054437734787373683494693922615993955030277866206592537331543533612871906062789380576942477854266884611771766669531732259176627388502814019678358031011892724159031045530208486738885417458900570159706800943764766678530330245716543094100158577345104696483163032821136391699970592090971366627767519032520512500298554941388738349990030062515180944203228415820023925200994728248442786521324496896185733992652776887514642889082791741457980897231271273751521825982026366389132745845004509564570499747051922275172610528158359089854398607620420794125409015494813123305401561641494458572524062177518712391957657419989020569781199414153648329571834598892529750038424284948981325673522645147183248585839488355721385793746316121206277154610746250864512392893602787803205626661301713421916399731878397419189537758248512931839713168106378760797066184066104607158907787561691619369454956982235670509237105098407640963479286881011531824947344816740976618747948480549143039878033393113715657200421187183724325420833090954420754239882555854399200080954456499650686694825712319094512635742177473696752503957647611549293022929793259581176175715750329380103608506619340236681131401928991604959814954838667712956310538359548736716731011659870754244618205528790340336237014835861772664844007050746720700655161871322164588822493674146567047324918522991042776520488074381477300873457606451869523174699471680705314585777000763178439467306963339620432913888560229825286995031256117779522209725798947385980596043074404633023429773003906811076918156312426951681509409902369908942512904575072099689408454057406760059894308308081532790005823319192209847871538512885477755324925733368658338608050354280991742338404749601658228299283576860536196461502517900181004524821519059544659853138049256175282314392004294895735564326189357821837878762155412813755213181379957509480074486484113107030211100292933660976813430996111895367788986309235636418252142488831267774698250510784607704074174334613038270808838626110071954042764083359473674974690745062460025768843577501723740357301944748484425816519943043296000078579203625760352316238801986864892946069093865099273150982452341769660140801137691104221472256685371901685191222102653545113856776951655960779178703613044254862568241788604831437936511300554239493565059641718629207279599200869990812168019498734961979733982406775611902598622525998005311913397205038158281990063012560530659886432101418289535805386872918591630214970168593234460878567925179758534510681766033316012535107550293504393061318068814397124541923674469428733543755854593807784232446551664975337297211114948947762502069213029141548730033917972449448329525672733651282286586891743249402579461088093257369719641508231010861435469350783681769126847751358902528983434178994884595945634181628576600426601478088425247177480119327122950504262986773515777708842082859051489264815001961072604463496852407961843737166459246558158776677141143456308671758540373754031007221483003966305386233821171693990739994317946347199526757905364575114447141800494332765540702668530237643914018130989643351833156275344632058293342482051446695202343110307573879163321611604511423185964139321493095794258447056196531314496511371333120742195481663070115337042268555242922503277115697849032251954280914732459208854214538916652341163707535866418267195915291507574636793193886161149643601500753035158161703877711183325853801137183435589056930275325240461883878167298698609053351937094000350869929294563387373628952262587346716990030109083082674329690702398611239081429237900164336385854582618315502964712911219084925176478124050928264514339814428673169308677120329224137354625500644636773684188660942979510073818462045166733361417016629632293706665856843593098776063718350007024692209400162893752904942828727561460175113605360652797877921469224347465615118194263686757418241439112357477860903775525201053726076312358217320960504089260274610596896500582197632395609890269858993766471013132221652988999295821653797459331424448620633665281057275442885771274509431149708522109791232573641053250093791197603097059305926813654438030034267274521528250082408589979163001417527417533443247634681864738245661628114443414734166165040762196986505459242382572174955214503590497102495892418662574500490638184846934775994105596440144862970161313427369131048437266245528355711201895343993351120060870970201783441842644220802459112598631170429670598804756303737794649234446745604073609942192237829481148572828944050428573769016506390390258295745976468080344691037818603076168288748746792538876880899633848586615330691785372696672267180431555133353987506336815377400904026680856073023587076762909551179869064509969067375461841523093890487900375829881519794659233885534151745223486234882943927404425938673529516519334295270350258678112132746982832179520990410614748934648669487636607619639500071960347993279767829871764734404676135585386875307258340242412325025932998181313921377631101563144224964694023186747054754665590662241433610642864719166258902307211137010716656864778943104389733480721466331902449497214236321144111388364335207071006666889829335049204315930581279167315862718269681621012666854803205440801074571651618747337312828369087578509148468837118405869646561334638183724303989491659746522699046473256136599575769542403606667659885213346323973951596087547074068220684337935622301941927276805729725581574569915056789054714855508791660964820028083946927666018068127632752093893923895247267657513283000430894669770708014737304196989984200806545710474327125874580762699213026204305360202514936971736152911969558456018103612952470174373323058711391894532463253165947296510419462133665136308874424741277576273763527170986475156565273807678650867447629213325181287948645264253937874793151750207029806313606855705819220668732618731051393485944367550553529575395986389699504648168577196354255384064346839653960052544002102992128719245785074703777705328921648279854778973203073391459951041713764769226732842908056279237041136575118990872727311798343197302700023332092291456049280803394543588859943219337330438959754105850684039073731638795728767632654006111066566202725873226153802999407451902075420212476151265227475714653436146544064928452523051806118398262109488548840597005540644385483217342086936097912693708957047256575499095072467261582491831794359875107022330102343188818463313860520499287457812875336141302426889588644602394379663654825980565928670769933436515449910230846172918926537655445444443839962563901040479463693867078552229215008965107143718881103244125442074544512522910963851751400870953071491788266027666056677428094061304509359467861698678427371630084988500904362650207919191606526026038002413616332843472264001050872076848360523806134671966920054532243562969635106905853904634355042936009640645359592381984782578858113990013084138943084404871804352710493345734190690708754214503819324066796227894501395261439580329153454829228343791885704949511642125699973453027798063850280950123940869597965461378205644850968273206296965417064893118686536031803841630449833414796179388237852811844509619102872956363779427202609376112507897439898324106395054192198489339202537811569406155449214113807176984256239190032670705601782616609755318906552018358834642457850526145857619254535010802186818794191620323962599507687644107842765841646895150181362634375862687809650241292400469663670139286173036177329520011500149730603834914865977201609257080639540058653375824311769000804203806537937719975137891105183163791152755767675529826243539674584768321769395114790945948375360872565818001142008751021477088796548936169913115792526737498295640423637914699548036083988404629196755965590539635850041075113018005166754457216968713752052097864719675095665308590681979447459075803765158947827841407802476940366702699520529137759763219763606229621463749495052589740411070984617159744984825893077155450059402057572474506865956106711194246487517103493502306254924405664615537490478573170896564056738327994548468542530823885504992236040643257297555997171259188469864178106796256360517575412341337408417863439615967889119118982736071090987334653347252093392647585448995880590622499498004325373703902186276991661764094069821351941481207495739802027851668056163874740712744571425075516038946949686900764644857699202379419909672220414680673463278664601571475805731095357517184780266987065304652808410318223109984478732535327281681893842057215387250456931325080086704918744113524884001922431215494836409080814357360759576382551894301642766032094578139602979430076721968222041607885129615441215882899572770871968229528882608033027130648269008503927571688060652377326434359886126595452699961987011045461184202998254022099572970470720444840932520722325562431556260528364896893127014626877035406683258180368720613003873830473475770047682119225686146453954962364444318360497330109322195651398146173149930281898923310655536204427980805470546717116122385785315931448158873108058577436852174464751863547188537251109891872418851999926829258554825945881721786490343644242009297179192821914044177670009222951598198367521451377586756663583139668237750373080937383515861474791228356992138942117184970857886840755210986313353322168396712844667515090419603342088857833254222977594434201333584597484488410716172008918816210794001918323412297132584778152480747888105787974128491610535139564985492341047397120783515168821950026322670697989668518118967717732452315198316155223836365656303362741884305383620641777262714414050979367785713176782790229010824325162872649256568538101073120284516330546559486072695781602995019495584086993599664035555152844422305449406140019648356965774164358369290910661155954745693227877844213015550530600732256078274488130176445949523347461781904039736439598710603000081452114206664418807179551025787922801515212098143342284403990502003547303136339633020903199382913703157538137828343434954855551046037650279413154878309914751937608931974349052850301002695295413617349339266341371896555049946283174968498041619777824117347460584696792619075955807868061652588983876578209493907551543956873660963885967125302658325842084221671755844928101166676299735317843128273565196054260474270651877784160579673595746361107143088544455294274537955967204376118368678808639127836307492889606806279010696501344365935568037328069764172932522900249438417492486415767394783941840729341499800255132174229087016128609862752457037548929612546932254742540086769771636288136261745847024721784140681631689232589145769508674782127540777555192732757539828126583355441693476460225579104381387120376590168154624287388529626256609594581463312331047774928859371254073712141697976164744845020701964164065566799645292860604657012371825675759639271395024683129394932568597073905351985024027141357393634362526020483610167218679734388268560943902752177640146505786562027480428898806647194225388512940011558589217476098073679538907530109415762043904743220332610232025927362036717866293843176354975220353496005239908559554140630709453862435346457291027730451374589646748085738561954512222581248644258239488120140056490664410434972844631997195856676639979482610557063705195625881523004081198988574805068130897472741608099982795271877775621520639926839950351974114978055718726563463166130989844525999677622384726015393845593168378024641873900719737373430089529320737504213538448779078829360367452677570431566183059175131410885799007310962217504737627354641892923980973280556747079847989376039454682226934157916435667998338797345480545306448212305895201742011872994285710694653796206648166064722290726430671122135429970470014983816717214863312214776080319271102298484360250974739812005452948191426805186701454536749585555735239245960547855387865147122511052394582376696675510569159927007510519334190003986674528692043607858983844258496093503036884010765711512233447485963646843974036967743218260739705552554308783186699420834453627715269612467068779791081991688209114458927131498666287690032712887902492393109258100762793262799720281146131987959064829654210069439002186259925843545375785068899425131797705659444201080428605792596168249856457552969033573859269096800859708582596693560453874432921219075353835446509575735727577999852577531533469039357902720036077429139451197960707369561114320238240036276460243947184730559319161681309350995827720099588415654111810883464784613964817043236181484849051297723374069110334098302408629401901859609809184018477330495403636839499896238021884201116849611529888673451456709753475618364640044662129305907157921705105931436881592068375697807378101520373707176546432596891268939520269262811285543965312297189066435515273352029458098726052425067093780130013775014260543746894351255104277168603315393455549540375272419651179675164056498091267042269915367482925996360486777185498769832981050705614711890930161189710549259229018699602344082321252825448564132887747393864946208545559532981669967371909715328140622610192276064595792763724919436745662312560825122615264367922294129514602277475819159399389441523294741078965212525669687550306610121300151382885263029741804580467238598852181961726405545493416606685796186644877843966976830677663215883642746817634523745576378285064760116208373883117515760951337503288293712794268615888749359726351143717785615285516318607774958736926828103499719530094046697075075722036608304276080172341606342308547756954467654639213170735117571651930280208157156033563527136718079006727540205151652978686175522059331965609985256036880105793272238705418028916736946366738168939494616791853367419327700400921632449525665938518141633856009199713122652155929594607529330482837051587064401725940176570967647526732907923134118691678490484444718985716314653335429147316266029725570070871381226237449740113089153697374123263318123581706326558245588503728013208559586757510636660822738738521515426070091215848731706291474312304941310798370289961106977805297925234120867432989666305137484567124510911304801254988307346659922921686745656660710133520112758192236858707441377964594842700178591749392791186376747296801471277197830898969038017132505433690929432103182169872163053930010192027442796188761726994559699578312389464959900780680251844671985856566536430335943893773124391913365608031516756042790164395916014005036531949637562970411069913282521312881883291140233493481465464229044578131806274162546642188533868856403807867765314221472120090160363109629686330671854713590751221621909631346475718917652046442270642910464826959779042566246276806915279483316975545005003850647343219982278712282679726922630024599389975109981968340723444101653178374919484318960682157735395980744834287324381642727065755395416168926356827893470518422618707263891297992952188711719751327266264539454891582141186596090328657340392911301640310553619892282454049217251554546112120445345711809889645408505143599260402133424283656746913842140670687687982570934904676495554833309387882416476938586841373706540950627359643829253715683802912912009326824751971190727319345569516414570486102174247185732112094139403279610201122844136594383345233363457175813924976951494279983428361115653756429538178555691270338792073142687853763563807981063510793275818739014492972096464248992126117110093815462634468009305741551709890524821171702345266160586918916971669581321612812668040439663842007416144283278497483702107057462571926961609889676561435043595886181954353850850387536070163576213540611652020568406686609909915797062417247785281908655893190285145558173933303357678943792202248716562984837160359474167709643359450862546120022318311854073483586099889852333794054819061037081160703108546913032810903971201566965203264007708480388192408815400436712987202043215407914231450417447204876663206418007755297681878505118174637313378948101656275505726411545254899384765427715899095937076249020691959778914738240617264895676056474893123068384517538713962508263514072254271990306254806643189537625781138897406307868838164021913980657631129349722309976685627894181814235349902055584992289491285820846749601879644150634298134225221667777856918906766169483180924985818723693676853141456103839802572367991210199522134804874038188040912114550348282626996957539503875404339834868516781041174147843824274287722694587248762089008409314402699011595006232101792130457419829054873888320314266421654659775794006606356151421737197156841608882009732815755656052883264233889233838747320460246144711302080202474129601895130832477869152688908097541440033245109742723823320534750430091204978251701720887753259325030519444297094330273257154131904385909053482877681971912085704382540435893040636465367882514679736594084960901565222632929064632725877806232948123308166219128031362839028011606945643916454014319048689269393900829231957945889755124235380193176774376810430941021879554946983412288440534927519327996987226729446719545307349052194209469019205460975450950246008753666049488886618369062254743905756931207351954476447993424159270585142630907973869183766132493877482403855755255332536863761283793124291148362424979392842263546733273824825383727759784191544313095303513475033776448393777801465262531133137978440869708480192844101531260042428928057110967221211437952863269338389486671307339570196435714437845925036852350404703408638948443893122437946479904039989573383384570695443099126382406328820316784280997840530662940858143277625791424983814400119523010318955991438503665634660192876760163038286134715751284888003801661144674944503227611899223351219941390771499951817752250827303340583301877646196281700162038091018234449828844620824318020054049730501955032086906383013789049906174689707985022779102065214606148205577733607620881639175380294097465832565667381607762481971793857574036453324534902282593218102760474385599434924507488275316878080289113937818870175424197250023712680488110332419829286018166128421034108662743248202588339525939161220506137898265263472011512949962331601588564234745789887186358968740406666045769721026499759131067036670383208752983220445911140879362461157427586874547589971784853102585667805736783019146764961767211697634106738703927617634191445519415043698046766511346450544339572216527200638081736727803178634755851729553552241312710417249793987408747578335223061952849891538191599564252647601322388130843144513854223878955885218457897792027346287966483214950166155308867413525399118536790569151392869487301998770328470387191044889926656084495283502068245414292094945415524022823856349124417534819186583369322102010401585526763354693200924928735193196458148018375690696660875764797688646987904027517535276155467510217838405809858969262907548522135151613042675369820778204209712355578975071179997681148555277649859853250731276154317248919242175485933486607087629676692694409067262211146634301914470508056553576260543636628228610206278252275056345583200006386174704918260857563374371301968810463403544937001787322931060068584499860528265301214181332475940290164493692381227022958050884758146722266581456805118731522305568010315079351069612104102273140841714234079329767934236194957464383589819190462095040661496888813913146248881572050284129079079442840738051283797634904522130357606578089720456550741668626160751253842027553704993304738677196135395200473180799504568669188244498607528078849439724368099396115460121578198777889102220494266572020763493760366054587933223540934558725183860316357658012073406128352698760264816418193723970028482869791732972295223247748319886527502389307617442727994439358620499590419015380828702043993558938776793078410668444984469464636906510445813835468848161092253797277037334320351619157250972368456287950829555712533313079825203399028343504657246513211202410561643854377577771326134296580032993542708095824403530086244683887824445534025553150304995492726895119305242696737556278707011088816398045320987793346909543220522802411180263462526699762346590825794666989477155591371956030611321923038441031401474749594355455476799626684593259401162444903657202328588062255286071524691579978822300961632138919194289681284733933061634866322264289896950199809367605723019435419589309489846909830762884712381720743829666180058145343852225230444184368780297502795520733362148336295219841809157941129750371222993706859727337430977016077086015690177478481758661534846356348750654842789812614093934981429720689285869045326294607262283417623414594793962828382331557682128208042711719937283479339349976127653545941434571847444125447930315139536819999447735129115688217117357628179677146001455597707423068886487917314030083632103926083794290630163029615152289356472571216532053493862184024322643527684867255805013999661788283459695212996143668441244015066924839069516924516131735854861345704256749898152708569721358029624511050493283005314947783164733614272719984328466402821123172989248863669777111373801695971606414684733442023474826569571232452207743601294534403780245975751094772639980011071114993894622896829155670400790099624869443232063823045012221220545639234254843872959844953111262963699381646194310849219937594369072072929962961124700477182761799010904181929230652865065468350268886092510284484083269432553351981856856428540526207697399058545414994940926920076071088903998303671778426264650202133328488187362422177126671856781206633097358395767501288566801548202835093708938260066777742833344007368961203016454384920453448273947466959270985865856875455586199242666241719139604151268369224592428224076821880762079724555466992802082846096526390692346607891245236116539268782173730017462111999968004808102240770144393698950854576846711144183050414072933739755644879027320090958517678422708172290657286360831804613283593334590891302897595399417809144851724650297121846011512850825001424894528995179496678794243220381526856162488234857755318963280701573015814805867510618990362417484834890742899425253429486233438677318514709657494847400282678914078854543145287645643952975691697960041736907122493303239678012940969387050314075081218881067694096319160194712819601395142122283963513896661172046705350100463957861555314593438799780947788068606124539254937907333262508773897422925400056025481097735448880687475796707058281163524983891523530553799038927612472599277834690854892584921449897184304956380640748027469108546628219098921020483983951247619227839820981456158629120642915490314967802365204709197150943022242518148158424597786807974488273451468724507485330503938463722890759924366737256591999213492535141743514723409126173363643191489397624803523017877033990045450811295666388580390314993756232017143650845128353159834789901781962837813133709390138731429773211968259086858309830725538217530697038465062453206650688812996377309041275790641187047176585910785634686217921265561435530567889422483585715818156928943986626727831289490117871217998165847906207849122384605528395453648012550284578471213441652172688417309109952049358911810297218684571600243443399326887983012143313509621258850310219900481620903828726509066001426653807657335328871602440792350053370862477019677166758034328828602299257683646581760154786575675934166470955123756467980406833331197909547096811290570930272039615959969840266557708293554261391680062679590753885068710050977673162643221065542576381557017070877429286557459417573108284271082194978243056277156078872152280670866013088090999266382900160580803702892686472562496724746825838974583569517393268504685510401496518427924067688989103255922377547975483902129606580887909916948280070301927566613600334954897476089876896786507214728969829591733224364146204988814598665465464890298925154116080611450653308737234210577760008732181463864519793084380385830288770751600918998291830369413026263867015751844078045829708995873350215881274683966233371956592154620163338334537453892859861538399822777301741870025089692769116391191430487324077022879886384197469273553684002599364133736492343709792225790382052510193131024115089517006898519344619292891364755706358567355139854491895867271437697168602539838667637292988597385296245645373555457591242601123200281804469474854757841959477070463113370105843621370255886140452837460537017265038299257830213135159596560430863672913414697597323685125421311321976685796759213380003601206448194155785287749902404003863773875045229498677142661974506966849206968534473088223297930840416112811073496540562674190578128986296291380404198278819404954505723989956236011213759645003353237825228844472780764497806212329676633881798599208567579096697047872816355991933445218784108225233273878686474810074261129105970917204339616574933361123272639508211031480469454621555735827449959990766498388453147772714963121848666665767959234066012291706731451894994550522922642712201655697148622842803220127837900971550652070110226092684614846584543723322733324791015601160642679822592737667267004395657129352396637413944713230082011254127978841780563121443552032384840938744437660881376253747232190871336136265675002771190734409225746254911911538498138655277847362279735434317498393762321472117874901910419482214131374781426883807554134035246506616925228783362069198265931251908284120470945085915607286409924654477827372274232941178047948044628610127951237668338864488777354135750064169290223511489117272301789015083169005019681117433965766935179904718428466054617303544082297601594886315734089534565622606329323712448193710631658929907001443080751142754413756833061119928217399824824151487828212441923402870567479247327250670356354158203772093494963729982134181321281292446672804537985835321611822449539204409325430368144680911935664704246309942598201529460571258311988476898919105481668569073934299855047330700610609928598101709339657247140323392034942241991306385389378834717635088047905213885908618563458974388500105118770674878352384209264749598495395028514946207518174398079695762842534751297335423512962080106278056062800456129543366589443031464405798987943372452744250380145365430073143469485484248266216016841590986950688849992797138578561391117495464693435689268986621245419733268394668355853404979506519824346484447473853225424711377681305569646673545826810473238624968060111292656155058107310255387858355950397222520137816400839580553841572910307319399750367812049616230959377954538758794203319994728756043786949654326127804985424811539677044940417035550338872236108046680089081252324377080851651436156525669609099185501470079440165161879830328342818414903781438749818150840732711866601124860725765091881975707912430255248215719576292752887398878044144367579096421090418884251253712950611546112619308368191136617528766992132582045845907283156919265977339376001283826067670523211588496716238915650005167532504953014919153755155678030497986399530479036384309747587255917930865892572108207677282484897493009700921659363765958405843751377511824711836851263117664567189094492720511640509646356474819784295278906196668371524838862156376645921088628682643572517448170772806676447001045510604212458789856590714348097109063540945521523569799410119869871788887058852550294331163497858856412139955482977422990467327774666173922915051662505835542296025081202440061911360259988494566301943615539643723031909725505052323898597055228795068939267113396442970028426580099244797366544710018393488294596180234954378047032877216372204210689948186845369537991349299223961208395831509397238149336895231823116842392701414039683249600375388696505668788544026150142428225471069877845003277522497708840430284368376218409662482259167355504775539315734964937089979861767420577762870537793149566009370978106169375115011419465965653490093257617477076790646696183836760004220543246354456636124934604820670211616259429738236084449339759422368959455153460691458240027720363158571661585184874846761116661812251536356103689731639673112630764315529255600184109186784786303038276741031033727567954252500324388195480994992621085560232871925978786939613650332829270379858070661094287042031266812915089608722918547155626303146610355425966641294354606025972502415445428856849650850610019450381785608752248374266725173258338334657867864342718371887421179628126553101909123194371321992294190238325622930024310048491637823461240661095950806002266784658202244458143579434228961448928602224682896305627991268063725205402187210510214185884617169375152734054568364373521507786360137121169474712329703343780112600600092031175172603505612228860843496064203912714045185108582545216314612363634886538313776882565273741905332327772417116602440855137865759572629690118813721558650280169655960210261759330101324999676798931359971204821167760975355598139833526719824987667048033617006982361254848328601575840641336868942642572587393251160228337081922767465436910703948434203685901498053044227244543773108616749241739663402954122476789435290015009632705985848033345618874654958561368395358208524697690664529602651258940480686391071286163315838943101918070887993345697321837120477476304865839828569502514620754960069003597823811672853140340582151875530169868977356801498143847925637390297759067525815705707459799813208265135160561325233629284444665674650680028933066281899789570253204150163157822148610765650574043100914328927962129090098523616854247475761562673592492298839737824355504200312588075728531637386813204994737962728763910111407560258108283844151077108197280562013514643757234767063207600341045702869652400718197926852266217463360900960445990261891399920045560463728702537953759824227128984944700610209503252173107176296328488402966418594645173544154427129101775430245361574972929569170080444329813884882197046332824164486702479931739290187470249599592198518337812366972795817996559970262024035460829390576856041388141647018313277663262496057197634252660481950819501366025994371765262898392692310349519255730116598944684235614347039025232057453830778118177868216126901592705862295005026173449682920068937864794517168776018441044461553171536920768214414121649378671608333776562882529875473405169832997388114824619260581475009469390077479381471784922696403940580118506852947080840380232737653475465470156435766333035790227574807375963477907595788951396588261156234746802962296422020379837441871313525558405931425692345504077689700031757570213399424593609371881909853337144541786708492662517519108091888203109234445776933275583069876308913701341377407511779208552917151280384767275989203497894318813838077370611405839561860377425115057816504025361964838304482435510036718574566811220095614360112703214088093417659271717672531235026959996896616691754423782531436205177689825006887465183247816168916559157988384550462245588234849189238233952554203800175224784505224017165054338364640679805044375319403267595336034270600483746322898962502966888653730416032310428136147077707239889560441621897040355403269559307332675934354130735581107439511880080887647841645898024404813697070725890660978198388614892686696442713514617859836515771753335415689978192211035134823224369135906105803333875671258014677410256084683540293602333083821334789064463039341691058646940005570205197288813913019032072292211080318776495169511198667110000920336282053134330635696013409329386473740043244922974862329990374474158649916896656650005170569987732808346351244727845579546200213316159503231742952439282075187195887700476005028068275204702453238752963390881198437648230371104405243338912623469994664033614371750756501168546028030719338874790149341399259294599101561474010700636719063326950111229880295856619308021112818128145830218063979594364998679820400759343762946967643230977871548307425140170511758518666151154730031550252195259118474734085917073312915159527549016379581203073902444433843468299269434705251570651292434987055566324043821607914960691047303873418114944465042341158895265952871070629752623695557855672737682678017956243948333461263377897636040111370393882599886169570741261718743956431024467003771789995811793969082050220873243460666217754139555672041377602861306738901864881975527501157266855282100306918078292560935608983873072281137650337357392075120388016525759038321893082435662276180573797425020215754363475716571650944531013763347611862040049603570043243308034575461911228801682476139464365206106724855714154892413959041846569949989970008729609619458746017830498987331225628534189827895314554686039429411474515070825044923370128661512133453385929461507761180770763918488139829676575005300352258700846430517985575510938687192212210103572633822985731145637350106532020238689690715310871775043365468064356878364367836726775669979347597229899118882568383497637759456116876052521724210298245064369783959350463159140335367263952868529067291104270659562342518797536214083139715422870822623191870803344355891198619191720594873127272224841737604130636417590739562991405848382851544329205251238303825114515526188239313749794242343847081718446238168115327381814832364251788298654037891458784863691400432300448721885561062909505100376862208900741177708349431677792238123024140722776522057711996972218317841511773331896706106371920530048219871101362385416828287739510060117424112860969206263965964954036793172000987986369255910443690583451251691543085002732469890004131272647197147150937568909462997891750267690841337635221374225331530498532466720049280408469851344157909251844998985310466001896596093766122915839780979280869459788318700997445812649810110442456277631285554853126548856720777017993488846052629999714607398222733408137509508384272398636675750252104804799202518807058781422537871979617633707074817883982013617370280481882737755316322220134543226010718400540739510368634875901286284869407190493408926837893082427013642441460965235426975550772818973605266470511062615663885113622863980743530236919351542330201095937641584084716756758701918120276041872841098745129935234958955236575689797364727233815441954848673538115248020873017397950242378310255087490834152028469830856209925639427045897287815188542405559286649306246157108842310757657793810072690483111598951199496374913461391259214828541524722635485541673593301003535234707521403103264598156266097580930687260506341742314189758911977549301304221788070221394015721414980582794109276782858252831456992032922496780510759118998988852947846956331834328831227204220583097455280913221045906958144776751412181190992598583727946015888907204019531948324745422958108900711316768186518486352264987697911755343047833871241912347953900225036337789262308822339699203167413492056822359479747732374862864930045907232407829694213094517873581602466742170354787484312364309410674324809006030492061247457173805853654730445714303565747185167093213260312237642840296090314924939281151292730913050896998061597684289714468704628074098403849220182416654784160458356981880703412628685938582715752091673457792511938431775047795082147443389291208536761517648691777613024269338430777655937519470816720977832710655798053190870618494056366851189805058960326079757725941890811912368440700503803090083060917982181071512629402281431381330898552336455582745688834437698820906909431232232247576578019738371928063540794664989064176993308775380576937410485357638569750719111826507114781452261843634119677713462937322987614323713081870125193263015607706919553209983307389752483469236134482891560605335661314434501578842032713798764576446827640440651843904174916524380491320185490657522441958296095837499548478012676355256842931794861193304522915433007732254163530598871453029638012275217933764282744887109623200388525938065249627828167211634567857882071671453806957715029791060503465652691637569736190752649270355962439386535800109600596114412581848454327890388048657829809375653031831861627837248860985294884252215992336643743338424572736611270440078414797815110517680975853202791938936813722658936380517620867416626132984760921506535705780944907357473530429246491353253796285353314801110314706499021669980906797010242103813821554358916015921984063049497531776721863505448972511981060495418140697747397801591587684079915023591851579639695479164988082003248366117750840402168724006361836352304261999248794135877054687029762359135221202790822784374927081101344616734953706454496460968680297008413060641140355413080357120752906185476478509542339862124555916220746420902596705019964368175283725978134055551998951152209803930478281188634560034696319845817185501475642313146431585093881554893099597234894115153588439543298971874117469438648681566154758066236615980949617750312908105215964315029777729116258438611286213942429923346377895485383216920616143561561076081692222930324522276087854159651640256089835954149883469919256045437342687461640365432685634457873444157225925513075473286338033874113141553126251094968696174880715873198400425059727964992342224097478503453354361101892617868757068002683787653443088068734468544305145179815497654061794121001808874828816607079904695738203673520702902968674626146829809710555819834318174873984492010586139417579514563059682273436924978141470486481932634553800755665059761251387744205607888619557278864901551434942940980416848670578542048366878239775842831671298115481125293377973798743760030659367068079153584946221426206873310384064718828196504141960932972461763339189572365020185216879550067566602763343752107315565077532099419051096805796516562204243481123258740036668853236158102995215140234624781089637113245526882325036246688064242181112716617489922495816192131339072340352526238474937456488270573932705748984673047847968945988492468656704168506056996186996340974584948411870251079167270966107817092727886809044976656513186508851783577148482323028458758339570465273671339453542031295571579041150978208421842705768203471151233717644189334820797131406651746657962392438441035681739239369019000943997700933037944219469172422353307980392831705055411348022754580244308600256315823503528152518269719688667057864879858998750049689078190564643058183765263443650957724234685267395903124125427836959472859781285910530560290168813056121779403674991101548688871851320360629287555845306552802776723891323986988895738569987968242263464601898556479642780906744744114692369775457866228331965399752713779850438876506660356589231093940162663721373984118519860767410222325863839623546281474891226430072427409885202545039471167595902512877726897269277712564411206140860653846007310396635291613258548128128231156368794044650023062652639857504638968946953692516168104641117876135988784476067924810404367160068689690820246095096494008704570859814302976451228350664665927361579442966829311665630180563514991787359770239380530312632805754825272900387994717145094377800964082379724150743732115849117958180974423049950228066258231087585870160419454723621556559166815067057146891315539472359273534635663327169089059701003500374016711272891548833570246470964829472770888203137970823714874024380007851292166110103132009189145573846699497673282572056735443321040362155378991531760712453598888785930322541069239839644232144247260398262168582292834087861340227957410982424303733745990274341820478234482629284271989451000436739525949036746163294712896177980892671136556739132974353911519840420842124101381306866840813526760477393821391388879177975677475316690747906874618594623391609305910523220918602865312455176697138151779501145698735589986136491510111424628307880313100262042119988397647563442433091038999294114382648321089595743270920751314620489099016712328704328632800667579491120532282356653610335780876426742927998892293646479771785707912800786032053287263432189493513793683306334386959740310689499861577139402854872388695466812236511518504254479855873513335581935966705320543000780726729253882316365239784309699154650188729541641222773764110653089500781534118232089184093300207566499664418833172066083159280691257361826381841460813022629827313879656214057763503001087922204324653695444758728796863742808770416030124658279118538631310605907959017767339558077111831148595126474968197149905412353974859735829347988283493116125030475791554063141733847403594904822373107589678681076323773165430995522975603926111399083018862375257339921652795690731454262840036059205333698130069740441303571423877048601969730500010747760678856179636133431679700301625439507213325355405243141200888889379938240159068199672861123732116695599292866905926733724406413856618813564791757722657205060812374306440002553603577003891615166184480594886277057372291133875240661883494777033545517023259754425059251565761501779850913164415457277351313911148965531362284135527864760531197656585778588771088206723266151999004853669161531850349561204417234863534178182486092620083570070828104361945113433320474347273302506123430879162591807141722422831750394087054555095692539929988795482735008391851210620928367662618526181189994827376509465812800074403628095258934556967180746551354403057674242502638465971616333735070414985801316213678990298552969805755774615519902668632956495796414739576804576600207487401883313045599786584469176460305851878378631236108050898545957365927470889545228244419829419111484264979236441459014020430512481493159657435424297859532108411693689897018196497172159815256211919321677620479321160226393247504726526749775788106820081694198299313030577591527513292058672830173415826671316808524289400410634339818766586076109592219629614168616122279011079769498826049924268466813755425052307057184210364578582351234978352518442560468502706723581363139176373660955794422285311436746646846877936737599403308900987523006328537559642838517805329543329760852454000337706862514581861180342795311730945929486735371626417884455754913660110089680856535196421531621276004005975635949081391585251130476535431612617826570453857135826652525945199148800620759684576916612092430873960740605356916579257377176679907886082284407880364528262534169730909730038459074759491326866722513553563588754316400509954801342957783163140201868184403749203771261806079852894420354101145711126857984449250837942075999836572978800010207235709472766558904522089311356726427640968631161076716644452464476511428985256927700229099667538137863585867399100926623902657813717943770671823737952723539250499546453741224625461169538893497339109744173271569355140987962094558230096921615275735934729127657806745202572729307168172005643438596702985466739782285219835851152143906453978354883599707794816092998399952390076113047986721077427327351644254393947385221387678887509914259229632953713699756829053492633908503453431733481890487212915388529880375127006515007340551389454250388748368837005958060845561658774425071925187394843914229133157425754269585982817920989731052656411997936564622987461369226162837274824825418111080655429040308130262507722953679325600871613140011722059161485872532386669638523615793828561783454451081090242174139704515704989764324941884190877708440398234597827057525527513614341492295907816342375443535018993490835474078273991385406722386310168725552059216252666302998900883817802098090298868686054231135308476784624050697237018595773619989821427670715979426823416025740247426857662622156271906575667195363428325685380997239686405014654260533190537374296895082171512874491750079233894784009532228450915223596328945866522086688169330109538814572227035017460295084963232571496703859279898572431787406306421688305096438333096329569927010991463862185242844504588414432185333927092561051391236626695699272721229127819841508148784736736655213129971513808106394710190188869400086693677262185857878128364973210877541435059109275313203456204313308347281333828379465712995108781369592137304123128291400993876321487711525537124519438868434199433239342272514208983428341727688077993432623969520629138971233909363552790197279089073030130773198666976241042889737994475675028655108025776161972310858487887029070185620130439170054467523750401553265884589512041637923403587923678414713425165131489965885895908683893917022727690914833976370720159112943459295796776925826862118876326769887399095691400700297717952850526219231026248967265126441044407831642170854292479851158224856422149159818335240432863558822198216035552184890031391201964243555775323793018058998052896026439573845615327174998465613740428474208674371327524029320105953627406362865883079415061754963179892435556883117685902454847568536198593526122036870165972961089427202880417091520402595069563286342014186583055787870898627701196833332938623296102576232576700538398133797884641181309940214583871284559153841440503434380415184171672484894241918610571713844520166279939735868970160422561718877442962349483155247949775098274583642226417646242438441789726937224830697352527775556846133668013640855777398482738815571493814369868308832182317618231953815303051285082257503340456320181654027848522745441991899171196540452953575502856583308859322772553161012705081691847513886524135377785691110013543075929731346303696747206044607239439607969418168622803916477019381665120035077152402289389701405277088702015832789006519484141722062428512228510775936983051911277652442293814211235354554787624110222876683574919126326800316549318468632244943265298272908023980417330158165456272610348810656686249851138947464497578288227237752996748539323600386853352264375933049261985656580154221242034639342793784719786140493209039078736055991022729295489294669481800053904085843795296331504705963496280530514888112943235967030627424264346926972895351145957499395433902835514851894349502420236820676233455952316947496686842442021030715795230089723408055040425294813792859263580635468065407394842086951818823909953388583337912283969853259430144548498278944012837135467747494513718522944571452514621141914127746389519103590497314727745445736943961089368510122860302997964033061754480259591277513626452218523262899990290265323626048343970205612771529478574736880688944342922220365197314916343771219039504083265492910937659845695903269409150406206702462105645928961355750778752922708042305800248567039664656923671945272062955424095592834582903437572888294389061535198356035253777690877544503965260043640683528848657801869913820252780091361651104512399367667308323719416105824054078740174133260901604388505815659675750415491777417030738504183225926701537536872671903342161319658851208928399639156068604356703648043879396381801890272770258157909470656821389379796235250714937399780746951188392308907884569150592206379275287314799902818997477451925863694139341682558808408306509625077780260783048428838533719100432424412651941767138167725986980135647019603673336373461244141293237557128557318150408012040974860606703833342169403077459821569392124830720206949374875999792482691699514698785990836265488884268163882426471437266564801031762442628817775582871523525258019944744179690420304533301408104039056968648377889761274710532337741378306651801337160977966328712317010567623221038828447349059777496685506779988629262280787893902316219170406105804635732084591473793683521830225257473016862575979687108409175165950770661962031256774348559475264639610690128759603893778480403482427603124946983905613285663392281923016702699281381356988067505376893636822943922571030613386869841256204425243287334525760925888677110581753742338461490575814163551529808503328656013982659920445587675482938820787432743770506140169310463371186777457218561609685373858668037938373545376644498418741606803220287883432107551364815875961791676607431001438752463400017816656346590901773418213842571813865792282087050000006702157066931712870209592920965124293873000563868662218232613112824973115183436238656094011797186102337904953468228052809509124780934811147379379014893369240325063816026364274221229139777576169776172970990797851431435380470720636831782255459882086638529148635904230452253914629645432868343061865479665105262263139763013424053311983037128821507571041490076541933985057162782395656694648821879406706121201666597466717445660739455318490833026402114480899080403979571247479683567744135796489576681271264690760536542232647302950698959931430373430000023477947840689983696544667923415577926539741740121960619248037494922039918256215235909706442651420873623580462728591497912783444662637756162780150569965217412838592043147678535918260709198539862121943935155247950151343354956880771091730213410678569298527770836830966217326312487938533732241818939605193567892064565452988534862161748928145760047516787286580097076201636003472612333510099219803539091108917652861227190620332972269895448082409058840105379275319821903608020310952688878034098069782463959331591253393474998378832390453371562255201212663129460807896612798375351723499414472080436701653159014233541117019224879829822185661727122417155982372298262648658459738999327392585519130262514040960673040423403457369647909592168787943953718346153273341167521919415711110255894002603027671599992289387196062716815115744927772119336198930889825449571056596955434469378068512462061783307799769253931059657014740299419652544154365059835954251654662572596223765384342075243181907595458281417548970555493710718180127696077640423529689904949722735802467463419603992852437788426881116309455701960473673074956247833988352584606835861139701469691364724574397061702924533006599555490689121605703015253848228107733418320197151824897809778880799519162412540956011349934379816332724629729964263009383332333011634983182500782582989698447156792130987602875100130569185777452010192998149485378095922952003398891341122913266750098869262888834953453898812731843661316552504500699565056516108722498754495546111968664039278498563545606527688778206028630865569119821195111520970632800205832652347044424458430073261958547438819290304615616468030845761950759566796010646607028502800174738708561974245447325793527795203131195826654675314149397085334835433608517315107802853786422228165970918947457744917639520143097646440800705681828160120510371050384708636585045863572695424343641996613182684483749258681101618718840640240803161711439342640475916155879017852760218014529854766436715446377473338388075865166598124326664291845840722078820854697775038760147926074660190996513580123646649666254603205081833960929402234629556503033209563389016596840975084375811952187877001901943549396757602922781323305305679720525240423598905785319109196368873344949093961837635552245791827668100879536930621831270694975548021545043398397112197458189620234687149167958750500316921767246717682725779562287571623859534384323245168704217433045990036290436061129391046733045391838814819173606007971171188973447283749715890826121921738776436920923873165498419619100258575809752018046736091290570497785569101266763957543505229125273635114408835126439799884232998096896975847195549039627169453401185988567878327117162456878889480046186143464995195806017532350928308796558064328460567472204337310857692810865804394930174021596679373958032259770898129944601274978035150099512282928319127830698071986211148439716794152285489527793848821283431544999243319434159378619369523417415458791251186835433656276876685266868110925973905249642741138839886381590161367788095241024305638445074032881419443521412342629470335542639803875672666056055879143428673720736137635550246415332703830026987881392922549885439014058343784863890647794474729901614580416911558843623704165320306400969746484204850066042468034598386123484175527220272535821276114230230630688869723303571285330621655697615244375317695706621662801009646390097178049618700210791258043279349088438415884929057093996028177618894452001264497556958614939084760495579630742737907258157283750995496010852294336982459889659794097299827725010724538350043539896699335076388763878781707149826402466089064418478459971122230455868154276816092390852099587072584089362392133085002019250357626434965313089166085206585930940918082114365946786924601299380758023811156740388869983635597313925744252036211707607039473042963267090314697980144337585380407486565444551008129318821496133382551223729715501369003311143767515977567041984300517573896065690370987831193215706292683807172287550885816472587113911161455553979394413186774123770358292345439452112359359992857207516102996336866098784067399919088934049349264456102133421184989387375761327436321016096864230936055707663000758396803993532280260430258270746735237211560873073213296532963766249401322873142310102676624870543758518994122732311817469456510291840570518922865790316200887196233520178923602546872541528639731642535005493824488669750025388801892212247501959546365592054372939574597771390375814140471925344870591606753866852325632246738614103440811066531074229296067838243318381128103280450537504495965662914855469660430660625337077996651141666357951609999596299892305834472680483125287170418122114610300147586061125036582283310539826957387441478137776234455309531814759288230147334836961143735926562853499599179764013363358209430159919423670113109581968190812848987002684548556636819903025579512618393907816568406866298972911083722925649693871246677675259134402195020312158094051859921503221489681527853111935109112548978872742007700091302400066190570989403982490524517082942599546952620196919596827285801391892305340367548408789320403491675285271432093970270213285473104027691314800255529384579357496599266435229304151230453124498728082567072220094131502845493487299379298674453168959325035353383046846580319826645081948467800866686573273978427126913821397501169994534748068111994442253289318723821306898624779104714148132434332464695599992906853424571398384087351698691292801658764638583583869059537820623264446932426849653600781292873855219393862914412184762256608418693609816900123287406619682016589562513237450421083017055474717560061289873697125001129790434372799254911275176542758180656600047345358711855459348694067953041492950353871135425104337504937741822364235837839650662712925829660336917337908824613302983418805724711852627798910631606099119460413447818820430496175184272259041847578957479138295833174851390329440555414278030410943649279808473780282001864549908239930956728156209495720336315256979088788033460836322145690567615836815741011769602384007298625717392545209537126072112213471398817831900499844211355734597831534774221662839960980421456074650146035021631649125991397178755359651648234850926092222810383213367834456315007791624848475385996805491751607217717342786863261703581650123265543938575832724150759591875819860987689700100336489550177443679266959783184887927759162399032323238605271861155599240520072716170313117718186934965276155513357276061849329712755694440980947082128818789423620782283004267112665464228171782941184357696051791606838246997048272262962886936002852039718631405020825726950630586505004613662181630823690132162007287621505545720367768875523049102590862061303050951104429300577796956096988356923318542899452309220413870534661716602104969121190080320582443043162439268100140266774460549267268542814640732372043220075610199731591925876169730377971660031463099427547703205625052152095020063329360292396187779213610648017346644346602124812715268241136335204639622174662538452754920965832811128411831061745514401015369364311930793482988233224860016450490292737087215528587161920283126007945475276379433661423461751834775646974800762925413319656678742935403152715812705520843669935830193075175515757236560210493319398682462072789409863069073281647260098636799225684612645095752278275956560044813549226625366777150227657039482409434133865348539291512829342907257298671205034816404181885855137428670873528498007730630304516940907939277566727051241859534924705698554915790614043133894800512114927571870346491669191471869654967650342449304778654121948337638532473691030355297160127691673297546704534763998736747100367672862364653605159423131113908816725267979361295462024484409748230364200154015196055027679200248461237552628571501749549686909920451275565083308054456427442260751732501891371915532912035995796269385652669865617938268958752262446897740877461365781930529607244234238049854869753027394434880871499357866971843503672865356535676304108543902412798014238037263731258800117803197191978210850716874743966357629478201167840359329989405105813589859833380172619293520286848452537391196231356099390656802410678444414460964281774077727570313746765754744743863308516381565340198258822433736651107150492832912400297720363936786201616309905653403959333179445775974553672954353102919309575358636529324397660250714206225793337416428184799164291298967563755219485759979067949991188072854978764662360394921968664721371993605216976496031700776436332752416600196745020966502431257846298587116691866128307405012156280848134458013174430567016691035345007852698757638512959658869256657568745146685988366723855556671405468216801770066012049586721435135257983189827693928677654323784722998735049292225564348663527076531921613269370827723877072106608756277668962671967212599911844280868297323086398811245436278056164401216842501774187397151094976026574333240526661638675189515431912117267912756980007796464279740835420420553661328548306941028871612750207458938283169922986795320651236698770667617037268305040333484586415888611304536041056644051143318739554834528025487469336897814085066829164613020355337138692827808046546028654907869400108597402232788828811270411888303284333297588691821164926991523990353868706908309688218001460938411781205687592595576314102375046422859596951904813190557986871438952739291976527384063350466069121391467954733974030491375743098937095161073604469684447136992360570088028590643786185145900081668645538910758610632059685320460899862866174957559965997382348143537395044796450878310377348576773228674697009711327197899268088409342308618526186774978435152024502613518130265938130547888773058598664148332187405693846140211762121952698829426429248464413940922439049981311491333146124240853822133958741101340922661596524364514368297843428800011347001300965088370766639541170186783424874028306099888804103123660877929621157368886294568064292830937038735060453244951536518037660283841338871977418473354202681781397595399078114856234544407020879901039491376995496827619934757026655460811460497929379640868740474840946563220748628927918747134858646618406559507878393798326034011651453762436066531586346593775428842667209804622024348823110350569995745422694150434755508495817900803933332752057550875065414869860689861943898106900401175412178256178808881783410098419092169490923334181407517769377522254154746587990444502625485972056080637660253482336338672574225095722038715817272850783468807754272069518059634047449013777446392662835499336931150204292459248543050567230307483725145027739595633081881214940136741596286994496346530205974706124364272991227133999638335582991078523677684595485709268360458056204932189115708850371306442100670349367024395095133379110585610445817027201893663889526207344301468508261932204012438361720097472068471431584372438395202228262203904175206527391662056394322679093372255476497221127700811604371279181169956033991725554383543439196077481058582356804937169139403575017241851830201802139291741950055400204556616454776188022007247179812197812917194593988974581333944986122905976167226739703474573790075552498442710340538831555762776249556660078182123491641637987184131850296342998975596565040469771234519441118241988767836220574436436245054968498754122611760538238834262451493481500193204972337956196044128712546649497882749535314772019420705829374176205266470356429257501128835536508220502373317467133034504098839955249050290410764376786494728339626418130752678055165358751906635280823353465305567924673902100994453403019141925942778228341866384366819854233207006167357428520834060310382320667476385929786146269883095006185239691116116508682875067577191335637000996741759864737260886375762789883367645556266184750677599811170373963044850680786525049343452224266947015434770705520122601406969732477806852189434683378905100420266025774606262866908102628183328072830387113865437876835868092488310808854054964691055333900367619141924379036017904750818768923294625682006288593732597582028633043829830337214608256858995614094499663377774727749626058124876391874888813493183406450665429032413029966126747159006257123639093576029177211807496217907189501030743051141627616733827034542520116261567153263065984116040327193527004482728331322198263543449138088170660745161378847143559873151669353074613382705075719045861544270586413736531983421875205784805087546255793713541621137432683540024296272774712387740321935442026411241480222561400878139227639695908730858992840863859770114229654525491699215442415818463361939642964396191892497339048194488173119378877670841841986118730497883851058559636108648657732366795877068801926303745255036647180000235172202436281644862557649414226125533030626673073560056308856061336521099497942858318877536810127663249275405763320492649041616948553441054901918850594370310768005107064048959015929125190291237088079782136357966441385489004810191155795557170139837050030573229338120285963755315674846278112428458203218580240987938629809831977932126625172214298753882957167772417263805778524905985538966782374145553908610766088261726254108150644947166594833766257323819692663568779952520294517123221094406109533577142745715432059086127093998183386767830714373722989205164160722094077295063947944657375416655753746706353123533411475608905221877719981626202640619632226279826775855387464851624226943610658492621035558572774346771419993790333766888430764012910597453021128868480593999883001540376879960099112685988933676730984903416241292889205276620856605124497091161934590803282848053065716794510644852782615694340334843634481954890908914083074130909624155220086027556096684290921623893343607718542795403782036629974861273300263041458497003693212160835080484129834668929366775069685747843355101085600534701218904426433937152575914856224275278983170568167031375501883490319767990341210442048298403480966568989645282034956804357195027485119278678879819103776782343386812156071320533925600479385619251299476784913008057667162816946535711421939963485530255428431958627140037519033030946427404052510113038672392245241719817781451780101769798682025563079661181161478698512102011442608187070051554030163433619575562098737642135528257471952099539163511298372225838715691618527542616283644943565826598715338386798782077714899150970699984574510882894482029196254862066373531897945206245721454549782226895344358159221376686465669510142368593834698836282563026646978525774597382101003402049187339772405303366519249167969331393779158255170291968561320902225692540290382518403753057610829255129913331923318251654799478477113720294274218879882596319338213651553613148169156524611534781977150499896910048989659521623337869519949405324952571726268664583452114699646348252076683572689886529831401961710955738730601539541582943980593327629948890141128442130431521706037999819803290903679271735767463599339412015940997249662546502445621749969534309086478904505691564514531868896979085387828171599151318501242652326543947049217278828295221435486027143453118837742188670091339081285415049424530209176551038324162956339230732223329741483003022409207068695726041855223876214136832889721251425608367839967370990922653247898828606332401489854998617411793056350215368926081160950765759691121888599582798435679906383196405800211052968488510926605713300311467929447343460436653163830541914200349445818897039280100953946103891855491276164677284853980863160748967548555540803147882824802010436456030097907053071704750041195492063335594626427423000398513139636202575653005176105589847174680213584580529738344809606713093411147280776758783646752447809772913562364755520114660745855150791365957931570879021962505219715417322727380617213639359050165321161663560842265603443069143029881364214280088113815643220124809429648886594753032791483067561240001562740332797897737649019958976686411764955285345884341701330867395606765029529263550086276953749082168443102499640278609697242996972461416858639939790433712873123909980143126587790489788741867331441443333856416081602139669716084186420145750973233613173962043006093988697551120110591511316732624417415427783982154737748734153119344300592157948828210686246793057497578502428124570492548650601887429883994440774548022828785917288076901791289663900833180808901909686420521764314911726811103326941685442107016994761844213270129686915743134513104993248525109482275635267129140654828784343762399933103076379617428971634185753120952953317871271534050161196825943605029337881223803133492351474060075913752744497254867643485823554220625170636776831549323190218504385665839152294910589454297823529141897033294072271081049208264720374889759196517285354283245245399555081348070220776058372286841232110542951081902811871237600931849595781101354080904367051381287371286363457748601559138774844732725117505613828200829091089707585557233859877408963659330181203968662850649803237402419296338951960364826682127494406184636375944234572913007561649711223194809665093995349461256649294054478938639675414581371937245291719867461342114310081023189814439476925527721773917288749074407337223863592263026783920448174277616791143363740912859870654110306474663570892565566153400531026865402978026974558680116536580751333270712485207638984505830024844963589400344980241226844545470871557743265202566986589346007834806987968441737779909866576903484070694463483030283176870119864312917787265643358460474739613802434146204340554834327081577266742844826232281028359565909164756716556179181812297691223125106472361095543221834072004013227405266462149901972365334321597071664057028370872905882487555189186958566732109255694947643469284778062715679629764104201417547321247995951144338976657519870029959007330860889076381733320724913889674653073604319911235813157454698483242415171089166354138593427398358512437080301606444852631569696035886093521616641600799478702840587666220854406251483533186623501515199581095068874950857181634011977091950422584066339469044116258323592402596359457580035440888809071443967511249986431090880885636024991531858610843271069811859249431675733222823448310774281120435502797220841536986379561926428026131160544017709010955490461384945530541973354591091142873185847644973211578080309076812173843609237567573292942569032216995334258735173061901287129116365585087189353387455683015907737178232880981002495662809757035365518673514138238861920424468850066041683355000060965888438637174841103674120913419089346547392171519393604722869932516412849609047243416481018046756132394625963174704375445888781282075941893785962920643392002506168675776362751574234530059943836824664647827097336886026522499026967167077686796628089193260083003233525249332621843446482890886670775773733880224053663382123124928174433060989989957691924573077591937593843382140601475896272238701550510119507576417147121298404784612068636198925385502782745042056634126987271394569296667989772899640495874578309735938462836421531851774073630955628279329599841918771838244087738853288956275907528958272935395325267717766163546470961001457756265068254130215233562235069240571274623108631763742778883331453876974925701952733056041383190234662527562147267734458810275450181929114768555213174105872536566180769944954703030103755860580700156030040312455593107537141549697159129903084868181318172172508354699514661484710363208973622139772030638377181689462605586740742278565355913749345263886896808046098430720864871995627380916517178232285173373089179862425137039741302652875097477878140539825019473364845456091667913359039297043534761555731968886108846190551789535971466657987775434083347301023490748256901810247327986277826783807368228570295010729908621384352298939615820302912015685051354017385211934494236450465761258096932086499276009979088519686975521941031172069168277801931382301447445971035050547537761616654020201041214503278863067808738904348297585116402249075690248655955904076543455693273940503210492255594685232072207934360963496458884878986553098256699504736126529630043411258139768665847053786984568776007217159331933843425397988754459999872775559919289841582748016338833485454725470705302070141222669755281637666747528460769357439374330304933611025881941895010917903150823885714690460838639722659359179405183295842936479631380436653324305076927719701620390315316949728517833436008369479598271402096553788669320509384133435061389670608967233944003922923568340327174572014761807812384023306509981650657813469529887778014151022339626295652000532070299070244936678072782300616830101508301870844909661079063692717475606701838440034771581930163719870065164967219577566019021775746424113981791238255618276628932751579654821574520309086777816982926375323983292054436196457177970171212444121216602966456438546913362625867657661174383226738595150222657499673141715289706696702361402858450260778926021117607566224063088383732015481700601807167422146856015003943610836524681658992121563329548540228119953073806636020855793430707671795209260789230398219446394035484317311089674136583770195845757142858169951597335167939397329958275557635580638864609104856889678896130698571828217750126326679124047255794333934043221476258622137666090964476912186943282726488073055029573413953193834525032671215102171705713193362807987736968978671225749396156508088387161582600362134941867171066266411559953050333318439053558289470343330718379625998420129825698190720735469914394520903135381926857092416465312085635100240172442944471956576343930153972032219419755888986703904012045415434825732460397502975824593070138314060092999632207459011021894238611570363758960508741326068497197333795524621562598556637964566415871682384891380037449797845357812854567340966927490653735616813073183653072348480084572376714061450947032249768624277409045737159163031937245747473666367120434123751144816693514203544328421607806693109510095565866934084870840012930705769670958925537955878617116506977560467939646123827891268305673618707170058836528087246094112866297238884153536640588728641523731942960857188222804996362143207516184762246318879176386631264301405110533855367787293203414141715462620012355118163249231554733387725781857014770306155211016471987130303869989840481721310821452486952623577720655966985029156659149452608281099205919268263883591686841254812587820115029824069273358680992835221919521916757939869554554055519807402728260557584290750103339760872571033346779200715809159443531767415139511538693236623023901413365766754632963443206341357728571919064231364923780081400755244226818605049764194675791784235529967659558907317234678744158755750708100052634733178903367571062680254432113744669587345886250838961277192289993299523408960434455632875996158256152026761281989375636698372129803979709641795417010817928330578114636947894120029800423287824992829721509923582394945141256179982333829943049216673499044449394937994337248831876197574576414498162947922371739490692647544731700282118701549063298976584299983179807836105636384831912870340430407352865214391666169362214429017653979340738480480073290401601803986682455650968129596196393624038966706864266009312221870179186296022230224198694109620411311289371767215003263209507611763316440122928754165142692590409868009372489771619328308055232709521652115046187561505665718667383337002641989110314836084143479960669703650157242717333425510527914654315720986956163973858988940327648706011792924786258302510962573056358649858330778686224367877755533887941433176461243120072177433568838648720797557694003945220015215397485980747606449252957419014049991959473677360969209142046210579263189256073970674718305051871528156411243842817095194971580402087179032214173959971457836507045181233420450608046802891763893519332843872228082170304091694487348012918319239317787263416074262649914749347075428231551973331602968049416625176340258973638863985498223086456752031759676298122598695968241144615560814680627253125686322166275938450520594845898658457615965775940062679600065810243292421801339385573839949086588137385940531330920386682071215078094750023624440288840216177740925779921818912011357107551856660809428013493410291051775911973626357680320250935819642320499188778802352987450653118817133034618957186784418633474602348737477541274226629810775966349332827060434168405655343717620133624925078886458891693467128583916816976563695134243784862526657956391424855057848271348953889494637097090518227979269779845204350047292490195995420126423148341859125231816425111173404671834968382204117886582054652995585770231495450524484979057643935115220736174080948532667719319694025649197210089973807814306086076740644188003805659786615203879901538964975412777588767264017776915312403479001756406310105771456908591536637134263955231631964794723782258781685946659654904731184429350362975033477777053138129104808488869081962595157616734044301608326059770561969743301581535902523952756532475350906477548240715177518434928717237586130269988545722758275801698444011745352043443553632303033620251202163156570575071719775818769088834211388067490240264955861965953919199707598211651736818276976866715548505745843904670573523773290740955514180660377397502239709847594524025529726386803262879366466040781088930516562287609398987201998396904687096664012089181036889512768770652556820419107133844980540011833582806080420600448654406800033073817440487242884847083006939566796717856254443804449013561405830484823364442182877775239742728387153048490921551597746776311535825790562196035190018562267531736037896180301103016464396561010278895683397720951340988270361767471226610114868736758471954641400719066091686573517099170681818654646483367832760404236566188540388142123732766135735263846556882236908203883798692102622281671610965684348621312007331985161671320911630842690653276951717111472262459923628045808830713567278410515270881267939389493850628302478339857061567904574377453850316961081685076060325412887832836734393271456338985534082482243041235847003957282750981965783070136234839259028733210206828111100331343104320515874087725312849967178873734139347562240524808318339752294101383550014041309221032751577887975779587415214213853127448093337137273688781020114123975878994519186277743774880710713396645281972495266433915140719492296074309885780105586278455681429041089833916703577482928641726503041415705170025690345413925916468404046599219073580016124637435107474623832042985170417518982560283542494333567353756130173106397240746710838055433662054978277314203934269610957846922362894635815488337248203332103835080223335511278735223265289851321236554176196870349535394468582547553278087363239758364487838866434415565979638408840628272138961963102895528434404977278144969324460139581133595553482508724585371794342044589990901680870881557274781949584886929459477660581485231344144320904326931281385632801654314711604942465252429655952143050648321972463480538053558066143920859374299708442535041949554801198614170074390878404590307927087654596812942127241723330329295767724803034487341041202042993117586815725746892173038414810195192839515414766205626071737076725977917215277551537170994327016847199447666030024290110609027076448963192506163333161785786356863103000706748179414258185355025438745859849364992110211850211059767140612552092245906887714748274706421783089815732972406744331303063676397818240072561259914729662664159928427198123623380176464358728611116734146305841802123257770992588770964478770233521495618490124986813820064817332770282804299446938551377911818159608328163201421546369234063305557627697731088591504458660294393545925174859730791409229418237407613676791406340510988393298981896160017899615954790848409764212704280950126979443097404764211772086244083158907460854843679803843226841480065914474763034235072908283912718970321938070446994326305206570462089780083183237659995891138430186214001390099632391002733948993488044097764837099130437942986608929597722197381411784611965242250750237427109197749496522079375245170090730176934870899079552950250896299460019556852196592914623455360012971968019016738166860971229134796843800686933974038047413971786081393749045646302895894999289618553861555349082973247004536400506795293133640296883415306804140501387907222136469382872504487495676653238850427345796771804492108025201308198110495148771545950926311840609082607683105077515553154664022809478679016833346988860123333063524895681526495298922714640679748762989461541698666255483133353042760672782640493026725563797573615761394916348430127554711338933800197432271202649121539874707707841339846058051915789812533418818163290086246418796276684201189254869466615670327533312114042968685868498301979811772049578942972121854875505575770230823760763485640735962931749482668379710621290035856005056998088230931986467873362673883824999819226495434046817268196361700263978699490604508579427855792752952389617380228542144994860007204010523739145864700285033021910027408285633577256362189836697570617766903250343334934288518908630801308224996238410929194438949246309143480517853895136140837700045383591839469982810305917548815784368456271448496829968872511104379058861299367241840767178809971341432164386293408320100689447208872404823254936390429263062557538263217268575098399839649899062474366505134853780807385975833495236499686205546608314125248447509605439294832213955131282396003828663926206575790162271224468493168589055220540330123441151848298995098421338204479182268559221414239976152138290546695407015946755787967515598041009659610229168237031002013970905423962088686015852808609319789534220311408417129699923996797127652181292437610029562143940035733673875480683380276755675263661297809852047910199543914026789148496050363574618121886939056633917792872589631177159492017543080010378146642801647872951712630506998303159871831423164139816864060822770430721545304276395583870767800887026538329056200001659835115768304988842580188268380916626833512953235401430538963758411998746224039934762698276041379250546864055322646461117482318105413901172204961495869564060917166358155921711617609612328043539058701221054098834554417995470099479709541829395626669389802096892200452030534821968240518716865367589777914768402098066845975151895895912492900114225570153934438708312161727178844802834707146910485103232373303803151560828689552389742496798759072228278903250716032524755517701060811417015945271890092202155659847650031394688344111833431997897317889875749391978010972759783533050517593189731497996516224684540973452070340190308832830904232083677147833376929492060545470590058584587454442141008597556532266877695430514838568003179685069491873418484573304347587435565736953980776009204233383942261983977973754222489368849337621288217202023333470300879536936787938010782465596198919449442106263711176524848902937749998835504332799132215512682427480251721274187559484159835963626469660315869955455776139759216963247850680178039800396776754613931932850651294143480726770250461772300877553362684570340736258276698400453065305635515518784915011812397359086684385637201393915682904689994953423653986570332899689875893447633739247876330240577818247617969703869752482464235468147299862858998527572321209823963043962795941932295889157858240335326365136307579420634166934231444281262603105300465098597770775435794579707981894996752668100391975460647394655649320231876281444611266859666405059175570508639759150223320153306977456396536645946413279489883861563477906372687620888801590764295960021975947354280953407004334880058012929690497537936569304201449633556395242727587827893109918438490138953840385659106253148135412249422058999231937275979564847495953419628737573803348307551829198095932818230778612943889783291573256765636339196779899382100903484825957824952398206448313345078007186092973636734208501142832559379187454040119160112096520571058969610187770986720957726616140711614521551620380839800803679698176104137347014216484960338181616180305454004548136688123388453033213000772469326895769116317321422193988598132909856203872950326498493819951529567865718202268162933718859176061707214989156270138020046118159025878747306107032172728607399343883088876506118137349202761007107031452833391615606188131159210854739548425529594528598770578820825676229278786230975538799860475466727628105483249020800802510140963209338489166279279722345189566281800701968452710610221702593293866883357829110601826170676681669163620782210955007133568470145950165414451990396998464754815866114892610343048953620598377257877771572147372897846612007273423247380573582387384030173353970876731326910109336296840129009827576445381371263000450301690630086457170593611696006589414805625772114181100893267085104019699220521515238269496611298619155685273239802702041947011182210727173174935155379216659768603680440017538093222015009914673094802053034558199565537636827511768617857324502664884210758897131521591786810537982137931255503960942989316026969533077462054772702398716666852867666993662704590808564821319340282894013115248593768292716757924587868063200512962275464866175008600368409516576834962983179999008996509788071878846461159471708395885668255596264383754019595624519959247163885322399345962338466627004303071863366098688202130825809189235994343531354853087213384095074856317721236316945337833924797870670972738432197385388150449448076910103833613986914858050419001759657854581706808638442246102258146337540597369251946018918739526434830496530966247542582347741816723128991609074381853998232244038415265872017743105155018742285931913990549194874970388715139290284500622307225867420941949406850307262181599642050229259346181010899575559906792855762975076580331572053118415370096582052783404045910888882478412377376773547107261093793081783599165123884437621286816972714474280555918901206887926408487354668261257086246790955482737076995825393673222566753503888230667181129009076480388538277772344900507253984684004751641193945582195509408695588870343996630864952230781028824009206246283524181020583815255230280532827687715321209587322502613410486932990908098435685409849576055064772428107843462234062080481947766859495369535019411796287113140212151403781033574278659333623843234673043898705624288235798400800252278326226771431945222997570085530661657040074557257863159451754099060638483406457756128991264510327546001384107563927451913362563839923827053948647795375271147860499309409145857649699704716722531310311820303084687262149037028325921241875568205992629776368769748176427153683779565688741640427659071955724415337054872407402277419071575409170357161835646174153716682090337720310932214289818091016735701861758944437426833786318704895001198535720950108468906715831010190072211130958547290587033375886366695065825964836664195935516343310287102476854793475920624038456710820811805440091551723100880700983357331586227548087871205767059307163874542324902140020186747130112182039140730592964266940190987806406648070254820104803750534324206235817664135513950512664308497461436705368423965603648033572724233823515919630437506508235005160506715407029036446159635485905226658306278989255713640453456065570837336890798780020905734429277650153948144022104169672843895920907842876765298528264403504184602614825856980065744757330118057057627289973642780223628727450385690931745570821172037790976792681630207798052254382664204729066786869588844421184380472230258760803945844447965739988156365393549496842204749447916363712414074734147224201794788187047541791045156191794052974290748572547031768383680431883928239964626659589604804812815810305106002947841358658256256159909602479020692396579118825947505498261588818066843494545543545335215545772571873090608821573118809183893781780949304400373736399530346568199146817254957985251320202534345497294613090759340547886794897659588616583699883190398271475460361412081579410113915410296372872401619203850081492790494047200187420709862102452804605609957816678187711657948610420487379629512475779217176923169907159575834196288673323321781822663026751465763745740862606529724517468049425694061118649125818126244187700553072428275091332819105523362163206645709319851424865582502678855863267307428810175373235432543031054627722437377022259448745202701149441068186133888171778115837661934257399181309527668668151638333244049352169411360997611468743237666579095398945392800128058426705985722443357131167913190706927247667618378236834588731299818326605925685705619299417995833431150285686513566599457409768075182371654393664111105731669228750220564720804933759204569235197770199757493559985443158628228891578334923592914760414277730499026252810363664913011273270996017624560332031200846018518192943358645520397274902326657454978490202799082131284454832336158369452492367128604062928619072459654599891762374581460741922131353719240082432263665054584672384309244276728736860132189470129452417111210552958413741819267368980990878527396269077089544438990848739703087745769485500246166708570943561013312816854969901434082501627117122282586112105744025002266977201450952997921241853186690699431857165574479592778543933183620397662778864079526895236515270599171323857004955838515366429769282578872936657853471098139087711391254141514872638589295148184484513698282872736988388773784306281819708695059774265254624838831226503639359019333269581752472075094645911934000195316035418171734898747994624375940594069596152228816040383645775946227962865825179361332714096517583028730128986904402874110455971834495229420883787072719501381999511972597733231669673004865090602680362468732411669741926151391422364170138925779117429919620142461578537219146036141940497657352151688787416217229603354876281121290242608152924746821203382134315297400739851292518690685631623501553764768037887013363296956026155941697023908128391706210695410754211860429777927503166563860285910302747868326786907455006738249713267894353524701337421738491788574352751233742101176559984624234148510336701538926426126224722632661167175042749167435882625254937877515804857814328916099651679538626656561560832643458308884873053976939997137987556329130079994743462951739691852355110758307403325685836803238099728511209580022710063242936814487132992540504612091934109694375767337486420080186668995050577355867892270849814660026149932054139045934402217354707295466930648758675829754587802621071638104874121137857755098012076017335961068665165711608696130053348961499202937388374573557641907848817872005913399563963566240849601962747890330825648241912018072001056082956451914681117655557432459105528706641102863333680235437574669571481861003247382433504294795519770377182673305041178439122171619818986886219288925241866079659235866215667358213853661706994801344385262968847296558900247750761959813982806970789972094488065543367867360822952009607309531064961678849163875687466939104582642233160982967948819835309402634858912656721008026331974411665759020999421944635745769155198993823026392636476842804808444433819492121810761771843106006606764081887168485970451901094118394752687895482795055740590344745846863807905404343527386168855146301436645186699027390896939376759875356197032044066365018504635486163209098066101877988744636353324448180633933756383775592503175070149182343186432379870482312383905805069759047835904498708862618763341711362828887930921520192688636515146076978464651711050113351213085589962483901918503700837165339494959036642434962545185178646142915311284333258308228920068395662423463067801650125951461451459586060163801294635874557490283373334253113803514588536514785618635183140978762675149259224514657085335769781008398003731449122239883933145347448681157775233068361084362623972808745366783746982093190713781809981841464783520747708922292700461726924216614014510364550414621517111444196476595691436272004875190637204331611632190060190049874048612175871613673995946249319359633692198514045473885943464547804325049571186805102899012113781965087090901335598923611923427721327735530230347291277732424617343058364648292067937857018087178475227747596908620697660895889895829080363913382777753055839473557041097095121974415087690935938978180910739393833445028786448678696363458980929238859400232153586005554727343059573285942840644215840305010565414725920212648334355640568584595281499929219742583841669757376160071719781537579624079123749349938106860786355008638765430543789675586603790294138868713487467101236745604605289847100274064148325529457429630012851233310618123076006711906893592633889897717555766103922001053379674177256703569913837190422420896669740308680087925548988042499776326050658971165579811458343467243027533284651138130378504290444604663572718029705046681445134102081347670225346043062086868708657284248528055274639919609086506945494245429395059503661093750879344285580526098999531853709196923904380642985296931500891108743498413920896451610808349047750779509078096572872011591998786560204425425409551430595917594585621076929415310612284015189217190620843775109203675117037072653347113729952420736045119183699437612578751117209073103813011611383112775136398765961142728653096192764014089889531011494635332312220167956227275678229641343959549426496325486897774996614749954893583557657631972673562975296191118744277606299368789748415585010863956843493404540309983832758440372699489560732440575631631378130960055950329116947473779280926067860455604396515284056768142047864360612652230490855870969679511254906095456001944684974793504634419759742991209171545548392268519296193834645310230248864448377863514420975747589060472564789891755754329060204796522456617741256163442704691247091299105127919416058544381036177291744744293082111948744106403153619737005870349290971426858086892627555243103846871661035585431674988309497249657377618793595078431760742600910997540709826847608047729450936407951880937877648682985697191795180895861057488158718193382949064736585795307042494173631083792302411350421044642107495740978425254560829579658970209386963602665653952537075249636613073720749174961339944579874295225037488243502909301457876028026256595181110786371506085424179455509744143251144262993057579557097604100497745677316406231147695888413284470123270136160744985835267620516432274601363109256840912565249725647951674359545970351463889276612778209307106834090890576621378655925659993102471566642410328152235756937704641839226461614515779699648060141873959540893233862076208770765821212461985568002967440522081718671797833068642139094266199740818181280449900565005001773536591171238903229157921628834288902480189724299497634338200073090465855894231763554257701103858732061959242686044973058470326461055007875173048228507865571004133692653285332136593895642351025251478817993269794217392319066559961602600059294340253774073733288010635479277293689410815709870777217126073879624338841285081012144036138663584003698887837286561103205438914632442751133813994129003248546711034382706406699670597169927183781513318761043417902425336937227713445330532109902546657551177838470132883843695031856231021725154123448931504850154074072961794204636209615634112646658430257338539308395327496365550029993199129431614839626542801490985578673089014116054359368175514089695233549388283314404460435678125201430196179897010468721236103864924634981290559250209508525043472095973617079165579932083264464294834140509902925737889608577081811802476979743590689373623171212918430177550016808322496691962681619842639356157169570398775270062403121696580569827443271353033672030041824132255688433284554199490842288763240280205482098924104487391832227259011323896992968452698909585661335995955818298487060577051214925191186808097957832417344053038693280883362098543608453329100667100863165720844163776859962770162205269458759797649065775589693473781019670435180848989830791151185812981988866113581576027291831252771061848507403937926949918209843442421110167430329289080313322793052076735045082804736103032281213755978768639239212561934243695717345903559043519054440836207044593441792603431672030397217160490330605226868153107395246503584140468680964079908321038076975419965153903807348084570499753728345862200124183060434062191072034390641603961753471919998395848723614625957622419473961198201808851306681292595192458641532231331644456242672695785332064864460311013291684284033176174923678821508987366836480479422197767392614105070919028228040289945995788547643522987250973340286104143488073461204246366065540020178673988465262588225796344940753962809679603172290427934672552938164712993894167324553843004101005674898251228881145187954484305245375258396947708363374578622879765466062215891633364399486972057905526978387112101090421675455188589100600169196716235811986828630836206731598899209699061658636971252136602269202388331047472638561296776868890732684250386272152992862977307473441648859564004142599206609686610938822691077029561859311446536680389818601323799975984508345688789089888392507313521408940962621265670628188783117933194895997019170814964968222846025855866426484119118359763626075941406982811019082146855649681667121573781082243160579755088473051336354192497227296851523233991904221121798040012510431242216669214107301998776919097119338944691920185006002191148420861308364734611772554757831030050283816641032485580150121206196158138559418083013417196681891850711409637450800119271921746809333039437513126716682865357547030251484148240872343854443355657059598600783244952744257080424123440412215686011518837455961909338672941402934133355244617923171521296092471301490289067726647273402771015561950288581254993140387306029171798121898611208811185143945818250681772544739049767974756491848848637168850219000164521511203264369625873702225950007383171494342878146747866059129198329325540024915761243811157704750798497316692367650121939061054857818027300918813834344486328532623759896580476501567607242806405794981297903548493419079110501578148734466554370985792161295375321221283403085747586505912694524238178124564363352975007443745628153547882221960748152956387044549259859748001817415904589551355049416444165234565480114280480005193080662829950365247878743539663099998459638046990617620983254217799156228291933550970946057178599179407857238642056967527805011087921101830519733694964602130461726582529463077104550370168578841604350498839527166068332266620605342369137596850435608950941057496269970489812226396523208744510164358733470461363451029090726217588514827961466845924547528632787154458770791970680736710359456001135320508822164411804416774741380397352804144662545405960333420765678818371540610630698919337396418002615222874975490776224824604536013947540025280377921073268992396379718395410130629899858900213609656536379921945182574986307671914621005322922412729556442206345022202836045741701725265902766346893859693672660759743636705671754405021385795453083741553981518558588809638759488971677986363522682369998162052000954337939954622349645221523320191675612471280982424209880304017474604321199745296606283821258141862330975734320822072790456516161478317755104456417251699372097357756247089627884780027627735907602821906443490168318194447621250408723208937174357250346448277648183978488465593623157694477527174943512707208988380529548548849551839301920171133345108376996068561659008193073718235001964387407608535362987673321701481251661017928494426893904906146225242944890396212787621714365875050785647554157757925378566365368492494585978231557003602408807731048987298037947290728504503365206185151072840923597791190709257877048972208625839798116205546736305226928575325114912674182808321969664883830805114484987446515048859945235269462282289484770384574139066908352232188611581222238027795077951782807988343465831657063225712067631847976998734432140109402182211554491660636174708320917025553080015415632556040917570010966887128521342214937774486032611953139075486707159647633615164629921337088772858144655549192615969467775263936305379163723381238575691603926045107912189743592989994051467926983871033692191311578720367058128922199371869971797289047204007415219020476987905129146629869982728042266724781193144877267063646246512530517092273499272117405821744892265791162273593403510410641840997494767467945455000242600898414053051721832528194457508127615752571079153748605476572217684482202413283761175415726117916816336766490537033898605567808935112957078848645813745059059994644112714502388902962127536875181594713241914475240727268997516350817406891094664144216867103499540605004785577234546341450133898723648354273588907648773332407632623142764366006396978168531682709918829776602474396232451726647969126574863574044810069353644601263882235970824784754267154302339144994808057420103959231754820970829539558769307493122886924844084377876041361621173705272650265383755857542589903324852390080774381944588046691826372625739215587524607336778464490215549018200340855616819687597866832791323987324598482190229630550161670961940874512839890843024555296341505578770345747549562277340314788491640541872452058031148647855834219671257989006424139548593105226668703333724885772669394968697988892112575699963895463432366481829058038302226459544008237969599869323282089689712870608678241941275827374276713963080152538282715948275065158911838401350675991237848451007088866014195744737671739034135007634342596902459202436485660076079021835847586879656266440230822139484701285797672701065780685502530827215181457938675661047172496231182684167046392515056733720688688998481940903360923747002952716665272907402024501427890934882698356824723680618748260730358791752047804776914048151807894326465679100672566892977011489852996569503853001142347967817035875265000502453011471247810902877496803112942200904777251228212876631785668006115879644730602372157008694231296897247728561960842747320675713628300050931187132504166117999745034644407854082584589396548750715601044449214419976811016220545116178086236603568866876770099425929470346282957273114994386973579965538158707111234284773187889893459523769362438500244689764532375804231974710364203775726099731410363331699355418513881668569308965712235754145707136131116904380502448075094934821970759301498841599300431118085546232561062075125309475597091959063588721655382007481031262159798141332468488370147466816353640179941504112700434733521444909210692138473912504546918705223625380265395080251387291985453429542401135688984525595592627864840671263672833206633331445963744411129193578580578694336754339045125566309178707731757482769557157890043350162678073327108200511805339365038146162886777447249964521764822442152162098242718719443370726282115328126696947084666090806011302320483469726435574865844300679169535787483269724030864506622940459591507187479383587245961994212246966963020296784870394777932377824814564462084536327638091586413832752778334392147257118243315208110908207514981682817719353128733626694317493401272383792118458220896691053671468961294027064569382611588421237697573548992354432698093508808581176962047186858629230276307486808566224106442472949211151003052752880196349608784238954919541661026363446858441844032605198582179849859857521534168633394702011978746900773359881684871105512598008070377171816891701115700194890176742894960596576722310664963026226101229976833707130194533427437405364729250167953910679451126274780660617516828136828688651340402742154125096465429432040767706737868756997962489788168833312625019656284853008453597431186825728723968841727943237857419803044394805506533437685024490452187042769184771589790459417626918548053738046722703882480397771338235900195124041327362452158611201462934665055948946248470186491052599089946041238049984355087343773717237085710602840286511488307945528947456714298783249085039921342202356178926454804523261338273479407908967658507449269485804060358538539430825158174070284707896764458562045444635914165264688530928037475876198613745286676436602563735733433321931341217945463886898621521958763641366289049157996465991424166764796753579588568401386721028591110522804010442460199283909895054836523740536770411001315380862547581963135899322252340771697343537173209050765708797154562902483536283179384495293441970827559699389497084864329321048228227262367478062664040101617902442410378771255124470042127721590960586554246396890591294309564992866043771478855980245859126200033772292522876670452195500835492436126066446911097527971533801991049030199296627560235680879609612387030097506014814616879932953372998656717752917814279113822037735130669066735318371060130248051459645571329656362406611891415375006180054500611251470583708533394615778667876102729612719064554242840483092666187349380694451216188125688649029342807681846255981226317332486402994887888947489405528347172290120793842079601603638090360353440812341623265376511611883737980265363178183355029055486834963268986712398132757685412445589515965142917786163806490190310351820156155484748547360669677719242053623160041880841039197858300538498365715375804718256014582739226758875644694539274253663809788171533265128817406538873152517754111152870757513114591609916760388097803298285573633913173599282476983383139859881456345574107273605659334975199582580815129540825847647904565906212860597868436218673927165339942127452204894269208024449471015573947991267543252722210989771677038726145301968987607198845417161837456587008696555178248723527243025011967958938510230376283890425662114587259185323357769447787564411937921592262066778494269365438986975284090189801711055814422219865620950808838364167558019190829248990726567538397859344777391352944053871638738355057128117087158172221925576940572996374275205817493957484317957212540958425237252002545286259174686516836119178802132652209709776762006889700362037414867807189113300257510725150192167956752154282239946999181814015874421002764945709804522629142743593203033987802865216249169169234737514593767049406797550115041308048896555169829559966036945240697291382182985868189933283452262352123016747106745102759208594000320217490336927114747776629452085037602654623060801781229946652953674357879140785954700784339320884546090616985036592433280550651341466830580166781904031098223899085789506722425412009775075870607638859439541648105217172466017471121637530708039588758843495469319387729395061912446359951816750832393411481811456647500932476339859228350187702138178680268948464489830814193296342214625762639843796131304818092497392741372702142064343966944699285318649541136583423154405089866255865151587295452988312498885006057119368349350993138554188986227949655563857215716415123228496027513545061023503349879389878214545072060366174865905754114736521106606589519130730485984767127389391262341064341548024929341213883368012580618731978505064567912563499717665356197920630389966675327337546402338958409071631033848638080306567937177396469701209518492555488586160853412237961438149041016421958181882528995479177732093880848327510865623542591707185183510217551435748211665823872506737541599414331296655120880217360468061684068454465790396228330416757311540425070577685558163394638021853236176281907484948795053169080635889956336326902697069255004620964592272040654275342009855617629682861296079520057090686085319324943607433310467806197217312767322168460434119055198672396076693911523417026183842433634802794801415491758200995690794200043977224606212103916460375726147592840404471578861315972617820961558644855528559154101903716126079703730220743806680490227217846275096309328551349719697610339199156615626176271698010515218210285064471283336578766845619243534570717781977760800810166696240062427504313131473188902896823474027361319179682511263871769439228063214952791139033670601190100088349066422352609370558594005550110055049756051505808173108195744054197981352788848025332712028568995759097568802127935676153620715927016645756156546901573077974049263087874082904363419351463087408844120478552291102181118020937787083511298917715779454019053518601634546887960735381589574020680286036389365518085550888288045060474942502090174709942495143948904329013086176861110252160212264975216960067921746141839792608679931624140417206381278479619316041680111803403484950510237412828492885377422821279230699224287145938870925495079361032285324346406335686776850729985619049540919412178846089772700555393272768205828986957589125756308234829974621700696238906714439598071700684599433071238205631161357191438254296677713993738146950467924771963186032466504109408217911566060905713023084421398878982158138087531502916528016708085169725290125693600393237409190655212090250073360269442983955545821047560662887051834493505722137119799330564227804839967232050433260084192249012222119687111986864449840777689069259375771458929616699925753254225861923045479269978895579956719789443426358392954670486236657410672499857538297211518021039430349050237844561485098184288329623803154238131190210329975395670025183322227867158209188832663870698004919960066770045128238932353535669026882110420072104342126909319883935493614045317058634036790774577536959897531803743597713808078264007986575910853518598580908990490931648720217527280578985659563113247112448266690857926278585185704416283687882758421961882387920126402499049537455415911555311365454750495079184947441679783467147791726165591442300699894750636766294684426320246332961094587273719858335489983547867924487770602811869997588439321809673587650162593344323472196739368658488053262493429618550239543178695039163236811477329713301035705928280683105693697587603196594291215969381088926491254570623011320360550202493367462486460366780784949221258305826062578756897953852034570566792972283464680582977538709085570655978764602068638165331204687342737911329500639556909874997343113315633119880789274994685454892973297793534879897334664231940577364387206690917038473439344155585174274811083274271036134673317699740365967297791779699881657194500569418215203118016237634291401914335015133651005470889636783343268217862206859726071868345551518772358831180710762952485013495625885473943997067342774192697618910801541838125768547331625710689381775014886454050222763173955933196948801868580688835515320288964431254396756640942656281454629254157077850442282478770088174347094261886236373919334075947618319675970661411063676933925564733120188756697667380792796977441173530129885877143033655298410714540181278656748297546696433981300850298965279818312269218155693475134337373941867928270979918710050968822619624702181973527069647135190155088309963918352654703516639451072717248078167574101750289422473349448503492940853389320130884059964731280949807482662952252992668164925564510681750678240469886962716508264340187525579961857630247093307824649705740145941034370531666555993041416138128787513098016541067697428739733887986272108867119279901109471049133513139036809838901858298880350890305609426720812116449194157653090193042742305553717890979768919515356214707426141756449833732513293729204942814590008502924135493985839057076471070773028154012180514587610362446243657306437929561239361141020078392073247445201782839609833147747285610969623508842709266951713805454803849241678404586709560376532921189684230107347753538959041578778335316287759727836274083571606781266032322020434940197553038129042017273212308701736170851916665568982720109511686131267604883269265382838855682243952245569804461236255877775740142717908622686829544333418467302629464515018572887809781138832941697243096346794436753453780428694729684204319170889218493175147617324822483635627457611721795830415821805985685619930010104282593545838045833843975268511329515056049275383673149276535140184898707513073347942707923408917110392075224067193066082279913488940529184530887232679081517621734578720524777902613531681613472297522992170417304242345596242856418762148913157550025443659469001471666081410271980937758757968949682157699068136722299789836349740193155856362001065127319010376675169606762562984259716800691235315515444351528890613146108554951250054895123406019911893773336543542649179787247316226806798357433205527549109208634912858138994171528692002322477296886443906308963128064840309602281877628982783387717333034855988554644767580711047639384112049834919671989933761073160051597329209351496882065055338326111153148999956251498547796926510551010656657615617345573798341578422976214016779099915430137216635986568664535473645284921572508164049972041958953103592117618074512484419707883792486415888615549818974561530186247545574283116299444789983130865726089251531127131770785574312517739042460750318007117700187395212417291322152014130164188439456631693439370176349259136375507878989333742608700339043348804736124552088619628044616803685092076966597553386475567328836468238809684177826491400482597804283813597732021223352431173928706741038515356877782226458042633919940668053271186421672793204361294610070324866181226927520745020170558838816425964359726521305523867322135043071474302100224957053754872133000353601768271005710778537930673892162473469979275813008762679843231425214205917291872437084202038694720272717484531099959121057917837214134544666153882683888824202582095971622127353044943470898564898217700570743116029141874208027399389922274714299490318455801857868743756895610248793275808769761992143519354873260455128800624737979362338287285567819713622275527583894660354101977406631571104455654942273235431909816091896362920495310290327229703905410421238533025607493460133645799996536140368189702007793226838281867279933826395367624198915564616204643913184127453287144989480157828838377212814713855432004969508744053948566385480877508652287489393963623939456571244946059281056560281185591146422931462100321328320752807602587838365498848869192138934127709628518444618307628665443494196998352695771556381456015854747658558638714882124666523516162261164544706883940403750292550574155381557745338430177394552638840094375858858034107834314769598771496061163017020659485960656467387340241661443706446843978784387435920166374429129757824758387043442552562129094914165676747613692773429794116974632912483855758001014429780245179673747257150028905931929536351384325198633548087538830635889745549235227280273494690018316935892457922657906473919249778991161410203172053705704536187310519041918065218599768239254402505925400361622802142725559098290216987365041172437022438271123817082824667498423497603205783237753180056252501959487021067114693245253130409249510339802038906588538833099393522851361298829298848865300523680799325349796229564326665287126451247235933431731662828299387523950131802337867245112267794563756520080597308595180273730572815976830765339699887229809128819236572354345797412503823141621407990268527571007281700487905442365715558175244196279035422450527701072232718868796461067796215230562013448744990155224261378531345678974192574221339329130295396092876103838321572887413933491622847947497032701536203131335074423152517408338420456121562326363259109791631294610032178302811756960742478769979070141864967815370426858969894367398932609574819077335351677698629195722347498838558191483184926937673461182058442624526077840834572644307571641935332831283410206513987286510069280468941203491955792656239322406968102846102928653484753587950048103553798945013304882476838831614035004297903658517184909447640986801977230236529268947549050163158985689557261231865737811132263121206430648391391183357111890940520976583069196250525762281574949198326095814753429357963118885194768813094561905232069971987570652296479108041208424930895253128130179279148655886927085724826803045690879192192319783501191136513287264044320416423743192871628754088042088109613945097817576835458130905499499937698845484406829162340112112911201172898106836441868130788884606875386209948648662647427921679892693651624465287739451255215113883812994704023821692049717739965697127900153833263167739507177632925561870538785177973810018508655041437764559683164917614379296043155890182153790793043606941247723364658838610749229295988469834899439408583549508860933586203865386954762977563108693282719435791756472800395115496890633886966241514943356374102888875373559921204051684347914881984227816454200825571699338025581071913610425071848374432732262725077011636935633480296320446073221297953215573018782193079590323329821559873178616509269291324580347552999769883589548257113151982494059858946786486654722946037841339072304474129146403413548417779621936656812290642110511360561968918252055161177232678318099075175810113626933972583951110082896895636491045938492363151151455027476001028461319344008099771915547056915343701115895866237007791843333405482681655538839619011455726320329576329771025171459792483730397524382784414621308925906261621705230004045777335328534384605833796237593918454211714341878896491685616512113589598253299890610123847534010568547747636722127475082566165942858269375097953897801945430577689159444422144944410796456238078177523927503071409929737340197941515066556829673339855651048468789191969981551912919127950241157763603404872806354703692030751083310707029705840166472827685218529987166979952492148483880255808868693586810939843964037617350683567069549021078867408856674151230385902743133024097746990735478706189710974875048737073162759234246929690280782539367162110540996353120639364902760247790912495021364065902100662816027873307500277247494864004966505868487640010384637001194650524735905111900546956456045174290234571378176081694291489027388338301395702765550495508799252402941414206271150988490417510839654465523818860152379714657633225179286809472776964792536586389509734066197594479836554832005812319122789184073726592564959535323107552970794719008479635986371340191482281998110279533616515403956241248940687214459932484474530669699189382126922399433572801704553124121927325765862207249722190646054606852000086280648444139259939742190172449922972195606043596436332350791749873080642957143434730363482293900217804582731735726668822676443657045861541812376328504159218733358532396860908567490140877454978684960150034509402932625324345460880067139246761217235424805033481821892513010887777597256814668981287218666422481539659068766560253676257632259160690999520258824597222896321228405182187547124947436513011534711089793060312723013479153702530307082502579958727920856336560456186537445135558526119510940285789767250126057567559406840306700826794417990260237878935375479118579611763705056003550431809822272988471695593620959298195559382678755183134711762306151360246497722927778919845716012525056915463921135387758224484169499171215793534571844691539966519689909863772235975969329392141702551242896396089519985243087590683004402602957680518431654326238059498414265005525324628871667406155910300322497687541235666209255946174091970108506937822788921251816593564797882682381449864062371693746675944924135697803850645087086093164473233540155031183572706137686983887222883744664583585333817255772232002130042445244552809558996893851555856958253433098086029183642015067459140784176115901798461994985408424919506149118466182504410403263702369504672939400493239366071081340844358976476433512779958185612617813304690662868985333571169941634642969523627170443453682024271464574086170101820601658101653819558926429975455483526049319536357668527783379693503981091967443935438939964384918513033050342299153092331241424732201639048528336375900872065090493857615067934605477968297036367072488192443625163725306528465420163159719307914372219060745881010783812327394423450291862335115064651755023151241722574239388197616825328334069775401110695576492071134731526445978080519889335027664021719036964769722270098674830423890991992426288008674666579035163495686447277202708172214338418145950787064638866403059514259090910476652706660637098859153573423098381917823593178388035840467079188360084039534148011053825053877795353400835693217080164744598258158412166055598217352805372023450927078480237901850746325470591130858703306623728016466949248294976201860018497808959553522630359083227021782940164474574006792950243082821397142666263165518323913627533987144256833252205436003174017442419307808802825926888088836651757593217246873402755175081412093281239916716502233982744415357176050951746599068448272277921388055556436462536739217743781454616327071531813007553515427227128813877123823783452096590370457067911462012145582495513771379071519094028924123092861305939940308045713563277787527755629126329602536411894269020240212400027734074527766012852783479393760750320160993466642653466761858622398615781929483170413871117521456643781664694437692244261028089641632783638710507880815067321813881943396928868779042384508742509350262991960134837696551498428753892174985646700652240714608343317030195533688721437947624802964588747752392981250166809831985564697060960317742523248550999935944778260491901252419978557074935900306426600518417760530693505758085134717441538484558139923712747823676607935383919399628235381749097024495071096777154685787931906522513738506766807901661286025149387831709539701135636033651697535495008292357152845698195554258149504063630551408818406059034275240762488753627387362480225331858849502464219374040766486908313231190656244893170362585592896680392072076944438969213776452608551758343859504958328965510654970873553932556552142314650084767553754322672410039769296948173577069804792124558808114997435803744541084364521992553558871740571239888758700531491766560188315947048451994240795581588921779302654003267637438158455543352668440887561314401812918466314220035194765048020330961794996436825174946595582655425233875510350728594584924891461001700055941946327573161382953941470534647643370599520708099467555207708159258170806294473693183800722055870489203893932179905642646485314483750443560858275418933047331480955062259170271823325030108846078134096586307243592247233713338856339473953866144510479721190713422541640668798726161190842038501135401813532986257794172156291606591825809821844954089170111902028121822260254609021661957104409750292853091499099741608626797017218441608512951712535615613463014139336559870694707488968587286718001561755957551442382586446078205690067097445128465866092854306846706817660502669499996657339656781136247822083263040008283229967970598635843637041500200668817409714149110834301240049364190113200019205931895233733405668181976581832427030690686607159818539417156862453302931577446367241632714011594802873224401794781097505284253960925652396843226160761704583549502535149013435981739863103580569320414551081876297956755082282811002248570855286355665737672538207852903504088933127997641858664359763306588782307488553454052430765624953554469175444615772563049824208628636288874066136575319894321168307904670671911600153026526413560025986027842247422217761288868834368088509187367048137010446414609661189048221460741639976846113159049496029036676145548461235958313712573245049654030949760619964728055141974711326024144887645974648387894883029570308838641427376035519105620535382862996197105918547443479018048059621118902757276161290923343765795254667554134842908857003515373583542038434783502474454118761993012793362181606813668026472668958612899749335127649142152610866702842825978320958114671905242328683329203596566021682420336135774988379311167705825662887337717210120612128211076441163592748799105394123970789855238552792410869312371192947457727615948495063783494382384289619406625407683358933487214909874234186801660515856028701447993052118939667647574147740047619722638728982600178015306492758361627085525787158206778833022114584922311816670005695975794034631831405489926525155323990931374771241720795388003663314167747779462554393253514078509182028899126110645447017907544845894030787634966286002745063002818346686930170004197196537922474828622652436100833889586462038034333188168350557210057902406216042380690290440405965229511538288622463338123425465407770276374522907136653852211482469720369163581140986495914563868478365069409880871064963572567947608933849425784749395759999259887389675371687603976779411198629193622344838644997659624406439326107681130206176204142086197452708081876096902276650579223946767125950582114834872146980697856566357292832599538295774848901424652646815756047746716058981951504877884161667350371785780993652082203678156266915252401990354838084648808188978464381480114784397620573931723683940294569623050244282966020959398909033834920014436840411579412539280668614884765978608374090835547749132104571690883215196738937005524136513746083495941879299530989334980069576901566832664133652926307961564350727372153810826401363954135096027659681069059499776094577953399330410140448992490373638203818891746381305205960408498159084697209218993199386228848803183862521919273116807050841132395130527061504751413708856487906035858858557719502073229693779241132919443303554960900681706437952888685998191138371704358132835637527558979186169356849829718322766052390781960682447763526345966700607840633243851270782416897473898581514578832290840064447012170941152770222205246907043891870691514153825772182422927347600920287497928266799063039648153110661527694953151361600902497260010643414776885233662097313229901886730895442903354411382561793793753929915142171429768123678637205392145389271935828714658530713790545756766734080373847616853753459453371537271954943704046934658594939526216448893444828677579883694007868513542640130320640059050490223844230520179369116046979373509372960904103208923997510538846353878634156336648273391155590457783986298187491102972110343881701029629086733441167886619030551593828431860145156911743428132890430066846603258601486538015654389742025580328166981623631884958840954318119029205801571616715791427890599603707770359575893634804982278610571803611814661768580802769250486646019744550339394849494791322159294083733064895248516883517565597708972401362582761600331197743139165999753191138572281708170281212455404688295024769913496595606597869124944443946055562180763703035556510340823649220631256001631280726865343650652270322024011717457546212309259759003849486779602321330696053016178095409820180252358074693177763311409471972981968583163482837887470577696975153755602543366118315312259698707239068993052912390706617354746939432525081397721314044323556600241709642177124251116102416893717616889874309656437990765600625593475938862228883547878557862178357852712465578899227233831541528774938382197647114568709480312866946962670834429053500854670491832575450045128866899871175045580806405149660251863970992617167091268137745681083784110582661932648256659128112930026758576710155072668325274449469149090143896247061103667799548198656278021497348400887899975202571943092782313542564627594711078740875731246032816382504622574262992264898833942233805508457242425078994496571974404064732040305522552095355981856560410401345908435641976251909935387305713154468844081420433813927618187399108350188176135616732279152147286172570867339271548501255372668334481968468890007156429537593420654037440414577760173305706266037835847325774697732262585539225727127691740685195471862679617644764657849056299604311494826095900990595400648957905295424711645436069138204177683215861002515991066950383580833627942799124620589621403995709589335700281198055292448619490063801642978140567610923221648364842475530879112189538915811506567154001945692020556161894857545646717277428940612498885872012932308067521529688521801419553042530140749820606260085887478248836195227698423773773136798321737607632151327223908797466715826232740959164101875041673168961818237854308197955637041093244813705666929181433513835632767084112409505235418216645872587263938707600993502132595214716197739966965799723658180734723442099912905201007115182317013662975948986576100575269451078793631159472539288130124051836116514092105697860055681556089598168526383977070123763024665210424766632083601829221863874368307050533345377651484062559838454381267994096055513007007792194724900884759795913053109557998039542353991898127486778269313708541240620338029223071941908584554627088127487481160799804710454214039996878599944848845516119010160781128845247950580442019643290427363141618887608196885652703008284009976158562411576236572531232110506256855310964031895976941952408817014511145657896172859728951048533948717675339487189191699132833340829957967634413227679049886261810764113890513122802970183572082809878454897719781549240622817494011280779883544107589594985727215465868109635009129428716201340453799297552689571315484965000519692372621641551121725311827521268767177304582478671638690868068896404905365805682657593361875758486139452030416906423129726030756417973040281051733989849910814975833990638178862925066053014977066213667293989305120585095510768085400804390670919134598231225408663184833651406734420598965594962369521796344619955027209931190417491225218662616296186526528640292012542355759713556279244154522010120921788676073234532519559775365217246784451357966492939832810955647601183409636798772723170368873964793168780712037870916069027222073035415044124790181660552754755980484527454272280340131554588813199408411541697274641028295359984592433905418287627984747505764796410297160742167467485158127645732914439488866679236515164751042502715629174330661271861030381524310875742355226455213502284976623731987010298439264572417501706825725964675461603493959655278133889037348073288403594353038971602171166887178857407170599579724042353823244950702940801162251474692828202006211943859489381809583079807437950419080496185419304864897063079485478505506929568413214848036665775820421175225632722102496323408172727729799393420481768523692132676853812542784732275232574139962209420260959095041779310837400304229553286647674347033240131694093320043974606618463973243654830445278013429465282184015015371212760766512234478525152411012443005720043353541501968488744610568528252935640781239763688327145938801314602689189995471714250327206221093589019482682550507167441899665119923531634148618182161315389953939666824094864719065206628972819234251749353730321744988469820493946894975872320684976148316790880841642227012968988544025544859127744487007371492545676647745199890770642432849557979710170660975473400365243950574724187899180562545806787578947102148635883706999255543430954782003810276787626874533980503118152454115839407386540555085766438857990973717438099745964339531331758718263820018055224522818720291444271553478810855874605346245474709306270795194034676367689830398332437530591383151883932701790604814265900397930159544245411916321315569605441491020001970506113190995018676345861218805438350499497891494609848349103673646381184320222584157451235358350874108385280975023447381395045455105092571639204044990369314002150776833717695425144248631997050124331869000589898193307085326767194896798015561352438931887991359541408259120770856576210064237215651744519253157032399944633023405309234594026911992982472077501529189142503437926823797512470259139156794967825198232198521368839629283480488064281920468094593197374333786410286186070805447690764683475336788508193473315211002793174306573878859716026912015621936758606269568188658594189976578590757374208828858893949395392789638432009981808228443454810744169430811110947002531135568990383603789233996001939276472359974398025674194059461385296122275514536594684539521919784875478733637816471755543132886775848520088409729440439370736269168158454032761193362091727718957957924217992428401476746913119419937019438155317992764779438907203054157341675973662487843415018995135525927140301959634884923410467906044547591369297260993650948118313157452016393542544356563474274462205686768904842292044314251937638249038302576967809057999555822019524385471197255402358091911573312809302903548684273600202994570380102586500191220951836532154334072650635795880097371071294879248986807904295550075287866812638950491817299152027608116933464450611954174327814170821456663564193094283253396957738210783419117147454418422613844504745308053083404034804416640972984650618045740843889367789092256597170447801160158754647940023164750011419222525160373842919292698852052634166238614725132861717415221455167063063037725222044521272783111370456279438107276880970347923595800774685534872040471144887618550072023098462786395840031547010319242398838493720724792158495332186553530115331534074988136549313576131148762402117883349980973919680668403717623519729838978381538196672201963987649021812145075665499768653368172792955239840156955402774216953204791589454609861756574375931289076520031852823889061332751163445101119343686812030226529847930938397105927691762929206786756130557787651223743829711774566768838643520283730730064737469759433270133224124955034481880750237089151093169399534857518637912365687273457086612274826540257577628816040402701571331070130929289413412584799438160178697395198460799110011836891917539643954672544205638788266255083692814899172748863439472217917100882974376695033567340105073078154449642202579480110551902243583094748647957317756835887685803948631378609495756048428302698009934143850907221285289502044687347047027559818516970679666536401236551532160034702835847760423640976209562767249269218914945501591566111747108948054597421262984227230218116255450560682762818609419167750451729667525456665406204766118460019798588775384663003016845120390471806640069681187255379280612005537603515067571879265366292407793768069519520080219798116617595910630404340488472638696224850233041508096602099712751727358457626786345559269646570336276104512383843446619744506912163009572851887876911548079164346732359987186828929306909578786701168907185671060222405083757810512567453202722712520644117910683483610051687684723921698466152180823190742925373873517286895652432155497026705516306863300891498340257106402641333908914497128349030782869227630818502173487129494435458644621945716697840135092120807050451856644520365456932844323548271687219350077113666062692839542572353307448827282990297321850548656696758961281533261156484327089956282091320814978738930904684503161682940200184370598619808989521030336227579282224882671729574823101192331601309698201100859796327211634539020775488275277170187490251567750298753056714805201219960272032409522094004383539323235094527568577821737376259946356078931716554374096748077071798444074752275401418739960780375881986718412163562601871473788110821128611497803017662975559398968023107457899370991152141901765317034900894097350211096239925334450874757751575423189586212779147853008598513586517499183877659097412942605182335237585130012370140666050437764466165127480715951977679327650505402367825634542349406698713579680753945561441466655332222122659245599332024302933794944220395575433111523717835176170406948225779683455939970806335917456577819469160146820122886724477851916990924148875462735640761339859108550884176626706948177378593554245238587260348576209690822757005593674409567148071921716852271844055700635978448000424842914645606721412010670858942933620770674952804519131903411933823166824900328377895903842531457837421144527716877167303391412025053670227125009416757732970753794983141632933216998812196510326471221248550691401017844111378350038345504731425209259963576806998847642458319976843813879544322931181540637872457884939401939298971842287317894493382352552891347971702036465568027607630867329702996554501672848490360364921604502849783609975232409215166303076540640803594275605754932126928143264528378451621574028887563351869839073935715135523833057645525840014693284157472618822552764852572481429181533434289087130476615323778106132547171940111376539290007752233221707425349060661870853878551125314307927583257661974388038840622898680555911630007980815409507982764768822311058556316093528217955927750570457113218676559078546211642096111189862850761693133958643473601259599724901358986902380121268447920871409157252413023816954827087669259695164429028398341829870486358727564977518801207007289950628560588945044310314317087104510588085423413791198160992321304096269123215039329341739498799211751940291761199015772214404872500075128230724970953476612457107033018856967158321609253853339107168536404183463628621560132782824305367126096096616795116190532917938275173336517297900657893374378965551796192987869699535748339004453365553122306199072007926206801899395279867347138564355994973672685959529171130235789334609493793323246857007094854035679470714218250267841671689504389746689788803800183837945588820725621976355841806336027605191784246741859939330302587991475623670275673549119301044593055333655510569735324492169182505296300924616458354227306475789548625340729506622921268828069186432232098328384800108563897883635653833110466626866031027867502196679804813072070483699770383677287593505369108881216558110858826342973461352735972899685926736540510954747800359611135829057836120175092896403817055756591622348480155563377922770793941894701006730748716551760438371838861650128340886417021094452250144639047323288185331572346582451701783327273940455946771962476883901715455816857867360407534122687794470039326916443741520493273394831172618103718398576943763997345922448744088198712478541128673047507315751733480498522323666836143444548888422561932628861523518282206473491986361565776733236813066738019593674935106784385316931033858610795207885337137165497491023778517488670796865755800489705458217069758914554031915724725676201863478495971900367013964391766938713191140457340043381906780156034110328401269951976945047268720882357221719006177354340297637730853017936042406422165512985147406869609271079491605615498606004468642733276560551325785009699214104230494197458798138628361141521163701506752939806248696826782198696445568771490400442812128931766546975565478721500624520074585836482925149632701127590695448562535577460102873714252931233483675262499923192793126468393365466337766913280172839002895799358588095670399465139778962346790207293199412755767277860952336415890406177062615001478175720063784538327016616896920629000571659534174436249163571908120607863427307959352537419432163452007790412743347528785062418554166693500554923290776501354257470923239081956397527776857924967318737783641704582328843860926647070921777715556347498069045733119658626156713204333613052948440438331728230018504815087292019159069883592149919681753487752291633465183567003202690074422616558106265207491565136251242152564619743765027555703981318748564761790648217379826383248306384902359132688865601297390198707941735161647820916399769721723005306116883930421139586709033120211006982883706820461870086865842966013806737268217555320883741347218644775067432098624642459805090336951959568407245464387291851013106851441500817728665869308517137768820102538369021525561639100333043457516440793343196030061428719778758996148711552946162286856681231261568496761554396978415038937374784439026527384232897911242761711979089613125222200223049710963366143130192152664903497473264984724036023060079851945008129793931913761266430296240463220309945202365433666320883464434784333355481605499621632478087215673745242486337356584147298259647434882160740134843107551488772103209674537713148969556036657888061361005876681680395545909501802085419982605778868560978017768572905172313618673390434460770816072871522808586586913452095147809033999208396372186805653398801231142977911418346048429935892913998126137538889015334260602980220832474691094767821108331012341168409489686431250774364561045074011680646963277021368460301449397432527527559516307929229371703174137998392506002508830896730237409839402469999631996284981640986946390536983977736713385670515680674309406465362764522207143309019440609868831947384426949845689226548224078557604964664087273304515085780308250746905739310623960355770801256422843223181186315589603766062855859702983877711512331302625637392392559526092808467559899126370449934376163385457406074053289367364608087409643331424160808392435603358671947806089431625802386263972695078963694818432403359497335154059888553084421935004722470434520785316839664005938345551339944974324942907884182189737666976606601257893685217967665400931785257682895420529650105667429437120310097675752353592948635037130359802288158940324533961538960020422474417087927282196491006732727791022115164336305432292868962883335453987408177273029965051433217878974232619397873294020547145699845870888892578115345859044921242661121990004331399632608473678144976107602256378943424259242412433127477760711162199763839599784985622323646963509646874553492819424471965051194997096153962015395531130248125542336709103795430617625728825057139901983468207412437315049907918633123504800902761078743019604465724547585982149532870927100879923971815008857439206181356965272778727491925196526772829642188776942725227216411794011350660241286470802043044253590250444675212422564870927373844987437738705847610098666689177520939349440548687479622398952349981062141693115854937543080432760759501924782386851978439151539281651203769975160976206251831657782410583625725664726143893502909339802183920387501063684654672595549871069571472153759582149823609759688078013238413082629886322470914562318421654186123855113012801742143763333025855865291655692398405433612478597834629090968827661924463917046938053858223191777000394905674537501151663671867335165761167513892261695423628222699526987233912693975326554351829326114784050120203623748024607944007477066848654727526536093137573889559156266885512709037644228239276832106605089345100985147476388284316259540847002082267461653069282501831962485827894420743296700433051014711924371754254014775696355820894738365520436244459184294698849823730487227693844770590000328986147775149493824996396074396132960970524394784578605573947087450439526717327803218226313411087566888433926487700017380994035981320850955876641421888631592485640288210250860027037942524919174072970948467530644025178846126967953687100434958124820519698135176474988772273982817244015298712303285324137562411135887722411448466840392384641228797064584965655162881698444694446018353986404006261425892681157017609946782275434975781536087439110788043843119696148936946033389471640758115345468125932992762750146184667980742193859075826833225528418800742589186022139801566000385029859085151196816308189751839582869637552509598699757481911726857257415864898231475990348769571069781568469972135981265680510843810615760345344587243991594862407230000973060119138907183150232855387197158044124548311240185993548043650026017426816403821740061768411986951390424561059605110300514509011677162405027152235900002314854247232561948292905323241575452852722030028328607173512899652684929389088903375504228167557380581784960064256550949206576454869630926543273794022662970866708222749188219036237231355448095404993063525440587570416942247020361802763441350798699500852531059171749561986761387632802301966927908860493923536480705563808997997976863868750888003428852954080676450363787233699741317784981980722325990307652249631764114117028227592336086372848554198040529528858475397537240821385376689407877843547399965147632019739780257395459486588872008480564871325784500587563861475267083293879747064929947178850501633068007751498983054089056529484795768635838623459508486680145428128713706485910965510533542615165544287791835264494066927202265383382556953498751799400401279898552829967638760965257011229718571349879151186897255741345738657602169070448388252317430151799622329231969059401586241885871262470644502364653939797941382722874952821353874853963914030595922453333151275515484379168245983736607272357282454433738744583553401917957104349438152348706688058043924036469012169623939088533806896972195137255103103660072558096830035891125408559150444490172303183337378689180818156639979899956078048746727983470059963326396017203367634475036773547776298015097445781324506979904721965771093570744786247109528008322089175800821097730435549881495452489338036991113821124714306643808255273098071239984668274278657427587822467201873265150978098114727972253328192349886280757208943242254513897810790566334189998486282306772143375889429254957065151891827798027984152787633268653186483988244388880842177936685772708278354020046531774819255560713703937594316834669054393035598741803957926879555015665064717385258763183727742452460438625834048626713179550023984584455709224655892396155921718630047313561621262996041942257333057389823404839905375133505957903722665328689710852437275426976200605668701772982074593372351156363226034963125187630104924165279384074773515195014289615180405598113522416832645681602737807316434945626135605780738610601854167058476463751681252269745277679905170434469559526478508296579886548342652779686392969385486850619872541521675942638514964476964442634711530306489889290969802126522112153607139722606605119650866281543844215046332099453605648472353699653490196116226942152134144880174549315798769035329845915377152681694227836969603372895417553993269513027273977279326457025836517558684164615910637074400269997980181393102636276090926208649508746333341037189285372195290926733760407795081151809375647962267814546693562304355190610155263309167599878563916537815717949725646175064155680716436195374422782396959780840090055646137615070526712875512183274293295364605436664173183439173378003577384400232909539173745618244894174930671824785666424142623606362537739804400950168705532995719369220398056040263677630827557895405341816629307026923359388597191391520327561636762821893220382601364389175052842820111943651860051507580846418868307272144314655299329727102732954132361698895517119685933709362205191697887901213922516071063523106326635790401734654625266519634887407613322206458108354453066375542587181416659555090827379748010878584912240019220836121953715092822858134079677143701289972623769994310060283375575683237096697184974663737823885711359724582564758723729310124450014747629720238628258967852585256929145291874403937385146135267275049726057185417803580672088387577064536351991954961313078315807308603088388614850879729417734325152649405018703584157968261065410441295502141843406718197967312789508904837852581466054038686155437783065675787860994909523104154071759177181862730461756465463623040235040840015831498270440043634410312454783826512449466329476052704794632058865186915458708913739462250712076782581370191605735945067247479806537445706796264421200204741333770668969937072395177423764028498777254312845946471114911493233952635407489710747922445762853237348434708834272986623751907873596106007536155400015499121052103780405060220496746608625245934937904250313702135280935729843259741628652451530386927871829190641680417751983175782613214888010497210644243822522096425370597526151442127608606818993793936772049905965541061676510494088014331124713595329604116255419462751210005185015600079718233057143423710627793348765555628958198780976561586587969274079456693314508200885856853959665351033257906663639807775224159192612593252059574187792903763775396937732107781965597847121233901500689800083341376151892479354483139690656344357129810123518792376116177636256119278362187452472866187234192492242920784171133708905419803733866499281242860581677321118081853037040082337460338745324485152225132980119953067409748628013681552940731078287845311106611874942564321321774614065315196963133970008364588662721442334167259708638342131269439408387468068687121894897302769628931786224745134811570812503569908196936153566301159918573065849237678386063015446638645750018628235535311535854651077146200142758670684547474315904308473870213110449208544854877830031805647060044480259405678550555687589649668832580598185571919840440229812486868469160098564706759920073855372228325244301176961478299318819808376016487455593503381702765770802816558601034773719106451788098517770102857867574012202043018012885325292312449549474974421563670876009765451566303649535810596744309620568283388780228671224833965781825681124015538387817037289495523726539888918453664388723352030449519123080971105686967682399205799716159940676690256469565532952950222715130787798629668647880072646609686208182968075515636926622095335152613387257891738617705004150890747377097088239241138098339047072553064374900084466808169408926761083394701217551942647983146274107675765005554858496870615266508231213536319910782755878614096382871671085732110148869106287727324563976423207821609013215456397832675874635887325534758804533241856883285026741088814425915052179123319421797414404219388906313429904345985772974279300621150043384660395014868489187889900847995710350272530162460527690490890926277037297266270341331071445897387997966960104707174951183047127103589338506854492983276361834351577569568498389063508588116604899771043077845578891973782275996261129701223417555736624784466043326623587186384362245178654442272823183758668568058655958847534830927835899386350226339144163754541126672777053024637660832445753757099315061430669564359295960943494028299216943372547289259222253402081939072226435984856303287598945990464042087482155642356653580017164886632350650777483993189611649502338894249179450378232571891629027044852527381227249621798659270506084534102568502939792628541764877857057993546649848778983861013387468380985265123954612416322393922866866372127991433839877104677582024773556747414502549146797937495779963569585299646043120209209228403854903186852716562839491244077629976393298090416759610047288999109157095835685410905648412306477465423620065556824051054407056646132400457717413359954667000300127940920747452248788115567778095529922916122280465272976372611245843046761595972352489246809139691695612059234383156586408395572453658045095152156680427765787723727275524614395909699004770307262525661761583813000608011384396354058245727613500081115813420210274804696091284898328012379314240663884627668096676360904891735941004946670346160846462927350041084269401970683820738731455387382732251484001575368209597408023852882054342708818175044507753473085173368163737977192320570265002656563687076454238824796303859838347242223823828384782823628277345777178109048132101210414283520986395843003204854049695560421219598026174789647826111669339264617292779864276928971307055716031363473487738682344722409759921116406202115941895208014638343580960087663277530300243626322439487471289819191281196631075971687753285194802128227949298049215769943409828089350385247394278377191505152759011248705199898761664892856650021599312992717630962380830689624728229357761569198183625001634017259277401107306990458996153271603846743129721905918321435985958577441824983907586749543322427496149901123341528971685171186641285027188417603359819168735985106630984685761412083696742626249668837938239039514113744178068263421924368818129291752437071465864521286733097885468342179200805889518718958150940684594504458695380712800782181593837664176030858782045583281700480546876576288012708201406972132017979536003918261339093408123496178798972508149071603168071125719962908673160777444928274152260227167712557638019234478154546421989693211034183570334348942641093187030616431168983075145070407732570208676803987807741274244702807773065024832753347359044496248806858595604702037496445462247254453000540173421281098406444200370484289998233430649731398106350065801865214444437185600353991356983841301301475322396988396636660639702481413313664835276047856926772826663861927249489288374664693338521123217163439400453351270431873588048764142879491084366443375903628535259460522375756143533693951806914962625804534040285612707467193939279757558114483936038989080602846182498757646365613408308845283543598808529013489166210213804803457761292329980889831521632279103721354939109123756340055827700054660698650657760327977975485009743935178358997164911883433256740383152055513006255934125313298463148899198109113642586445643972639118896482404197522654962991589433133812481014549105314356827078437450802652273860193740972455934949466817179791458805528943180483188281524426749901746114555204533600213818738698297548212305114205321129170958950979466338496967788091795856221989771117723541943809271630729350131414485434583683697554007979614350936007368926847715509623051562599521701908285846382791573592931941665032649825182005212847909982517432330351070689202819927130181610473394777168672815267525991871559465016087395656943862835265076589061574612452728512286056158084454285542811830956895834152067150462055479835105323841073669661427146135070218559918869795780873570446477450745413731420817425980864664787690439873817990778945617067641019723540688138697114947087895511699722061389685792721463389802545317299983762201525698166433758325251335869783305744293386230275290095565695400362487950803388867982089150822015271465835306830260342043063388213667189561142420976415514874592111360763682460330741380192900131090198931839961482573030612860888196282587475041607695829403637987100241305484181536751645364571675132393492659252074451012532094876314247483530901699351023044237442817624898591447533012956188618328878484047428975987624781892365971765469229357125670433534067181945227654877773800682660947399246758580842125575832075096655541984623915862461477117644606853843200270492226117744226173055687332298442525297743300065059939640738840776059518978328937695588090119469618747860243750008894531925226130488545393240448289211734296103378821231974907754284608815878107290126887523612543484945748562116429961560191826778324327758225534043573583880458314552448817966123307231585726869024228061256503716490726200148598524414379445122338432412002798732895125486121561768955560262724536162220232807171319217656200698673206251538533829390637505264786142295483452060095140712100447973243432436351164708484488449449734856850617339617617913517491995119608773503890912204355095267639064727290318727047442590670907934352077401570079244779193283814496844916284328398669742605024051085356649530339221953208756071495172193380445338401243189107333575381886638111539278764078689598440370960538790962733472171773175342601624377289420504472212229864649118973254944511235754463379030894188162975767574315329543316712151339657984222704722447887069332535636877435613349471084476083299910262027376623105153766862938588310763622489748043223620862497183392354294358785527114691053033980428722901183606640272876332671760894391341427136829833455388125753740265592024108798804410652548909907041346330347694901940508182169018198975753361143100727788261571848073320605227272328734384187491419938149031049144152792109745337486962652172639685017559790766961766265535347044172167434539672598206396682017509664201134241039715676485503003775886252757529049182453630462274229895029387656994898282987972127972504542380968411860482528155707529999394069966663360737694321144575635944250364623754234927836295330667599970524627835937334889581755287061390068954467167893097384975427529558302190578491863072697346579314875631764786251103884820248370287462615170816936115309556372825756116700673189093274165856076895323219245529183131842973488674608494933786852422177093179630148494881225402005058704125726434438362758220609700058638348974455895899351611611976800484230654128356834972940573293302847109317340869662183370751484004559634456586737147338396249038416973227644431455215903112358764874478773753131598704775418486778829228034242956510619379788660691939894334609103853054405170108385424730591953368064903506239349392740966676172425468748698426564637567176319901491616947999028348815634304362118815956844392120337802912272043942458170687653950836481872603047576703749064611475508629322725633608273961480529570593935795606368326200553523296236646447020875226099240567334916648405063345585286260962550912471804599299328399706567077221053514956514484283555627592131675470521556349174397252164092483874532770028451540597767936727806126225412913220449522960087154123748071639985581859495906605039317673696345001306183761162372673254575331640296364008688093247926982495238743044503376002874462193607934438283844661391968531619397987679812818766587672985699710142286237199933043984632219849304104382572534247907354387994505309357082436598387909193091560708306830438944140953449357571296431687288841242137846339735070413825578924896364678958500063626098645129271401391681536918370604133135226913436900119876234661395828617967410824962507798818673223213883413167075998145947681550322958360744768497074764748988039723975161465829022260419821988544056148813834140319145186142284745750364923917286029077297918477507022956399457338414547262320197077071887323163003050231779869064246685456741200035279688428878613594884211102856320414445360321195650260212665151339858804847076125448535536097187614429593964103938913884049606238852278210165616104687236027422993942190380356179311091866025522716451655198212607085320824977229431759041567019452192357397037961538281577830709567224206357011770311604622841034033701024083291773208082444796454852453156724218875821558482630916452570229134797188382565868495725272622970362754960579242875585595936758477824100789440762490813419819059175063056048758103514733791644593576690288042195515316635149212794534317584632653261195162099758804036393607927054997709771256612559578571888121125370193715778802761476319033793511509334377433679850847913499540696761894173341719903259211134630100286799493513657668640027355821627991381294017719488434386496865577519722394477014416853500410412940633396036162779599345051619644482323542118249524657010501923635337079994881734255191495651008052416478356168076028716756646809483589310898531815705624252389520726859483711898329155139203606807945917307448917536676556934837479027427274801133188197758847027582187608861328754446834480021734816920490490579871477144214792646109174875219108232012955907778414221926433191996938081052352928766214189150232471960818668625042944134879509285049532584293367630292557181422981753666919156299001084616094314575167359983560847157927892962292949692879669224053038717865203091113510390484000129943824251063088864380014291059685865323279277647512897167380417730648425691041946388099665954803551310579868085359180571326779765365405258392459235820088719571580311476132370535354613420227845630479606989855104843590490537022728642088554031570919319660799909603300714376664048240663568425059730915417712394560171007732872643232669161442146833790519952565929616829638450343938859785382671326032035907465995044860468804413301379296306304741357439694026787117316379558297615030270499394454908863290454760169253950691792278751915151078041457154773979554483753300717084757205243341081815384456441749308996456441844987659774371077582940218704892501053991209220748938964848312001241884319950334868295249843676314516217993014418643267930045246823602521955220086472629385896247681019572890548707331710604426248205036700817382614073634339513103733781394316078156531373136638751507147371685327820528763389703190622808427009026863459417488859444060950395258083589341425011414253448562184639548956006250758991810438657127647269201352575270581177876138236498029031333024575117815261820143656415137128606415877216845674444384782969082815501850612956418042665265036978372855136852351274425274361887251838327685148020867563895021513598183001912667297762961520607198359213956994407333302170193982362207268743778079605474151114541113939229476444130057684925275972951117342417015985608929694852930918103996422549282336886821332527584449046224022558430416639993564488072343840729295756001370620593444937586424982567517348107874532697275663268399712645016170123456433016616105062166958190878169852428851273885449958567376439346345373191452481808239181895632637743846949565909404460161444631860975642536816120392413965102070306295311651391732057554771432457281088714428510131609589317931922579735604261744369542882204987331995833396828135967853586410559933466157399704056276721393151024152748891117595184201004437668600407381110205908865978091303820995879077710663722801622874137580818086107758809144740626957623750759354724264816315102178074985357382058408271846135081685528878184119747390158127282701477054562178856755264484140881594814531047172113351177649983335122054719287615416555527167802817115906106516263271081299205657255497917890702190781091048597215973678297650247516541439959173198288770505058294545788193299818251729732670510156560322302723910681049794868611694178232317136537344363413548963823456290718301671562028574227407786886501345659994773691136860988013999815256551549180789835557430042211209603393157685087295572919013056379997387385706940071784882720915913219066198806657642644164663582144320784331909334765778751959640051614841373816841747838143781184158583645996815061130577246951447018695022864854105530156349062119823177490508359479472256604459559658332710764010652725921578275014780316575382924584950629903236812311431346965950146759423729369498193752690754908888807377771348865757242500485860389358373025114509157959448368001691053235772408397091211652882320835759140321127020551119342601275257723053531419975495309982497186475079954210021689883916046256515975132828978225903675357537987717093719555757754010741551709120262531240530102426029480388792295731698384931521770455031239919691827199924768754831926105024697327695018910181952113193822526348013160670123087651004456132073715741919108483276240025391947106204570195206308655712996013228897031578070511647583182614672501899887807560729190188928550574697725980608581319061262827989738836017987632612393199921888046746510833656516633200645621715675196427967340273701723649410948429021849077081641850180538429618825566852935037653810443087266676255765089796328901491647839854612438800093982826110528164391523119040145862063036437217513714853489194131723905541200334919222431438985552582428162140092660630195811318370106414028785553173111180654164059118870720391452022590972958794613880091464359273306561269138191415187130252689697818740017697817545045460854579346352107132497650821715370764481804994792818506666171606468434465478820105019600235436633661518889980402886014319274152745284966911828884601287500975117071358026344817649359734149917515002237036680231491240097876406529807910135139402595148106222522635345572037842887404974190147347712077410246253105998145180635063590766663639966484332832616373312308226267702425072889218884835244075028412185131756103357085520390615445804414714352409225567752350212424998759267831866238307191199993759405409028336458021375266992782165152129708214266796279663880456073544664830071756223141452405151097265238600811156126457144323105432156784001833920723591262941466985835717812990535518016591754166016580991531136839944283939767776467362230033046694969470834746924184153926995933280549756936145843442960286219858010660761926712654322236982475989533942848484885927881116351542853728741956238605271967472033403868482445084879954670651519851082126029030509632112451945342171608716854459020508872021773557994583036500873032728759074739859482587450275091632009461143264634367612741653023687579227011320470681983409007010272792127161404944877140343507774194963341690023133183074127632442460805156809467757321881018311329832857925361461829424424067686798762879464989898755280058305403126095090308139480968175471705653958490503112868424383719175451263742490795428218983724292286622338681192000819654463883758270132274778156029205296640401025604538744164229667743869595399945159957697046525106940304760747469686422561226080959060502531566785049681420179714749679178225202059484396124705128690934910180714592986943971050255589205339185708213976375850760571696853331291835482893318516574629595749661483932681461933375410371213085803791673045107627611421242563301293021433092719056547765682187781653509277283889880301402592761882371724583517316791334660531720396633168696791705286473874183042585723901128065959623957127579312888060098807444459622744224004789297673068046513533573915696049197856063991752325014890117069237482997646786408461550452687850659783278843757468718806508660626708773903758545568264016864562577346844043103246592949087322470602823279764470328672412891359749959746574935424535214376458817941799689603808336837437781535241218828154469324719214547534989122635772056824961767941481254444484192401928954099257580990872566725093897079886970888568171783701916815016174966181880726644021495425147189932073210818442424680371213042946224679388409642087957338769929584101512668577755549088542359474304411393736027111261979016668615722042225406947406755915961540026198081562417544297044433762928392424228637993435559405411572158525392549354160752944968317017197384224925921738975982716800480034055169071048266785512150332749597098900939599911685845814633393501308772075350458438061989746545672334038474842796837867046798769093469493887587197307679243781923141138188196735315308884380642563417595310154761122124281116871878303215532453754880731262312570374930431709951129298482282188546573902672679175936680546682024519249132072264079290934282878086797899139600427539144384106767263392768660489649141978636368696872076775354006243808298331518770969145930850063058212382671314577064136257324981619706782932614477385380039668978760467717582685019470509330179362845830153948045591093072606367966613444119697900376401323859700343849613745210725070266262370980093163788579248421003505488576106968557792368651346935952451529959516555228701550974505918874758941900554511527540032233570395795647909745105018511017242478509940636417232662535001203815180887305000655083622666088189717607325672392829292321353018548271335454601099492553092817043174189674303071971614262866318502470478959198823807638450827613680867362002408380387499388094017359502866552387669644587147873297529283671175440211652306246215874371689548099809495155060470873102266382467495765462627480989600042992299297712172833122851817660278495304415016881172623197680130327397084831579944236978634644484848794313300567898207918360604465190552429044909445016651388860224620972892490287841081989646526319396015717499193118467157534985530159784505531169341044853331566863848415642316024199847443852408453068182077367529459007612756922719311173520637080117270185245840538758509192768170382833973050974366668662249602852504285061365726262648177320051757969240939314185742536454591226762278154526988002807430983874536853553285760556159580102131585031226484722175905432864565613008613276279635324240559392874465828540628949789912441812979455499913457702454112873064351176767109866019217136725361090489839262148666461856261893617424242094221835437704958230068151343537843624104869806068803427898214908167086603897325089151886537624114472081457786368465280085638386899813217368190672880353524283123578000015563674875752335032717199083699688546236992872457157663999767289696822249823214990414985430447928909820950838541876772574982123188678590198716495503754256487299945951596605000392446887808820847677036302617391221471794398344919010122407249505100254458082090170532171321704537824678494664477361687754217747167596521555280935059845811166728702512237250616636739539723538886792609080676533524636526893866215456198197149966893527691941630872686987736435253301560303424944783089114707992393888286886508389658440265674281781986039257308598586233978323513971794132335220835456134181469320445211578202031750660439057460482393994848276480457197673206048051426918811260078605307149550337827919844081565182267523745427302319781511810144290107277646368968205158018915354360041623348705397756840047128100506153201106873758740101286719497795704995858854323976017536501369996590766291749916248846266850871928972372834106594392266392217947552773705531631674321287305855972796893204353756514731752793870321755219873659472557222782960173092580291886522972353669968978599283296435872456384532683510659815578079775881458719626723734051033414413844509121952227763246923756383814744555200383868778090003115337659735763401806068667827209259122972108196510404825801436417458601685969649032427955313141822548658920803640621000687518612539519244673354168791801687354954056313102758174771364728678993658939752079368320877648923006945580213363923530041069073599078897826678014859921289150873811232857751389161964634198947060260233269489518887789161296063665919766572895482263125014777533558217433164206596463490016032787776059763887662285996719717022946012137007589775833070693540303737727470505896391058585187753915561344201619640117037440256965937163156729312848696214968078728277905451629887216718484567888028322747181077381478357191479099696111491802924566914136907361811266900291174184936072426569802421899434510438605790874574809049215340715439438214583674858053613651306723530563884278887213637021242571711351445306771302432123275307107991769661789026556362039702735551124902130121017082075173018589719756072238893389038635588384176896587888257788438727628080878367824479684864945959486672596240146381209530557967973197878490567647502200663084353919241153709343440199057852631717172369103668638471499066194470050397393593966847919601072493993636673780461753833506713819890394605640123645724632932557188727817685038847436382116911830443928083303599030453541160548763489201315783826452933866273894114231289948501056163443580523281474434471744565299339189356069104430291433369589831714971322351865218344996986766311594990131032142185660977286167014188142184548321039931175661556194007063396139634422636243358825159852529958974558278476074762822996495949682767969013813390817275331046005811950078224410089957955921563335154023816391289806264286745799347828125186493481064403299437594873905086038557734510053216692518945304756318166018579840097499445943158508648226105487399170686243586549493830941732778796328755220699408348328496822792400532623439305172475036174944837777616263626718272469378950912935865545238239056524596175034804146989051230705412866032260822257420971617726379426849953910669322945938102256544672787223134768799301159499440450266843226691547563749174849420025004541016646284065685107121610560046137978330266877957683058536541067347246923279261495861552826806921337659586901207669001356024241816640035532162648699247228106111093099534763914133855357892400732868285122509436517612136112476249785866040747634006281923639492289564017616518655330745383471065911951955674248545189889612038181667075165399350631322359051315648237793409780186078329096172184800400766654851070389250535889211212820357475005259220927076633154674740962214137782138752223522138368035246517871447649045761997623437653255898926873107076085744901690831308927575162957493720493967639642750796124060387644907603321736497543033138657757351319625144623325930248070395630988524949849491737142108571685333465369568226471331772626025079174654828190582873955287838332090232099091452866072664069336942278698420311356316486379926395356263382968521960908548993771966080443406169353770445412934258384197288385015631159284999501353183365989453799079411979873918882908320429783739645650231284751739141539327613343018136254699388703126230060357263699495632420179719169584840782673690597210904518282782616841816717863850728753142753531844980503169312989640453994672795368026358144205854399564509306532686530938513081664821287488779580165012143268456885297065924245218113856321733735183756722884929618934020478775201848318979614558821641459798775042827290221572115688213081054440437574211792084727842210156043570345217794947752150472691800269913729380157402973434157696291434306035395849521501879027519102069760301552902626071200578946097441670543486700002797745696504372872682201585682294823004783393165825196725668541226999759717543700457512290025903311989541989079996609876019456481951556035771990916620993181590171552773358004691706513467872928457369457845522725058057923268104285210853603944234306418088822552439970630535767935691167917524928894939895005689958154314451550781940340804319445321910191453204018780724284268881941843745500154490082095371097997172791890789158284449037150201434029814909716922165628184579794467095021452198469576904819507922614282449919193277909604654003390654244886320885446381061166915180052415162019407325675447242734615299926309053074271950638598181345921641447145043116255166351434225039707475096898883191284795915749665651577485424174272201547417825129143154314279459594616857828177418189870335257521622144954611535124465250301864570719080215082800635715717370621477469993312229951318968080915028483215920891822107773282657705457388347051956943879811319023270987801288590799952243183450413097153111126229007728992338273024055758892342549661007889188632994505898881760095273617943869927602207122397950031043292620975641007714675550250689815143902663856414579552927772674081123696411765596039277536329315512329010290915181497175984081271836944826081417285815665703598308219560588443513979510289764128337048832529098815236568710273944222952413735759361812679974403273699970256707473892090644688003438140891519106471818323625199371812195886635120362046382934301121946916263142598016893109230148907842933714375023305876697391555195713098029118329049683271574079382328069906302997358905450638314267437299332939081178024071387718178178740683654166061520928522754527035538049664871633589135455842515206541161561935220405246265835251619274589329976851295337041196716620335390668130109095749704321705828490380095069535055935150789330637211639223384560495942975198854424869564820733106243679485109170178771048002047906372899759995006637242934458133041621219946877211899080947793407796419502292895665037402326206251057531252646678780865179605371223197104651887637984421152495880329535243415253907752734044834908288675199971100488819565289102768187926807844138168867239758901028436826829281528985776231188099275264891961746467504915300726333285139641992666031568784161878766513044240046730132652185513331969741357802057024440227978909011159497736162387895875759643441197422594845707689799023364411984118554038568880695742667433532887141646277693420957109487591179503609234099068181117090957210929823652487617283804332071790689799451614856636704936454926820377966282076622816452090321663967512646253045703240505605653024430087844014896590049735703152126267896065823231036043166469312664020703417584013831405613251356806839627899163563473670497179732998426781121874110715588901475268561114794719492133813939965592847456880512473383722003132460388062058917936668023555299183439033369512933093308728442983147499134906151591526450181010144444551351702611338428467320794431390664936839057562904509057495159687427271814417116240827590388770142340832138873039288095177537191253473502966406063530330744036842611174510419018005810013864602398588917240664988423210064389146975964590432625215320595158665064126115513454072584871457292426195921009579595278591029188195363459244405334337342250983260946077366299125641415178095326967207362990727343945341321204305859684780279876412410072538904637518318167692643570121121181788278260699871991473972882549352362607407990934495725713572154530966810840907849060965835933520368189136917148906973404938322445767376866814478878984745948954974199181169977247425341475608739649539633831994879266053045252442052558164904177420715516595827121163596460182832469646688490316721995391925329497038430043348766715540853726310158976922892703563004351474144105631067411269212114505013344773503002847999111111511780465762499302624834616480511306388825472928906631325104791359791083588638696300406286964411139895837450285077692486757258247069088141714917772227634538885533816792486433445892949726743283756677427316135104264182034796524408264736136954997006716452472330130730164686790832336118063486901152184644495988745244621874286258940200551238078258539562915251138189709105046270719224278500204647067568158099621987422997863945692093721560074001799108385309505359410532776342135969087056583763951786810820026199404336502241339735845757544593684299525424154962347953927989033792416295189981309745962304460943630377215293967733511531569541685153922618148714939552505008941139518664426937136726368327977622606098987932371830139135434360521959974152017109415620602652725473585892080541901149441217191238319925509145562050629641635460413061104134185634065942184872809651164664836701830828073104030473636681656042312923233119777157160418591231419039676534330425693258985983216668198518700912158539756214747557812500125124057789424449601070200175547811227455117124536218457335451503624700463333680002612385232472143021972802160318954613278841656802448943580418888610612254027405454417792796056346793051530178591666270340147624953977247105759717511149400307499065076521517523111018009162253641468805693919086081445904177804728683080931942248690310204515621117275037227362740389328730849794418554342463596079704248029564563526072312617084764300871577015581760372048685552859016676730462789032480454325624737034319375214547303923825013803872502758268716231944507321447629212121527486043372477976329151724070544663627207010504198682570508567553557611321646056767917812423458567773090876252469311389158698784992712559572615349141275264450673454914952768628285121057452124928945906642586897438996798674214346428021883739658262845432040239810397338882139946308839146049605149869451292962325827655804985184178004434704268909895356337275994086452324672561054280338376014282692619604861176934658539811860221651205494174503163722488375689295315733645230870010855955884309051034572153503938979387638538291347986990001366769829321314990901053354657629209880304296352508919651245009535197184028883938420321102374704992682742714607636698434329672420649668181008306793269907891336156076961628908761993149721053741035280172384898389197681909790152479266829695781452081434375683580319801315128816621229710943556260792469202387013397465415459999758986683405391395962170530737635245072170604103042461403092049062963929456111761177204698952884292483784072726146348595076663570745172666712755483013058648528294227197690794150146425080507510613951418282086231481688269034388299412188679567734204378513456221320245825110632455656243722668302658421275857887988322238057847382902223356207060816010113888812683634642753138610687259082969183253668933201401970644513292646329166337003444185382629173974755026465501728591743287057463946150227891238088628135570288748413565680971143744327854825817995569215952075938031167647731595409286370282666593480854849748964901953070839400559668340425937240230759337159524027019905893192781010744596821136629363918007198941458604902372289053487921282449828864191648862540229548518977086210093710166957613556970685776265201197892059120283768955297401801464236141988171112337559157365753928032175178232929376013938739054638794293937704586191061501869324091901929535543794449313626132514650816636875597785988907358707006149940890560735855653338872703605186484986623172341650936117737299528235992486590816216593057065632447173127543834381993702125659218966903100443181016754979249521080297135682007176602164988072486287953535250610214580618936275459217188038307722563950967583693835273325315521532733096685494376421991123798499054719833543227925446304877886748276065934601587349155213480732455369642514092461986454235370792514904014648865127230127511753486662808038826698331534414663183979110336229161889620021846926094602145568647290594492331659464512122648394121552298519582112129866348677265502640406180497597041647833288424180940290744861597125838759797165113933877437258095378547068696994665453879496462696000641822345072544221307018113365471490686320117930650223796762972846559585917188482534361041271003317413735071806989509528659773417262650943525626859460639308563089297839971890423921213990258597618413657540101333624824711406363979153730840119549945944153607180496118640158109677859551004147653528797684041858288125533575054125248089609631466817464287029646723308858619448333243239473314582903542980665958867874220401071493662021731017085266691756850439846486396513635755380346563391821474166769928290317147064803880401697683037108576469019330112193641534545251141822499538449438504927409099150648370504379501805208682699654192134908680330500194795272512884047217059197319924870944838474701305843409472416415001413707463362219198575679789669360344026627698594852686287840930090604091926611511497689730871736333330656006053158910191793062364403504441833158529377268373139145914476982081888740322441306489700161016282932209189145914667261125378547892654019358056764312178386332694865643576164933263804983283372192055037937931695630369093972163466204008704952843193531868768429820729400155294062480831813550123698469495708274921737583544780147700304845889141823401840171040365895447303157809694600422181961494548426471001631848025253312237886406334064862470079830993243321188037295038225091030004795631427869646293512847960745972951688116895123181343777530864000992969323247042350281150926086275519868231815262806824615147062368520958161463038484964910884406394502675696217631049225495122955556889945319725306438660523043488650116332766801141922749402157125442826821779619363775970516522724157410269726633303755482361410002774131431417379495259056113494882572306378288483301922703322979620476633262928912350597634474891534520531979892467361882328181334302427434988983727546895483040946401610795160478396942231430939514462731716467259168269677154857372580863567160036412122342872444720272352883948126040482048833545494418310916218492547623605246539981011547129209913851856574433441257673368757255672455450095471838641445556249523248200986766988532760780940363349345687983823109365934459345344840283025113314777216142145331038734066087619521879383031866341245715102938575996864184411589579031326296610791843613515370332466098069118755756851253013151626061219353144116862689734617224512635686517704017905936263830897473829063319073969222395316107596948682034159260846153118109328230436567164339527963642687160291271864570520399468936255314318656923684154184954539939697238510561533135748882980277327283702317187973831237145326841635427367262919075435303589860004511001781428651672635397756227067946748334507059439565609878969261138991814184024305756790170529951401468904560655865884433162403098320238157272710731862053956257138276026377723942322232699642015280546749558761725476801575986311806046286312271569415247003764537056187780960512732931211641432184610259885409453875814650316818126281490340817998087296127959207566903294095547074949239869359913505307091124210928311945397361765896859723426903796648634019404938312431679347887320063410037628743532415252880128256459020884575262005472649002919155212319521454367683429265666369764495289114768838635626147754330096506970098007299297410117752244170321510702281715842096527829166393040729217074968559442609096226535340919235838966489464020587885850726786998444591654878269090103777326967919143661553107985792766388826321905707873246222140398008778513425395147032219223854292774295552800034782567383963847333886572937306398212510272221677682886682518922036786428130051516047056612225335338626779019851850240889413002088435897238347418691704005996791547852221058550882441536851007941335886674151564959950055706874093147235378747216297095421375331780575779397717551268874434957397473973963649298987540852693598641534168503475826057346521957331510224461731905331451317843545866740020981768103383449183232993727848016062438247861596266227952129178815606456961083621030289812115646705663945492064328942026884046339555749339735785620838297961787732657966074950528880724807704298172453622343571467031710342393043858532852991755453821223428079932744160340997039871834794809653575278966405624919624987207469433905506186308371426593533709499378604994342953238126669107484295327291499582218381142169477348226805226124418395837351829719176222139115750547147669622491151968914295010839932961749255361863722616237488599380547331966663115346353118732618761164256886812135870922329312071209549762725241024082003226871817671370731959663235656107311834739508108741260794987366625251748787021200238742472401583832404273919285158236166018942969267044498040691417043046845731962964353936589270465270523960526196085636871895715337017238634831748526763017204267626073615589495914134164706369637362849613022065183705552605408735650747131319853613515073184411153582329743888096583995186525807118910855437354700859178424562076508278670587051256052183314807003746018350103543903361833553245538793636464840756035132808789848773706730074802240008511974496776116787362429167639297337605985466673865348226842617075472994639660117910398611718782618020098017344461817620715816647412191145525995122035275071153534298126107005119549404583611300097029005861096234152782627060278693387842292953616446167208083562752890518622905206634456343756140539812401116568530654815529292686105800065782194372742658608327418700490389439008276339000381217073268653574116192441472155521643165183438849764595957847192662976481078713781130888415923064178927007512014957639029928176687836226274949993089345968660325875758039435408204138056745864952699413682648647165825064400588833163960948993597093750903804770269342308559680607092916127145137765482819420626256949506747681968245593915357931220965691393458755149456843662330494125494946799254364324827184244986026053963750901188940453402255079719331915695596778293167851477908203748984268177631605625330480599889510445384744512701655380820878060195072695445778119301532095856945031597312207607453636111013595056596541453066849424104711601067858220200605003134865104503274860868117266288007077987376419445880751900561537375476981103826182368844152577434789166380056556901330184830939831171788169281761290318243468693150598961962887181966198516574184890697140765938378753352512680712788485533440222500476299954689208887035587504154970263371897209377117690158740997025734651340334297753482076962731277117722088209666996109598371973060108668704093217076443114100247950153686409845195139022206920398458321414098642403918304059779521440213466374557542136777900711734603342445956190745905877162178786011847064951708549910988828461507121648016118838590917709721171949302431258105411133034535039595028719129005089363532528149547169650620735078483011738743807380851140565210853419584760539245137815441902862030282754363545524431480971963175624210074490221504417181055580769510049128692050127147575980286795676732402538894647742262325850972727030556671614566441395493178264287390351052596962119099026086492150679936871823639094825770625167606363889033852470731978364186638775789323000440462448894486249233558368393861665728489126397080919218494810419517402600040701505671140876872053525341764241562301693090884623600175874549858981590170760372034160361762682782381883741961466480638121519513508809633956456390988589002581589642472517944451847527422735778319137937595070136487331015728236223544802505150107236777452964263145697426503353023262505602432778570606618727927853498744757584057273058947168454482034199030257216225104545097019486593068409365296034351195545871402568088991026256853760298891990206805194961435799138950405416657333885632787134025231393771528060168684114990709675018507401525137666065819751731632957762430647714265464105256265770613626824493377525052706413816952458918481018701413567830087275364018833512332124579535751429223220673573870834852589775794562387826317050917820542749543516398178807578655508638051517089595838652367065663512431443755018486651292952538219951427617627776910646602214449197039479507001331088668388461305041052625559870686058910585403533153460688117578350441072964929329642316452330353020363175512339157390847246265783021847623816123387865235671998034813324995981410891787319686715572567040407161861256406914796809248290557652005579944273816548798407938465424404846606476369243954875578261139705766484483683121971112267140182726415656407777569940248114483819195225571537103767576821696340628971879721136145799164363664531875541419919390377413331060188643235716174803495363564567581453683047109259535005415607069837208530361266161277782768592582658846357307420733953622113875412838013332082090063121680585525827621620601805128500887548124129777736690782993085458358910037729915509207693769479638155115700572181148325672664479219695449215697182757587274558906739567748166889278551424534543801927442841178700182592949937010106561488298771941209455559572808073129120203603725769024192289260943371883069309756041068248897593380651511887303499881923133295208167359681473077547064875052737899575457105290851847437251064776555426087805782507014454415560707061847538702376802286450138102398954994397840880168422497284075117041568920493735537061128214165809080757444558435364018661426284866313628893792858415131263256212016899300737022939915343716368435957628690077621444663256638747672631870035214467509377773653686659590854534676672590809200088428515202689809904328043335137509137376624899225392241225512026689814550375746682212532820878043414201427713043983032010042190954705080589607346085140988816509010725524094170295573963212789698997964512612259443505352280980539066433855944971396119562265439594605813250250175624119139974334865466406968187441239438883335185975482472989821368033058738284269766688733559334350897300031273881276646448943837182390192166930256806856185267104071003218904677881297203452199203656167896678548226664498211747268783738289287944504785425002829135974034317377660493274807001758191051695012933067672029376973794418430494241564955496085363629547510124465063378118946745883702257034720260101437728324449808271840153290560764501268447903812726875839159944531011270144206786311988897762302551017565847062258597028200206978488691112803929250935889403787875042871056681266255415775918847120462640253812516990842080329356979728060923435628627819650216599117202078339903839646758387775023569565221298525632502206246383280156191533812652922424775688203158679108575712909075891495831261505060176742580949256308392408814485721200279669106050516882965085590899481497165705061901635229030081387613395728104086673394159464190437455110714715801437458473163472408738009457654426980139082279625818658854361137800321682001157319538717335667293159593703842741590344263833058693773077782032509109347212491742336034495894534804254194538630869513367255671686716727012618032330014774306390964991538432551281902009431955576838428099996131450949137252371618841331839341779535238667916471048713780131188416428491612666756627893887483575629618213014249189921044566062761525853297953685174730318800176964752875989985232953136919731372445519311047213519509191711827083444860354561647571735174340313814289027619061441983101574366309608864755182165060549236872800352971842832078647398714484999793567146837652859884570984302141911841193255403991049016842353731162393926263601232522221311637733505087856342444011363258018997182184820364870500490949380241072590706006242296687178061043238417112580744275204410310250316838087348749527968904032901147242999466891958140518358330349429231859409986939202660347574101998015738192222710700138225805465690501644296072338598199156724281923887204549408286424942688817289683943728709686550775665310176181280880872061310494960011313949693085864095785277959395999340912538831225606608765123262997449273485344829013277933910088036153870788476991530631828036326337879102796873915805722447990599545930490676709309772037221881996900943974668474623696221462912603851468594611764548327193766203484344005767895745294977042418854782182975042724110815906970134846602278062408478513978308065715552133734001031308508885164586463801451026663987255856902857277392374576109841586614854172627524819675924485747391030375658311407678730202267421111335303847994903160598179242180850572009325142218728493563508158499641109045418645741024934697743251313902230894991404297890881317821237238015104115045965664290614338258822894594167900423330106647191360385320523551230109310743400774254883829990881483102468526585566829688041500261631272422005558107098691394314759890898505352494989467191771826443366512951419623902091063638636438598252603368958258763349680135344178513320412992017454874836020858216496355319138561358280144116967766007559656611185490684321468364688905510142486786930614659645522110377301086282614049583391146161113681443257081319387920748998342880041270999553615230088305947688265138406276241991340683859939940785099957631294546046815488895761039453153655037075483441800779825203268955494841238329761776691044859027776181566987521648036584541973427339596492690105718989789469312483882857063252888817765244931413021744183692857291913598752501854083958129002466332796795355070534494437230302466753977092469990272442891389404379767674055504207272312092621714614924714091960810537743410406035544560870423937355743892733041964631914846363075310961458512259478428565325905737305580047129937833064147093752856091689196817374780445927764059883390516864735748698873423105975845644940067561430608454556908865748883960843911008703125016728617433889067183221537216533879918221596060518677808360115554830300104764820894087589126439980987660414199645123310402501179088225570249092051980478455635358922200872013924391683114570906656038243268831636489619093018696517967757813496325025239886398556714473557816259296591258612508580675172248237700150164414867174814498167380926194223723716212169258850178829036295327435643342962127562356897079947948527447387922272887232298001660484354737220563252193361555261761754781644881818421774877161773080158794643887421293347660633384618625078298207237158261324279393986608056130535749531133404224619702250997401174356339868801720847860186349526452672694895029697811303911202578522232905052066155424031708262127028144214962350321331878998771297000147468762588027189227061988980411558199400913049369069014567464337558429735328731178969368856118881747761835688531612387278278422323294210172232087462651783447364331194735394415064403635535412693627452339310154081618524473082333551103271923812042164533850923797179984066343004405705711844583248651027535483431684770968408213647528735089621230112364595475387307178693753897892491014260940409323883759755315148027928694072953785512537152348213069795563576169311901400758837118518980020749970565307203252288019320961925832652724201237370088455198691625494719183756674088629606545622029901189627370067380101411055622337764711872140142642294563780222251061495560705600567307874951526290740492944577838358053917113796874286404362966202106184315152751124195526862596525243334411487692227707068658265311973080735741097029299479427148205941304903266675898367427003288242132097787181767979450646996293862663044207187549900004101394265100820427556545740593450553138673090359964570420723860421648705340145539195113448070208291586343704716605705817323649287929689092519695939739366618334714841848887407637572077875370166424798480496050367078690477102598297923540161704719072723110319042518274029124610026396697077107999510689856334800883052445739167698110849681892928644717451538861129516104325967198598114972131033613077153695727147757106895956971708616458178241104896659838466932485098278976804455152652841927285399702288802541902608181449622186649905427069200497409421763043866896884561311639919317531074401471043176611512586418636224500866488250597515043579282247560600108463157603986690344118057841580236141656102580714462758114435483982955601792236237341143011185814904387505162515808512329426293202782577483696607981383033136366986365790441689487830612849669738237233082015249163739873362319124186253404761106283484483447478986558348619078735546731622755970046097277834050878384731230957690835392721457188137675507752573695927695567105634540083071322679232437123979029437453270996095284906416105464105332193719237137772248131921740884495278292096668713937644863618667393971504813299105405216028493655731299954850637661060681145308523202935009220462544558950699700503093110679961091609978924268353978156185435688032414598898907157972795756507008857322958871649227568665625271836723560486467622135334119429363718553834085496685555160382169713501377210682757106947960877188581651025971556843118247148068305703487474420623778253449886164799488565375653624013809103500328066054883536374945715294349203133868865712475877532454149711956823242684227526998265476809641235884508547637881096858686673783044295790127866232470203819424384583896623489872898458526552851671883290682907423912280129557446464590361651722301489431148996184996654964718173893979033351768711542321021376142562926597617387192086222540923426485406988072510088580422907800606116918773653854774793615029054451973106526891400881865647455759470037892848101788446354831170129721731747101375352003116633898112376568255956653757615734375966174546603244615963161147698794098102065898273269212231766650507601667380506896233920085693375299810988195267465311647689502859919170707124563629199897193541443194387944650300586751045524908064101253710070384213584556207130822272074349606084581921496975168945130293153927737194113517145943801601606824085231128385490310105343809252134401720029199507633878573275673691763653172943022892719711013744768349782309939340673977205552098781670717860379951913438234400498418282269068920875856438775080789238889557341225379881190099085173536666883519711806670348883277637407261471055940817179747777033506446325636718438238264544270508764472196421228829053798297585927871541881420943105568833303754626957337861556091000107663659318420232953366795948849790145203430535566277845137207558673239935441421714002392526430188681710247768304068887449694583463558027740513423277026593009548555493437406693880132740624058993396363960312498368763595865281177536483069291047328595351361371079894249710874932895632111370173315329127631083073071593430596252717947953064320145492054485209520393165486017733482855401045267134837769843764256700162441279689386026181881596910962659059914812517081722921254469127587503862931493959173156815498375223939984643335197670015426781402859714705681724135422572093046646098588102549211120455408303883026775590335577566774944122435993004586909546376166569829748926822875447720159443596356256543427002739109789466758891942061896146589075999003593502460998754149301133157275985638567507277987769002722601938833130216676385942490280393529385800399560577252885312679417751981123226438916704255059093691825409562509151655705770931151260416679299323644431357841618951485007792223674980535241644906011581553270236837032852498317704308020633641161954257144988453835392724660149230218146612375729209057593466986926607291407033829067151060914121257123258563418614731884404909941011386428427274243953386590320520523916190028532076674204462047314456491934000544319586289589063223977018971360338664932609411888692523471416814948766285441892032639689848347230122514964221598874995127330206786979740607087138323123092962067658988254758526251785201680415055037078922370554221934578367642074812484474800574732485717862495628836820067433691438191275977949704299867539201754445608436415925424058514245108143192559581465345116696105602458345601304148420903456349007721128644337096010113225555418446928828937683650395674123265484834317099064115725278530450874492574298324255068883459637993791600588872356129882337582300317977259690384297269885986097374593339037400774360525522213450199664794147916675491375116628933817549645516550702246483553073729248017904465567272803983734743090849456223694115111670972663744739647772695729272213032956496943313888760662864388946389210547216240128601127774196277584777762004095492610726951301146061270411351201038145980704921347464350125624354887548777222323226351362600041687944269702700282491987248761694658167530527647366288561217976615466366735688796070725986372293117249827034314100202227135252571568913712626382608858380655565882025437711614533469039015456232610396184949532492492929984324279964702903783652410197200708893560360707607323109851963973263227291125931455326081600512861481379285952609678264207302158724908730353061067358157337088891332096802706562857833094379245569617757558861985385913879840836607245991399474980445352640590538257069831695371797477759288970931806091850629211433376958423169931104408107051332701910470146335896603912421661228295529882056373378793762785301826666736950043355207982454567757561816334082994604603628127836395903030884291269018237839842421459742656849632668963587123043329989984241675462722680242847990718726178139332255264427439943950802603548349147218442432028867985137836341555328675105519657057172842387218104942931580353896686272066945568802763757577518040267469754286792525316124358672622815010990832915136249836614697156777028865704875071533103152628494164531590899797984815058744718542512233578665108929155500886951489173716985902228615561037393720626308831418468645150157950926441175465357826941909988260897793110883587251009030312861551496337990406874064732808093768724918540293960012187076298455955183008562588516544543438174010676232008959813721801161479517638794765509860486021216757521793680237777259667672831288651466034576153902753362421573476813946243284461970429073422714233425448991008577838849863049415346096753366319030102525078556453555593517866223219130810385430618842986456597469041658889424320040249200700936628769147731267264160611689599737502312902730504374795475686565227504819712086439227640674129817981668195326858282710133901356212245070025705907711328928052258121069107964919098537440207135244149258095070374332621862940894946583426789165507731928135959970798791666598726239944688873525608922711200022769058686555356343433699566549726503074377901726736885723269950451933158719036386641238586346515475962076991952184271890959254585929501386518562259879402519918013479615938017320467480803273509245590135868814795399906127823038702797175614132580192564996848445561775872942531718607066053677937543800380275734109474944917989034734408623261337349828040263032787097199330745326177363380765572176596058782274554295678495998424450739143359033289652873051745065834057207140772713120559541075451709383746010105136265543945773783649824073278862377435692462428572023989766464052903384277965138235328232462428477698908311295806511132939590288401589819318923895116118850187212765270344532772089346117607062147937265982461918767191534610315787156777783769468041083508145043602467985874657632099000825207357402236815653937851888982341140706610654005061143625943710449815109651320313768698007296574774829804490780854988264305104781158559400567115724516090941385046402354543594384509153601700784951865614326016518713879092071302425535207597775757032901934507715847872660223844249047274554805551597916441011314545104781407028296263911387173132781727148984344695323650439080739319416654489002171388021382534216950132117938518617075975785716601755153936472326408931498524382739674352898328560144155825672285039140562740175411344340533550527050172116818688477631985323154322286063389174052745371936423028720438042495294379125633245377185977008180435815166027911064967650163954951440615860773287016486780697328399265191043388133198445789879996901146100176294623420067245681282849408083758492123670664598827772493309362168038026776007963148804875752187290853191676891463434057582923258763455355364883520517846875619332698372058504491879375369053718363797053485577971798714555839949044422552241849822527457874367183533934537954035892959636151835986356014693390475617170813163692447052441514430232249632184237771195754690265312541024851393210910192299169120354328176675312841280125521024329374013574778502941750549264404205435392475622448087122662494776025658514203958709410587793003634271152215491666242961343890997907064536260842335900300814705678934985854755596878524344959202235960029860948227668272494924520445118439934783646805561921555518016875305328236185311678462761625621125189215061025876143661043812597386783288086703289214202407065263523258912723133510206654633329566987456133195678291779226018821579541881322869313182675108876524241982569417207416107169186591579241712319088228791691553046180043705829805434448783370275847234219034888384984434592918140993511995041615073024159863289980821200340746856745202656405717850675385370032324867072031205777507286233576754820378609319193516561263082674555327301528178673212002038382560176337831248653781208856863450094384220887589749552102011560839820731424028539863827996117637631277242985710510974734992608635625924515633148964627443293260310972936876038991232359951551671190431525467969858287767455657951274131984803914186938909144014616159231986949211734896346910786549648387329590418240506691476652320595803578399990198378173271668230824600210406498592397174902611141150369674562356448586887618540266295401547650156210272894748526932055630079144325398939208705783673664626598879695811345084317416613960850978100573167769910632652581566386210815538508738519078324302627462205221646068392969550960718832308052176179842641069893033242830388748197635117287958143906846463305833846423787983605883358217779499623384262010885028817172046813065310699400630731169037728441915553970531681614332944318376958173972217563019089491626463835816732449255627620950253290636306640076925019602055551235653663521280244742807862719346574993823517693461377981815593304863540595458787097506687266932673202985556187989971056543401964782571832296333465111454113215120924128318203968227335174315843979381777875552183549215835917690097741194663937678205245821440536870067502819312502652488362213000616243324170254878928487767457048532331987091925754184666786539931556459628991020226926191119594096942557943524801650674586778870169234340794919165244393477895739493804657965480228907151933860329752740998982861220598874696322908073311587842220183515540390643122402665615926007248851400733055790668403583856066540620238043194473421774928580599739870945400771944238574601749970028760731635491561968550871252121848337900978457550486678360197050396591965902832195527594167870185438381852225427382548769628069822598463518216994183056122011211100708959082868196490039520630718622655466945839072953819691658970861053982775707339469682833784904643007648646402050971185099965116431532599383546886604963320574580773303623769739945288182820353130238034172943129273583605880865313936775168770416926363350493192507985333837423737165357883000558641639939318295841621383142465820773655006533355473651472927389019122061838006978227151867174667845623376523535451206513671547415879105314543668564358613952281514361837468378711009355555498204251812205639787895870229967645436996055937484483449785798023744870170622113001779209939322112707363970363511145095731777808705074285574493434043392520588456154143020935099853888266927477998252533767118854462681382039035666958732786721645367339591138917949620925136551685304296418983349731224474021393845147383034061560272767152053201336581309915985355752006718785203741980150119111540725061335530417777811827556266024660862050807093059994165840434360538474406273625865775644749740607578850098604087808404625780676530249803972148358400124038799575178361603922931830197881129110613700665862136564279867660538690579762214339068021333048305659388825491442517526335591526476720022956267872637306386998885470840905867588223072282529002798709202984720038673768591333264821838183548656118833278367289027402704810515357267157549624935742012136494326234175636089520545263028608769883491832842009713856166607918167180603350720511607209401359782967240418487055013467242828038359131586674920477366149608335877939077928462330610821278548506164700638826769779038741434608104674674097175770124116444245757872687158923256944553705521712582274350756481509411041778274277476400549859499582720355594127589459697041292305302745798638040693628292003345809709958702172715565778828191721146275751862776036361659345021453168300030701941910801828685356690602310823761004830027818520721027278960889180434947262142838795878244906920080794542600323381541455613224478172232259965366598075663998718702312327137397429366421662484984811058240692790373944163663863088625431176575489416389902852417332523315441229661739502978120830715655820039707624569482916176688263828745231653298471376248296981274645984249985168603674349286560259339007931494503429881035141568052950540803463103503685076191491653936376106410139427864466014114176293882224271554278743482234314834239525275937415711152909735654771417012173452985816841388754770660829110432501066807485496731209884706683483433158025229690297911231802019648448877853926268396839016149627121138152046269670321174028583556651508681150870857708050650289054509249252584659831595548663894931843132419481464212875838582840106804639714949920716914937534901277852541355251721606978158064231055109557985962032387209139289988945272565304359018564789236642367416256681496475498404933697532729500501999920891544259250183143074121417397381226956828319852188637674876639165260504347104657831221020033499498235586519357492020570468572558903989822912534840354094361556336076282271295969235788221364088257211286359604554674668419064429506765550826882558331818812920999491100737650468670157204176741553774967685835390793587681257028439650589369951829148450715736822246720426768230928271509077477259400362134035815313712649544970715300757793120219529214267943294848532350019221268867468127939853543079839627157862410073963244886729908338975537238166127902020321126266076760746125912911944317394346465927062867097411588892153410040140582899746668654577195939344284109277512438245826959335950414666569738197897193748932529198306955048342751563110088958518225876920405005161008832502735848686593658102936699289034469473127474189378374243264197539513095924583473855899851976710763601342003121688196581860328561070647092837264023449528948724982905178878130500201699155765121856251440719924963601423934994608766430723208193557164971541759716657977771222207020512581260065538201190055461037266325360195700130941889295825639002660706436059114530301269331772662051058863375833865653988508352793869682456012231336009863709920218497083066871060291140680077467646842578746020592818292802386478830910618532788924115169168708100635408253374427936654683624880574511583220022589251516850097989886522470331999382944504819241919259659130611432312642345209287166351380239228652941453128495180849023875629596678589544007976864516453284594615733572364875709350977785952807313291198699726235716985638848606584975127944938201078228548770923032358588696774898741709839709097219153764037332018675991746067184696247988590135434013938668816851690481055662297668789412578147201512092510111586669610803070134518999215614414157032583605768789893954357498069370032500627468450148428220161783037645721807025510036787212894147576387278515912376159553051268914054028661212649893674059652363841473368886759002747339480694096106067183543199921562634312734321267223627327885399239337455013279527607962780462259821943607090786222839959822945946956338489123211874386890861193797826320511378849139241457149689527710116827100502452128319249089193027476716073681986269229421418032086611521639858567536690568516116765225326350970915564162377763965802782444724888940364135010050913815472102482861184751306676105036853895123015130325337537349696210175140492524627242759701687471719280675251500545015358045670831370697753848426591731581316954437661671238199640856884154327963983774394508976659553521719494404546323149319434718876633806287712368578554885716654900665879092770144926125980737435423673275468776848603342259956405850542137185774261901719942027801675928389454721597198738153596089956732724526543770472191087320627732209797766902401983348193434442620779304575852053185384128324561217895239155174751968560430804986790240481443487479218680340334606137097771418909663891507015404187192486438693621929127333585744867269134824495490936350074008872066493972866656720628801273894089165490375374250420373200884361241176594344234996926417034201158836212579002072950922687177171557832301821338499638834278219839543226261828764872394154749894967497593493033099882359331491976514655329680216283340999526533097194867999570739776698474756443196746718506203039262691064148654877823641033922215182659304042318188787549623397324983197015295363734547918520745859726652637934649291653245534442142538539748225180051508856464676795194492830778368724196038783583608396456421141445367594213082764123440656306208142294189557660597285334644795660762243662916744606289843088105294262817472233004355432480860687531420489990627505080678394411656015919345741031105767700495732722306863230628397425048783212622645809662880813902552188748306525375525206086319983066272095352223974444772905624010427153998944187206214826106166141103522808571498013957979826806036417237431643515907494349611790975582153982925599965977305534757943318925446699190965828976944785031860764207354264452314868102054906358815753063437032110864235424029769613495214193324203018394368947822434822865045064787787254055919341625370575985316975527777595094016154497316926902656118424657061315476188028056448173058243660590954895622386450382743316596526612774319540059275409435498454921272159872480717948839498417911817412298343237694384401409758313098045459798440811955846276984095495083170027858799299277309141180371482296551222096487622242398946273827550224071825631801226012330335819938224188389264776597081557133641489170464894030049260414690326135192204349162813786464207168562439774001337649907931955102926255530459965530993137200786590386907904853551271424641907826846350495886456871151219376041525340431115788835026978735545226757446301848579043288172116852356658900722693356067547348964933435013318472848869816310851659482355543233999409189078474541527893673993944543137891559278082536289803490353223209086875071511822813917472619289224477371079226903365735412300630425251860898300401588609637392730859432010747847378377275774813851991043334160728306055437876412493309692223749331596463160197578826576142893420530551735610582057274674907836161987887143719236797415964250082854002228145457975859866377928807139228861474078609977808321245767301012782491673818227698021456984878905320163476211394607631159053265983761511939373631059472465271842111039775067532180085963293051776634588915811507670587373107239089064960867822609331428450281936666861210469082319271777157419432342981130106941213762470624117962516467021887685457360993417721229331839029671263512968444285756618986444844531888475673584813010117055066376535812788035494217887767512015644865031769953095497895967497939682561268175989563020896577710630828642178127938352537420042071170476182809467353165136021410934124225983859252596532289991887933738103249943810388771676069182736877920521978220578367575217828278814903427266367267921638232558565532049343943363574853817967733356247460911011699011096735988276611468729600632991277571352874315763004374425153001244207102632971747564670586052192781945822266889654139807422569207433506032543613190622871456775738585532888708367732574951163446742419283899332305502256915964424064608329108101285569670445588739540062161346544457347539721247639110928567880059861893501170304644288988812467465166501093921728639711230020819584809016630048553384303791414732272561749566423116343167573086825244136715693651810902255865542773780104695844425622027901096198998714556070594202086281750014318717522856878931984029887460066010425937885766665858991076588795664292348295721438112137556465603261720652866826698007091411089836837412129735027355417837114479854621701522436104332321558552719762754303209888680706765966687282264757754875727399336026503837871310789600454861697581267848257363845550798700125569553400365378682347804624143064258531672567738795339141704965803408400164991948165758515128116184886101519561623570530091392819705560968578446238906823899557219648347202885715442973587849686103098401746507903208206886024085826157309433277898641780799026888895626038645981530408865128865646981212723420598488880077818201604058195984573823962985238469019504237001633922462388942679906401383809756467442066213433989642403236408882400010543504963039092191250106810950106629165860884761630430986664421865843537472163384135819108020942666529718929511672942857127848200350395695303561041800673526387673901831589262069434130765655541579560456390661963046679095243568679368660726842836802828894982985739871598423630345900160419025940081385669346127156815437286855425844302090621540588414589381790235366628043971457328436416734453858460989056072427640964568105525435772189506602357270288564525198266456624676834134082462138664487122496147083092395241405453582679506971637839882970696534150254057549464676425331695437402921753479454383101354320086471460492823030660125494502362008620937275266759130607893695488193725384036446555606174218606722376480642096413841844723524714768622214341456322147710233999907620081437906670509410846555771413488503367922551119605408805964970714077278477324401271055700008114559478039007203227981748833671452571326250364064788541506428310303964618247239635116083618849870519814741350503959585244944372452854575886026423663455650271476236801991652748298575943912511997394863640184901853720519763212365406435344162250337211633576733415691834891832104380484334738521659714326415966594749772769670870448916365637396387397396510596151824028223036456871886196579227128179561470331961188292446101262911713055365629831933002307985811518860276635768981016283080244601840582216479335491596727066508003800976195456181706886597535793706533033768471536993568156972409201880102798855939261127448393604131787472422952206684038210231740399951238193990530527118752219117556905854936917943618510210791263700344130353362048805369293155362593470935541829228593355416684558256163605642553307782630675061966826299874992803933149342502595630092705963192984923191925219389990060203614631191038991678312870111748300919684921966382242359394067539613168350137939306390060205229611388236434479740801847626904318275650394655416190782965568641886958298502936121526272318519858271853718828957577908245984030688430051302580454173271033593927370114299286285612017698449261695176591169783258343980255971932310126620888534424074551204574902047874460197840400014952886589602243243553003813867792607426668707241906590756486798217924853146307185977339233533008788978792467758236454744466228123365199436219059851986958199156553227151954878425573325400491595788957079106810107599524993631643342192574697194859271114004762041837628904827348155924768607477299869090994015387891539325964093162531356390220049266094102186390988674916328141821650213926199923094488587333679161829300715443734158857839765687572665813408724687178878348822941305903858530320534400981921956809655606564856864267185317850530657397383119534389781292720120863826412891389245635214327729177057573289517823518545330967897165712317740526655421253936696627738616124614027099681784511819535583156108109087154758099519128012697228565549319107820036102276323961087969549730466379718818543877987446712443294817218233245128678602159977736167052556385738373912675838316467222989632618903507953314512648714406518188951300823575862761350140426408761972466527060953245816521492117400202316263090021863801351031007518009476799808982471994197067261579572059457668322903793972040151772893761645618494899200924921558262456031033580890531518573523979428069469086950403006444685372887490541792664307368205941292612533927563298489809323521116168916228976358038072262205850425835299996061770667246234957630904208447336164555076519625909459771558158307745110477359953018049680099597602325783018965576063070282590526251261689611631234754803599723438112971188329479028956782886571327332887353664486580830035706671764520955084661293598794617062626043010979705304216110419294515188234635520473404906044608587587257855839179945625518878732173999557420047523405748244173348288814084089199687344107388694936127082225593984248840785063211432890791340127667500027758914470440982003747949536719698467350400392991931505551238450109355142540316902378774762785060467375894670298688175089895495099296255416538611055435262339249044823508841468180967754837123790967854300558001636604100157758881095494429787258701218749416889055091162290789505417520314462493040319630371126137045224341293182767815326586135665814682502467876136716079816840127621866919256934798017037672884535311289243577417060259987292824232914424725057642338156836503666186649785461289197916054501036459613655536256348042832458260062497220175630922151176379970435889902057950300202686608716823275977143176194206927771649397648211400396829598843886430248367049945271201110945130658546365414489717573240551298386079084443657231871286194116879480698151858285974415874580419314245633926290130008923668384335162592831982018782562255392585232373767247312747457464548697948162251722194755028045627079845157914228813354901324183789275006461364785011012570468175027969880786578631647501105942658541898783443306232544168757126286847707443279261068213298235350881872707666354750247630558233562265530347879050965226420608606394127806732565973334416634845474184758128114606183535114693098025911472331008886724620274451825261861701318624336570983458854170308964737190704551123238204081964561867956924397305498949753862150575403925746811090020368850303519622468395371160832166912837124616707686305406279476397654173733071004391268991102715502163623551701672226577004584245445990179015202114194608907512024533892720457371458845298139905667071786281064287466158684869766325008071203591197997894245847021029115134819256335798943163183248492516898811669822854404692944134146340401447878677156729145385832886001075008942594527178147447647220855325389380187491813070746659620177120474513120495372796042384164976124850894346225173599637289536485168065857563084339997500830203838645390033440172161043565847884233289454608351135700107248701664509129504727008278367775640127448469766015508515011083726034909733568353297506179690777831477667487119750356136620015578177906898863070680030968352988056844464976343133123302911574955115709094506432464500002076390751002357967456495959469108493503161275637191283684238805605474248793260528322852755756895692279910133235776467485229915792724679843082606409815480425886331671039659473215322653320856684063815705976517982866946660639412295846442113416991191693929700791743863678767411671568007047674984920263820127577422772639216885120425241931224988914407948964378151592230009442216021706171531180408791439756630919281953425643826997600924460127346437131522223889236992056563789624779622811024463405499243191375735972407473307429960077066547999398722995418987787948705315536189508789169426768477767751620741097289314931214768723485128895057495554327080418894355111249787657811189425432824529170611090870463555323804380716834327664332100561965504465722583859397426447957992132131551041681018762043309636148385861055164544686866149162383995557901668153675848878683886316035256932092627968529625406598276862787713257764428014603805228234657291574769732468063961609291798619474154447238459973836596472596045048649364731184045048042697726086020853503683043553360635907176133673167987379049997029944196029432649800265920622468159298603163838518718298736198814305078192458836282554395532080782654050008368959980953280373865232122108178601129143567082195442720362620748420998213074869502177715865860261779367808345105508961783916810222769542185579061349535313840637877667169585885961112880801258415623201373594529316057722444324796832882435823479252322248561864334740602876226587579696400995196374943320895912991887346937209484994003690284720494228811985224937640812914963848406916873476781313083331417903075463033987662332716066802233954890244134366405832364526359667031630071609855040284845446475263649422620129808701411045070553411752989106619137638783015053714697100545220103048278170686973509637968490362780040993313205447954309101095329785786873434984576382679854602133531488033177264390405167803799149529158492858755477417613424409794647625262662720495454203053265539687072152316607433365648753240216902629344681106308612828038947398263964592376978065011216561580297769293840359370898292789029524977349097295854598457664792010453112354657877738533323807696907157524746835758182901941871543786310170745359134273207651898055149265074656118974812993716914069011731595288937045117331896747298936942436541841648409354443429907951624253833398444708651941975467155246012539107389259726374997795701708415477762125929147603793477812361512979954318749166869218566736401995280527195844162996017914233878997197861123830788816343551914922909915348945663819247820709313740794925118919047610588674213822896124501753242404495630193005633945469807088471968120884398425336252871479884473967386078845708073430759465600792053183268541246137699871182647178177375538684774487636715891345054069408896887051774103296831682681383906072178988655919169395452372155297496834446849922178685424059403622921207070298051296802670513109999009791024754906075045517495622696228794326867985951268913434608644485220563944066688085262945219079190201980455139812771203807936250533584152158283002508892610289350695742689488244192044256646972094833622110166055950943846965147282887423323397341318783007375330359994879113581747554747896202358800949788706396549028839164365432683107869341220472849740404331101754134934238273666283793921575636567074003643185946857475882004314353276152952669111879585648209466064488258892664301871025556908676534594064220116781883225521247973833586634418497157469553018240238658291315660486514404226357756107199463938220337053048284983958717402790988706015191813919156648427818586393814252810484558863677874526942558273617955246074994338077091590247748301982694253535715738171832267201123930047556912798516481327897368299269752368321553220882139619446898425627101550839450117151706321542508010751456918471263453592447724873278916369253206421338035070583289521899977111499741029442789465664144359577732249113128724872535944071208146743401972698066270090486821127575503642678871068261106720945711428055558205458837583179368563055264231986893456650922899265001577156645364854635015659673983395462204356573233245578604895841569615071850735899956353622275673058287243010764702904995689502592520970279842207773371152419875813142052702107140563875743741065085781117602187339567061081614261891349061383846284193272022194099561021895833582732474847900937129627657797075611367808855190828707159704262403976697480002114884392505981786949792015872835149466138465360757889805535026050873473422765770374247355700334923018217231826982543989082177703440733783521612649386896851240082483914965030917644206530780884715957347333072373060824675833156590099978002050661066324098108887657319903709127733535767208455958801355270830835955564602758511524015217874873436135223523343137033966946795140251751778711177750054880645416026887666859819685624982847515071768216659744022917549681513860538954809821929697555015009759900853996118429468871549477853183015584917608908530186992960810117294701813006791383771348454135534011594751128970681798639418262827927897296302910061654187006305931058901330892800789455973745160273917787425648957262153643090378617691983428924755176643836581425611317766654735362970694892187008812835485035192011489322335922957494791644209448614875875236497859123725020764441827441006143243467477603364700597958323874947909354545654299352525860609978981665955497666777908746036451749273540757434791546716369326791075059339872698337547097948193469679198645826099338168499895085671108715244769391543381122043614224397785304532877840298204561092044554711846371993651862821918644843613193650956688207044838004990651540144730568983948102401478061452334584142355882532297094251721644012234654376455961756429862576350813575382020171706934726346381564073929642926526221132459891411641269509811967560182957688814038849895875291430332668070914717296626920651889981989124275316673170738396081504358686612683257590715359701308270782198259812960065468583520200080547463190078105036022075584665380818452513761203616007663538877521878066494405283812199871196902000156053857815266349865787319258913573593507933246320366695176527378439123950431380292398585664099840621572363934547633485172449354458452562251802882042680232260339355236105881626543002206883300569656725378676200108418951814436647425954945844824873978778591254437944053284791431671741176170166993007250328129231623867491849264456420645816020554702453620172620136938786112167733253363629671291945890511425425111772802929064084552883637910384063527576401416734988590589323378606955816025748365674930101433589249241557136739181430071629293868788447281436612643887729937199218232672341855766162652964907585672627917385209302938474314651315803961479764547102226433063644087480032083561883086205513502345893549854414238171093882054308126258878371738921314892821459332489235195707518067808409344684083017564365913640411361027593973070347727611019879682913129336039502771346248525217870917921991911553398841478310893380112525929773535756643986969605459595437076748500112597134332612281002287807799811343190031416233867629090307244764854034241738226195698503003619827632211872058376087945379479264211303332745367301881074127599489328579960823291015366429125630860280629788802499793972699763529320614981256853057531517307493327001204781703196094234578508725768522180272463981717350810520195126928086266198443451690080348977273520318039495344333187513932450763574480496844940672636853099813262472447071896955220251475031775555987003115972663586191890088719108897246473652022851362511635096054079588686676354131905961735615449494687041717354960539977461404582307905949432034025312169546600542943657681870806816482476381743373780725030415587044154849535654465567977207712890808728297569017711216341237083869699764644040337263674774005120535950071820643287785201846127806668155922471489258211762449833509393956213321271625976044759724531384383749822147676091338803115201550556459566931757001477467344758862949062566741314474656877470083079810351880708524598992999553570896827876096393400536243468208357923869949887268419115916959151613238408439154411986059390490163033840625791847363421913457220066031846972627772564211032390554062855683615517955424020518627999388709205777717503242427592580768412202845028009134251901993949969147607488731056312144479204067655388548270310183661438041969518533539956901929748966824037262874491105200368399949046623542349451870119787857608826449377643257565907217495898145222263532838296099603142222691600676198969519276626795845256902068895994747360586137259364649546242026715814636975346707925806655248330177322942130956472821787326498671336256308793515853129498434976587495470427227353957425636725983460438177776880388465213386381211558251232993048625397491772013663974719811570151909184794819532779250823599273091319555648022206403125019921992708472438692685453635377191357518446013457583724822064086869643427876667704029577915916855168556648264401008959753809363951957846493500561832606618473169690471057076863445608957113465328060368798351416741564819303699083042688572105844710330995055610265056350857706109923396718531224567649229600010224890150302730422848502366629483659485287365607831003183538264593662289766157762537227300984433333015449421206605420169729611329832947859834799920994808734856939199604480616935053079726158566041499815135073877459035810146384623614780206039227852924518029963416062584421808198584072956812211350709458985535193943898026565620665501482319264938565385021840729739604049694138072694690303448217329661281646570495188844755360197495628609000843705868560758175820330869355383358552810325565337430226211159057918321470800564458208880072765529306716702613714737174610606551435433198728814465221380845464883673564934346134489160091222919417824162629694412653846511766204549365186206086264727067289025487609527921309682909922184389222068241140350619741807522497620422225894498816682662760527239311673536599089117770191503293738255570472791754122752159183160363943594058695959477187397282191677256556043312011250215740763048124696709321653474431646391299498624902125078508846328694121728653422633810476546532579283303635428823433204045851337277131468320815729691629485100899196009869587263082967031217362815944423286397104765901681856732301944970761393532361409708281444809176087115542305028821027117811937931132622101167579955484842781747735119876917335192601911137761962962931132273346406487392340157437609131431673691255283856955498671217647357679636200031281766099731973447748359572860960423959663157455511731617269053271092195417455855130979018914097655938479840099498461076465972359064617964893224471977417356460455713668237097852001128719380325815666770493094765459503078943115624744043115201084400063857451053886170004691254661810680068355242691785093443390614403866997606748600286427324436161258882191737071591980576353338071864164947737710844528953329128152943030998297843393804775486543467581096640121346972183993526973531915185839273271823645606205592692091264390828972670788442616093445571215506257975579063714205767919410753283682654718551160539706496582043767090835121590981443024705967225760048488512457476648865463659233767131267714108223756345658766389811010724678755270471551263249918659457641336867748284189254942733306969891716210187600321857065868648516854720930076260151271475163831779963107475644927704363590884784561754170216499934269246342755649144233443042736750677026408102519927833261688351662680555437576409206766444028130519294739689142208352235724756942831471452335310933787606048614191923589318421717187183470491739658326389087699443910342376550131693171162406249629526884980810779310632660430810372709628247254629808622315922672496039342834607740102364291243050554605667937878072703062715016237976274896207285945610713928109392053226659036998221520419533311451495141671086904073133956417951092900783836670035642296270438947628278439701655227542198303196369535029422625033892429628723134250275275804816102726866190549439567320113723686438071335047400627674399705081171506243520007283691726414955889522448371177598627970869032135630602288873122441692297635142818564177178603083090396545270883701014246032288799656502798906845951789668355841965032152185320986414469610972331125929282356924386845021075353956437246358244007418043524319068621188098131894892105073591504941808010014526927927505052258798147513701749006206778048854499191014209226714642452953439619141702115714142569587616896246352445198142830944648414694122604382125408280260665986219717451000589972599334675377445797507025731540969292041949445617686654993186542174815136737859755939048761293426541600601477599542804578233439575981662884720322302155027821339752475177585604555540353335753467305743283345034153093951858473864945984386585243771360309941817402985891580939579130288717153972633591417124288905852478618031764832468322170600530179252488296649985130735343658866138241481614687403729159251760609120347223665891124828098970845323536858412682004194210879193071053624319662046453282448936301766701466701799949190959947042555993654689674384512979581972600517444123259638343426180031909274158909564111699251958813074152658646911868521793606059702789032462587331581435668817097004150035077841981528078469559132852376361335461951043619388404539328182470579426115446948863793503781155608979649195578710960789224036362295534594633758795802689934309971519763108109690717550544090985752481555138222245634429292404717018182557944834630859087651052497411470707527284727317009051428393515361899928264534295028534209627671542133899612514890652482921247353000346298795066183908696444548942389859956404077738985966331101820108330084023182764836436000317418280596772602506591745778369368670541577431288045819185178976817794805731201847763397477777356602794703821067241337421182658098862730739975828220686289657483570001774902251365533011477210176388007327516450601819601366293171635202086240804301323744088397434422665531001496900164535735411764472658633287768978202580726820281384854180274006713922815892798094150540232859475884383325803612653447744573858028924408337320623204229869062970303849032047994546131067767390938794582320304577246560081137987427092237943712694653802114732360770486607425506822288934065020960579371924351181988983542931249663423196615820720274182647129704628893230009186610060723263123244299683444129002960497856880091827209956818204227891113877150611238801587810554889621188536213999870743630750118575286969968369424557809606140268236972718844488311015689702246814578694907860021617802054920941009050076488382511516869283147852659646291861941071776324443981633828613464976007593697078367093479390512861764648721619178466143583923713254841806334771244179749223064213783809617356090131252675819314937687967075704430221938376672825835245546847939864306741011410680766733786259732859047693448844288364255290603831384056960764746768176826236416768570099359906096167248899093955126338038136110559849375558399876565374680310706329148850793546557826800546603123863445516240517622333906644646944123770866859373521588790774073069414059684378545647006063283206120725512863347613086256023756786806823619661492526465985418193360042732600527424577174739680862813447874436881760450550994465219268075225972915804239462101653205269683074503076209328651433145995607579132469638320061979111662132339606920041534471011928814826186877702113404947776071211675412572285289515975240054038145488309952551380966111134947732907240290911830148848206170892540456509873245771362403832295230261991092187593654321097120235339351412898783360927379250526000359649637503942674498928529203742507372674026328393826176100127779186261446846741850713425180280388452212998954053905460642785124118316098734455429259423553657611372959518925938332427118444595487222651415332321585234424365930505530017323895580124162915319376780832699162902135481118302026810313243373444199103676274981914066983606186354797600980151849264447721301654535219659760005381702780913675254230074900792273138074117821565644286558235305726070241996688462255789326209764724270243505851185703218437909568855172955888558979830275955605495913884876079075637995095067411521080102468544586421590222622497938519828714676480611752581770317832017991307889186402904900443933441810191411636257998104094074208250926705628544953176465956165841644218459238071028535515967486148896580042229173164773690933914240002847281433066099040791936597674559996828523860358841949721689145735805727530078957231351268943711715747605341790736528957009162234044344523287205958072296943136714184672789051525180010899274856445061666553980400060075966325255933593184198258759082186575387983782966150845018669823814117789216518291738663423430399006953058987746587179541813947759332282820098718547778670346175079233121175812560075343038797612536003828318148453160211151112332676848130059006410933160569867868799744459092891917741253428393655794932200841538759019806227950115378225880442629630481931756125264653546329129068041918714103744349452316944416773239975582248108179730863187060136914360848922417719274078096746879112867431176211350961373740064483232994983688184302322742624284439098892514204598311480102600902800642302292763992764760787947491395781691480796571214645668392121543102366680507228392795842785348587915775299147675318178742362870927076247216335464746855813963222700930490406544861104351773365322452318211493145083808003710949758393966208851350000220230183972476454307113407512916742079327784743470658123169217589436709915282099695207248821795729176366314629924615222672585150485429191353109439357750965684306896657459643749858198545451434106383418516554911374561097259184368405290978929790786607063820158460355653249095335696071383242258763621353322735302575771750830897459595553340152250392674077020108806114587360859394025619009715516517961751380040260953887421230649250194456805548926597835051245645087149996814581514307869117526423402744230796915616162103379234016659972351292378436652983298155783339436786569087382438128642366261989965185772493375209128542618790682840404214973105699066171991164908830119191197954079397214210393030338425662691569425814439485830980143531825879333687733842685544916734569461179293335660385720461365974100233957248851522138763818796005662031963613673476908819671672288315706506677736578042529054542099888257871463041807315440812162159423781507973560702090962940547115186275742105235307436216422266590897399447953172678244528931686188103526317770457207080921358723241111364355278825136866392337280156875036070468048677561711638170541395190203489666761931661592045926021369693134562745244430180614881699916627868598754617422949468482930694882860113943291700551812746356328818498929928813531060674929544450390280856158416254651260685794990878107150928611591392842995286693818598816745769729688680455966263026197926002188723411265862966940788243201367674079828056533138645178815644594102109361838582074862977904527941852398976823179368012948227174444806529169371527100075849057532045871755726692447557618137737346987589375906130817487084682298126681475175064774362865178523504814508018066703611262884139592533738068880133230389112203563746291289685312476779412136323472803193497617868705329552557385989228286484387379431863611122284707457473697189267505204335872471793282520165356267612533753173803060282843795266915669565594046890897122639066428659197905836999928954746478279911016129427008258144552721622163408683704994454026631149178162494801305077474492800841293434334127375380123518021720860497049065440923295727420253911881053573918494356078964852734117929268742116738041200612668252140858386961456535390205371767303890379811743504914817421424870594780296649326882294773887652146230487898843357180506353444664649834506053801027165581328654515215325249633063323273983427793591136812990543222482277842375530530317536175330599432912877591427096883004587827956584238066260772932992105743214561708442515417459675275060595304703596763507488015852781839171719663712677313457782792775871586204140577228223680965697072220288088438782601982050260610980643844333191261844448512693085659406774065293418098876849902820218219091901955071719281485327480765912243998337109600676822096027562193209948647870174911312658130500995379836269216157018999488550856572105881131189101989078942520391482062223916936353926520399026415397207119650546048709367514995357011286578889138352705798160307079436175510331302629932908125031810967421930225733247324684208532095508777314067630108553250735857114062190544025096680853295304521450784452549698108113461613369928826599488501848532104796367968449511079708763220704102330040520980283612044179983309216273558328662725244155049485700309807117666697622787668058210574408653722994584186023465628735728882194271798073085092290977777802433804662552885305584267339461031314783219034774152943030351172883061413839838593987409723452440364988285379264877627497978319640353333426956961572932259106207667013849975093899244534443553656778799547770028858329511916646081224566682291851003962388665177875972024609695913178142085247557050659463238467022516407656475556722943462798140779127787416708224586973412155737444606497752660333718547694157310279336108125049566860470417976521867284832748134189938390780821521679015392446486432465508661675159196753901508282003451250463830614523266065961209930139104326275229010033500513321649189875297579514666440428855745676278247206522068151725640048234669376587747341024215343085161930934665942784609598355148450491537603827681479011067634840303340418030254619136170215875339904648028208251372493111913344448848238587928884788112862388696703087275360959633082089701086167312600424056286449231025187958255083284406583219408023123926937181958660752151320100261710631639663292444432177762202079405306549932497931641308512621653206608116829261107720442983457633462740856028336114193870846411296856499464343974098167274282610206094854100545208086369904367285452655042027109496247566547758278377113338803648380246279633413735513872170276402835018514526709758930283223836630641181173501217658270688271273197451742091000907183290480610719828718886224132309921185138185003358136882347675576155787257528446007014568982433759500463300646367820670713548323479981843401586805891575232216093250954850018451609114930666883831267642492620737529403415361195443911001770665581727725911035755660122799341799444280218182437687084826698847939043588019525476583751675254065118213508195728711213278809311176266515708206623833595051088156718300175408332732207955881058765967830521368925406785124133566911511870613647181054899074789432647885319815501296030979236729125158999830569056909907825000193972222401013176244450068027444492005166084278730672021094031980899510864637960875592617318943384154852700263779653818100404871078869863220197446588290774813256289565926951638191258190888418607158999282890231759960767360397435520561414651136477340022672851933317777269548655127488383161216951669108055393169455406855904016705727357086923180640933965181714502408829012487695835274820516855948052891430146742925459068023546513713716751124528988711452046845995214589289828939423010635032255293106589716563048473084823428103084833892857256132581472002280787943276863446755218451964866178433012582566225207577944793132995210690481785120799508880443691832780779265660388745163115938507620410728652541427953487835138339814982369898019673497262543044975992424907856699782162446963380727421138843801023760640948378198525142304053330578256278063713732835331993203087505293680028969435581846510863886622628382422090714233414157896862869241338541986128959768120842630832604549956660941513430510863284293647870385467203001136365463423958809230246132873203159252660913123654584316014494360154713155118783169157725760904040534732059278672494084106817307578749474884384574081273596931527288516706239387376117507816533612219677725478519478034402903177395747994333395089101318327369099235397608967511155127688315219444190798550408858168740798361166049011245898087985127093492708640527129000328084630084764212675497147430260682583475163853030030617725207761133314477222213710452191566572162156936669616464312658338595092171699685216070171668551714300228869948909176658407973828318079893367619428743948796725425662865246058030353178224824956537016252324894060615066147874489278017510308767535050297550352488695395246546716428444872738768091197249205996037901416305847407192188623329667298629398430674669755786373522591981195786537579169472045007565325928530946057241639214975762077042411570876163612606652103185627636658610459882882820388270280766142629551850993984525450024785497814213617917163976140877476867540570233031998130385931612758770262684094881165502532611049743490317467184159442192772780018106980018337165890685800293311783382498261263038577469038949903588558075929423750100433886852277738854884049749032972183454866604454720832995849733797381003150952658111763942611276632532927496961042733829033155321484113769162700132103010127269626129130105399652431800786854694539655859616121209119287982053935436926541177415091462568592738935134061857911285100650709030536542328839887047886144222092345831311658343478294423766067045188957959715823181168625906844166448844735758651291115199359412397907177760009450544389617059839747040550056373766437457034908596619617180345408294040043467096124746414455855542168849084291048431595726666560054892384410895577710306179889357015570087645821382884229524141442009358689243179516419368536708806440674336487440463762775964405162014020846276730214441654436356099860881692068895489879455284461200200596549091316637070548574684729905749269446507257773289222215592659077550450823817823743646861519360450443900453443537080857096753541911309157560577270329900085974435019728963467189282523789078725027724694973705878041099323008951766528871060390658037590851917018426861992276635341669503935962017660038471854243422474589258920790039621165132232664079437217561088507071352704860964709075422664242686272171091947408165021577704864658544041272371748165452582355952754912123442470587708675207636669623199407934912464876488885451219689764279614142652825658148840123800870333214550711294492448512071551166777505177883779447943953221250708620274331234287065874271094917358341023701175683483548742838541826487248036878792221689638798690585426115364369819829829870463259869856398698324430790315754487592804538482606201100808950398465121143221144636473543027037146209147470974987406058797918943797729482613036611944307199371080518884163818440315813153306732127578193332293836971968613669888324812106217215969863130668902151569464123424710635155259898899195740059698880633101510649158316887139170024946943265458336651227510245769189697966211286682399799448579786071860689498133729557284798043029333614191118516667441540193371942193266924241336080300701310209156592156903933100487920047385378027303733511622885488166956202060437847049155709322410189660548325562038135109426561720584778232929316654820758868794155775638072201668685682264484733193113390445591128023896905792044238201810972418005398635763984543864919609621951205149688537218438649478432457053610181625530261323968754744140151359866605952852001648924687697073366675808209055647067524328480719438407908918350391817061827081760706606618685022620990712102880244809500381832057370141154154065638863219304667051136035273852588724452713668336347126593361738611306078541955486694244678448104638018687452916896890652241577221268302843310422949960290944322268952493479476232829807432121088257518738723033982597690698555011210315757588494609910704865371864697712354786002392793826907932405407820215121101368305243166075089269677517133509006557468121494750860957063660392412691716501744673849829994669920975744928777214644200163796236317982041559005277985652290177444433113547439016359220320259915569843312689849475814291015126574585673185761890176860549407406225637410168381881571436511916254010561295367705792186491180693743823730083094586875567345605047541442792148883706334746221031954286760412756841468740106906226687196467252915842084169110443317046018335598551555551745347254785251430253048581012483755087567290816010835008674543124823466062534390440572096087217045674763494196660227261419758474153932393636388478998091572072526200467915375249755639462600370759674739598104957458326014210201625257871699161845553738264932240841801984502370632300330731505009461310440209450950585766731135496178814050606041924647171885015075939570659710492818057848628426485082407867291311829180429298496506493294851193816924819543541698713761568310114977147454675748192987230077368511759390845699103491032867575368468983782836320000024339385908324885329555174252035624787284380704694383061266071250207545829397561494466844810868573470860046060195504186211005417984968678554208774986384460471267695476709714033235296508821251579753975633406799302065949778621236590398887578556757541359580034607468749996537792392149656896901176930048218236365779579106165177124909589547090971807407947751397366191238832869572527735381979702985065481762404226049570766511560911934170954739235184623643264360156144748992135742788333854886743950016773501818584201181727355284311945609519997743288035333586807408166291417476439320989116847047296544108497898495825949283882003821601231545445732238221742980033013576833986653334606735510999385748176955334022491209183332505656199264315578070881145455773799949095725290846944462294049981061609025304033598253634489149710359640346468722448449329461173233372511992253073473823760809184609284894420029116669712566323207059641295696472710931118141888510363439162574935576436197702977431244633308625185817632786802816703595306897635895326317937689878092000329363577826898468057427752248663863253231178921071035902088611051259320542330741066242894352370369260629613964952473469826546750491921075659382844033133849100323016627915987648788081565642289612700994991639978742757119306846863478262971074206915794898042635282103740899283399247707076688095061502111416659827688187293898598613287644560777738256673916418446591932914582635762625203134565449327396019655245906840777107552833975339965592060719141268951881367635753991829244863768904598336014791354360016920624105893589787132088560056351319309823113925027987291662528366115872026067257682122885337982983296988707869448481476623473261963833605557076255965848454528203489795861449776409107124722196747190143831469325671140769870307722729359706419976184570729134572046185973030879266024832684615665038126594550103075182296938145903535801333515272014456846578068513562380336827404125129000051307532823041172371444916731088786231297036367126898499348567735439893294369926084335853516696009380322642650982310006961666824692483855958086981081910723142057154976183605313949961856855897839601010777947749240005936809511039471833664481732731218539550513423263222706473631853272274269320421127512824247241337220733082195773406308384644027488954196327319892518622782938519677966345575653388568967182261442495840587405242264558043636039061414886519010967779945620472365808246685371173021545048374884809299369920110117370389106310195185960917905887491438754665463282123035766049864404083951151688343467483231150992507680021067253102655515325412138080307778418196786042953120444706804752840747187655956955142530192634613505361977042771680939506976314347968611253951085785662532475391286449925530447481002661487065669270078614361424168514115607756195716334209303991560289277223566535440737369968326301702251836033215245735882901957042393705547283574642573970810975764230738734678465237997766481837386740762742620195115267677771685711760987452974648981762414408652215890059354038043739316683946829627879189161341733633732461600813631614480089915202198800075229737036905164247038912151014736480372786053110604524310906628483238979950795363014908259177905260119712244203990011754633704437542118799541514903691565223067067766262210987825379474426223043147126857517279534290285917790129999703456220645730110263070942078038909780859156813209043598641381508373711247392910823376531425213031806712460069187354643492284656532569628916883788250737520208336331452291059407215932958595275025772216565807632875482104919409645002979646537524441913428930532844998224165152354942750949222004727837863138236687644659483253210890934782693730353857304044234322759242093768580453030060159401438932010181067369221921666233737398466414661115391855254730296776602049446130176818981823784790785919652191649595330381923732982119166100359226830157023325351511247430524419586862904343838405737623385171216955157426835635560604456771279907741388809491554088157689144018862086660104755343339860318733095838341770723717144154330057371895834574422345610458522325903004211465266160535148587132286616360826261206270347112581571288849335303355250443873090905547052879844464874648301159744747028057202187908739863877409883917226635787144326446012066534536056996705624512432811797245219760697537961521188564805116391726559227605741184804448824484875876219885400387863883046382527673307059442209896961254707523448078505640172136161128574486511112511599623976679882473635051337262658763892954479190132536359318083799513782535217323547612080443762921494402240394870762071148068590263774813483673155241994729098109630544887733782370338682853961597008000710542039834322287537289083945957755362634741522545745862731756301009502844691226583928790214259377935249898155252897002817207903162033084380887665942096190776994512522249080273295511881501078315320086754868615788291622404191183741934515489086348152518149123615959197895012524996862631949268939002329607421928748210496409120301704062535089298958812216502510419931016723259683697302617939876974425879304072701961277770150998082967197177482986142375093620817123043734976168160931207389981704117379153384532715824296472826690476056740656985850408395428107762373533862039935278504084819051553409582149038997164073444983446181676620771188055919397289103174248191200215275999618409423226261392821517451456199988033884510863203508459191648239705173160919888989340867952019556461793555535076263379766005419971979406568037187029672301495129993347240532054115971349084692729577448562855630720277079955448870485221081142454575926438298235197109377503117253613129434814969933861716846141783262974815418294561764978774622851927376581895614287510931409123474217712760720831083208248020346004896167757027095807391603232069662444407522842420130745302724162588061328642118133834032534545399926719198726588211362414917221266635246699999631119612740937697428028566693513573628782968364457943606844107415865211861904109709012082351440241442455954930484375138725319240046011251304154495185613175828258045792508514467225503831613534792318278946617699226758892596740294345421908085550426653659254135242216343757689000483690271300477505862808422439975413166207895279944779001107499282176107783471708748832849930775840744861395705782700253697636065450575127418305950952567146703254935300552781752258393564757867548016944195649268784344033738511839090130887391200661190204790339839281470268426750550110202840887371191910858075198447321616723791501513005404384036997105296237725068537619669377268385271117078190514719225443224706193252152673388312411484148150151844553958639289378436289493080973178188250037024372793436651364144262958991368850929147908923405777822586893007905853480156148282932371456878367178271163410900682796164543422123318044202610964707565600454438936724472172718019634229022472405347018123391395256380134969519404272004642877948541125854221275460562073439269389144393414926477670733824663558985507175769404589331914839414244245544354925637141804526022444992397315742502506118139742450599399121485568153416850019185681384361879761018934963721398555866193454315675188096217933696772418529765502735480475201456643165263687327266718539138068348128856853593289507642267773015803395916211396551081941945405011096039673102264708234745330320352185465040434265521340855162981584706810336210614182636220183510175779567333421603692735061619256380831964598372076988617443953669275177189991608582716327666858014579479801478291250187728781627423931869467767649099946596098635521825941213518701338013006191712921957915416687204363247385875655336593194981004952869489194278801718193835536417187266904382592331377943214333614219882959000899116788853464800221410813834794006797277874278871379876691543438506136664770605476662597143730748990122293927393041148588140129125555247594556337601997787057472113838980543954446040593324851790814042018881245264562822123740749801059577273475189220762462068011914452746141866873827078785099322571241825426975648272427134525336976016509195672947318841757190680616287826642845445368559505042630110135394548365414974199226697271234734617789085488655971235770327533533984459260326340286144686007989379278055453991060324350689691868595807862021488622257953891363653621599525215131425933542380443519104179486125719717892826132293153062710630407496647644062089820980336687851479923571853665595178697918138312314701729394544585286294736846899342741551936968974217790062275545477612630464101646949460370323313730498441225316463905605888731020220688946385122060330410961363860107998103758921276671576201342599468652628795897143962054766494103078899289508891238582519534825076507959917233058871818141367437064684743114796111216094616447918132795445877947880837980706729697687180569667794525926182109482406527522636485270917259669779839738569947780971308464776852179950824558212955575648251188040369477681751468956997741363982139389656917206125325457169046810685544785959146030970690871679552903763168420752685518140517001844844303199920710985307585406574624773376501576855185379891513993213712432757658233978294593322842404200032803204694532216921746634131377616367573689685435037054921263131640232778439956041260195709443534925031015093946541277887622502522761013816683117611243618513741471015911772439448822004337310727524309825609419850728585692941008031171378912609659263382470552594628723958441262461562114129123803478148688664234915636415736682117806432002759788017624675051006350049884118949697208470959558083650254497388824247748099065210263705633600092816561573483817111321053945921148579320959673582010280221239894780932073841545119332227133778565074269094807652201016319448770101641730530498866264795042333852052580841100661460235126306636555148539373536027518623685302010465465127144165488470717305052645301990803187838014792507639442157640274333351165882338414362723995361519737570115440879426883126079034455058351956725185989521818368644725428980161863034793075091213078900057928351226574941438557748933705380606640507441966120288616437306617257261125976636554565804781575508747919790752495740630936599568207984711909906133631543815666731558359424407163434560843240580512631734240778590391998999510971424822165515069110753526327476944437087279598014732695169834016525752174112495832801871321782647067280860944400813600036588988311283926890339634827689716271686162561040048557579878161295195826775596266379621289742882989964746045559405045738536775319554482390161881964795305064063731860921664745600240507710794807140507336055357109050022154156683707492936638698924522218513018529034120144590955914743179465783260753754562669658830515639426069548033802331969765400775946280016290557176044132742022018662086588702499854203168802646205361252021714428492718384122073380119648361885174752567371798686430065009380425137419476190390449615609867071799804691763263976002113278098603457697851928409848827510883239399475367891426083471197758457577545376732796129242897131230552953661655812301961527978344295671289948147535947308850128934519694984239190628562524830404395264385308927205096078911354939057593369226667173311737839110383703748149045889135850293428539036216147461297804521520676487627990801576686527838287510568178808776990731727370106055934794420533249257923170444709267807202727191886852447963435653703385300868221308830295332135387508703462608585239523237548965731390308321694148857110666082773094213262781380388315144063863062762877991470564484347913319548762383016045500893957201677775494917750423486968285416665599128499902714730925735476120974010891301919618795382303617097087801343107319265967813035381687726400843957111363998196936893671187266078558996455959149339752343194366377693504485297087175877837887582404378898099142105026617959450000341802083445187658823626190487318953836747271176816668076353752661818802310804919090906163367957236947000625859338047238372380309004382487941952226815905332696637449792843915806507209173412121489906658453139662834475938106348755618693233356479530774074963954774748656016120150849546151649865249691780299155870561790652389221475129649114236023934238204404115170971374279417855621304975675096072674759404636456005953008766108537129521919648378287465314921958071808374485459819210619300207565460156422147252270892080900842051062592208953084788046037475134833507499334011619413764244794890503545431849838682993591483206823052888431719959736346359236337246562387599221060044177273309504640994281657591202395984171479482190142903003975566405906920060768280249602166942284401697329601142610134862169257045106262035462487292740636254827952365393547158080809021877895209755363637281642448092750565456422980084211276716053633470341179153725289450339412449073801149278526520314682269889553940660093233723922917491132832193886921246243600369742209709739774572506708395223277597898662354910234818352606888714354002377967161563991827807460347671625054957425735528160020092076353265490139915822394661581638723011352049469111237839613101537396361122247872006189449739216283881878332934315146471446861230401358335947191965784065684471737915367247843008409830186365152391633033876091515780084054589319075026151050862491815971120314175648710790316807344184495448066984248281120790844888251270217726774310603559235154033756156551029622917341449871641979338846957502558453586022279314300782570514694958460391108497843014791022979566206288870718033508283172067300381559841601854730777968725025371099393239383847282897222747405922778906016155094720123822932223084699546728657202915251973697664480431493157409758188343417622680240083931796622207550959152125550764266945859036462723456277505462142688759604951639688547915596508620389801525751617017784901751378224102654369175427001443300575455065424079867074833202097284896597689599328568385092675009520896981643930918548558522860538939916559958091026532831112134983629338547043172336338709402608048132482839559186721437458613070454726910885440345073314744281704116099294929558545159423335589973602585794625126095339365929238698183946023146244253409756650728312897914109807054425459397282118732750265608933710720934115540413022358973071008541260978199807866074796743403829349716376843237890396286101946017880706327459218656673927263767913578670125347170554572293782965736477279174317197240298000944050936564132441173398732721182858081495257898054994188636740657889485127560747480902896496035207856795264683989508763796850126001371320444382162043551981630875546249008277907140802563062776955808162696665282020262092342559793602080530694806974292689354674697256053594953110319293184536378793317816263046778564108235429209617471111549523349555347756741417049291621718746846925106520174670920054776355170107892109101990051069069904245611988125423419126392509079805314708056268072015139019691202294734553752476790678991468178893489035808619343928240765550164222243178362768937621415539805193414152977083653031072432836322187153195978233011430880649308187354434895964980932387814982188525972308723546387234529261978793608310702993046381321696406852912323175355692207946151311218110532935476138848406442599683034686364580326857912977134546413160144237325863637684113981809631597293851798112901125496220611921328460974951568902419550491285101117174634481576642482962348929619827651820753471806997436631430546604888551676617202601788166320985522752940434742392662106066818595725468988285986346501723668708125695103452750848319126073267704379779290830991457471791324839334152745505188421053046975910842574625175882708931375924342961626239993804782212028027472635251624772066307949847267907010744850302850598605509030569276439401820755950408066074848676134174957255003727178387432842262689081632380391568926987401733123664323201550663835913172884952227942877548016077322340432764704549884449420511486990561797059522994543920053104130572875935909819437890148941470504922235374162269916667958053026230076443250215134726197778835600982363756222860933966642341630313301691880530379306388303844297561085508773369645598945746392598691287221392881620418309679801199668589124955255519194350746783116630296570042448382568157643716917095847836775266549963200038573510187632640475508740685706228173785343624113804622498775847947022065964125605135464925597963169304396761785214624825032849743948653396883237965591831108223363349381077727513801536957032551975472621242184226606210342369038796497272695979929950501184219783297329360134300533774758850002176048797852112510237265645553578499478765366563956829748575754004716313449439057251579632078891734108550717480652271372386577437333527424608851828320343706529571224469329836507347417261195216652951166934622747151277022000717949061176350845298514663296377378448620651079695438194422263100729493615277577790509623948434201401147740903431389501331478939846010263924351361923664286126778739665747671622798721119053541722035039108269319326477626416852210937249280810218862392963777315527106339039359003039681082351193630126998244962558171411262168688390491415186048841728113571267843398764625406566989095472185597539162857823045710527439831967522590157480885036393414411600501498223611663704064021312776989545061691084715991974134000054773084178559895995050839636145256414204642608957738893838800292984288961780509918274566935525046497483054425366663557770238591387001551388021167614363250169473785149615855187568732407814157749314800013130280733049744663200820635368821749988249743522621140847103753716690790639689294040626689550513438136305372315018616907317916744825481740813908147408251143847533218099025187480032393011449467610075044285327977675889146722206540921959578189606706522350110378035710802815628339231900450667197657756353874051347008284560113184866145810611264690353637402157526392911685805664460925862834479754755947609950476722387772059719412546628921131570265423834881807276589478275246211073945371456812507368215438809710746919073551314430214276176138617932883746994069629805712686882608314752812737652105834098651346813466763494571678045496449399712472974582399578305896521003587936526692409388643081112639732109581412178714941090225855262424385668069779093505559687821663440063586423299529252631702378816043534636716832374419552307451221380347574766571467108379092146388007646778527531480614138735082339299675745296160779061960785608063542384010284322519678670360099013019848846917936174579477093785452066370952997995606489076649363854342362441619882600368948783480514310363367061416684258684256417110350656034955261699183088529463865550814049016444711407366459250033126669385954229944327956315579817983419624570162641336332324051379354558250907735186287153602748723430884219781919006238739303834557686044556699097328685811495599113830496758545112699239790070497395573799984712509191070941410970957774323912124489558617548116927034740522214825856206581719364948466068496300221796234501394638508999229415881837999016935810742285794719081323233006355636452940056354017884452979150902489176403960281587915727565700918228043098574652537002941088691401517954259696193804882864467470096864981950842167020258728821481413030039983334736639062472802704794870385611528197964563064808119008040274577143028944973896176096606627932836984739872216956982377749615688595660584766411147748922097398198239483601738884198309580957928187726611601847779267411186466023928940220475634134960529593156319051337593107959769807580792573883043553791575739543929152197174627901754410916641864922866049406660934824460165599560208503068009522697891604914321730593272910161458091559263184521598612688529871773266852802005296054891446208527018133966090419534602454556290441285078268651545538897800302096593389612954344895239079751196984606432995063504259229185261546863549264607030554485144596586028740688205944686793138827051711871836986050958268331246007740290883887559377336480572707510430970829740035021401402259633001718763752267718012810056979167826334014243393974469581513273527461827971816536453382472688543478744541487527160166466189812335139829277984439050018381897163750635659694402216543083434098427078891618756434446455789046578385173027890291230838067900546512861372239190308954965776755485927907397693342894519201478441820469496021740327281764012276335885109778548930563057551405774525809987717187660035662358488552146495365606637864578896414127531855234688622162418113797717984976025854184138845551082374481448765816723474290909722546124146110038429957525483936536699488113789533967699380420130826335978825973446066142843280578655511788023245748649564795812379335088482852092419201825905999849060502467910605277102514395073982932567477724043456751984720424385356285105807629452411322475401248970199616532426411054830378179215370202624223140878975546884521639198771080350368435458382116754477293353036528343532326086803551446500213738209101771303540973960538851608641150571821873479049363893774757435191021908425396840076869871196403551103353041701612482175664185593820132197862785569589405401004509011536830567680599093464181214659478666993361422364263520528984614336567049780687918727390113671182607847473954576021722449389706724903120096417543649473850261892558875671630232469961528217991413775791750287788527949871884933946821702467468345356848861477828821361043036709085176144312356183528608135372434818521476083464350087168617593042865252965540737324288001609715675976134745903179803690503021771242649947294647646647210282557730142278960477563552221489797497896063409136528244198533234854340659540748695295095331036487917254676907733691486308348229220699033646731404492220058827300109491800061398373980833575878851011832574206607673339532960166418682789306795985647785964687530569737252081871435796838537514272671615195829145797271267475102298002924872300475542380700707296261375396418994115181268605156072149081338030301465898795841137320002974085440162573903058940695879704801121258990102993320174390190851180607253971973927746851738290727656481570384650606369093845075084420351353001319798657100198154630632716492764847628223605929141601803534742370460505033516711293425861522520796585260900364276807246323620844566525244222957552913106401759217691244824810787472015952549297453314288889719123095390225128052299743997317194846908025837085586260926617951578306903790130900069916897879827355281683574565550744565047911011752205861836645692701944609088848654689277785199488451777730784851265626752836859044260089151714003243953082594814650639368937351226983532297595942833635204511477937390354050391857061032859070550324167103951808696779885183405827902475619874235131957426593238373386015235114303969498696071858015599855489025785160221708656053937236590709920149653781816885819696260110509329744638155273758772376956172452199966567324653513478664930914587877606342568038728476404883526917035955527529234493852504819873743549081059366731658759910190347095490796499994584792991699511393137684497338851013209631155151832120361520006989732606285446268019792697026528217941395091906888469611704485717005638514673577103667448258621316354666324668413193020332985911461410470788866520602611799931232151179873593101939340849379199328287977460984014885173165370826070182700354487241205542334266891109998913307500790356556378062073333668341140258846405321208394109703022199252750370915656342827147898325102161790547271942141692582378562420230661137423485654470920593543309372713968150547020540883849224513857656247894987409950824667677673654473189035111869274533948551177076077175050150972171643510467755150049465804628049699744737613152764902025792222852130203852590680820440175384915687883891669588134118688972278314602425012283676266909971348269838838214916909510626652302919981778514708582522822194756692907222177665727298622451134718129250326708902635671767027632947174716077750842101595663013184916551351082885055547619588251754898900614710078039146841081674618628198360356102394227541430255568947071031299421495096879770431146597561954007391346373240263392326221787289015576733494897035570534889794301516779220302733961441025213084831892522461368736497569283902044690510791394581161521621604380123293808868859933810716627200285062391880404873390277849014207538105774979056603490960729180088343927176811184007553768900289759066806785595363973580627737714685083010719112494346657648040722118699318159148019841034050475016506915418154859761119937060070419450363924890387893695255321827065116366196806248132449336712418517986528313871753004027039339121542810619811622528568809001159089672612293135848751198186686390522544608324413210918377172294493241220469561372047401102514761910086913297942063780597932752026197322835244635816756583899824621307409729660950048249208702539057866563561235264015967137174499692691171855638016549067567106016016358482518287288884244890539387797266653018587644061348025886309896911908263411782973895871238988095007526692469301244532738186990506435569946660600790224912306819013122047373550092387334650748175093522786380540655256381705447308039222241891711408027395045425210693253361766683296271221218469252569523838337052720425979404334915358954530697276747911436568971300284812048990871529640131330460137476224765540276403707580964684976453960848330183754325160528814769364923732627156435583073708094390020110451799665277710046035807500577126066154056023653115944371243856807842687247108826773708955596291579293941123367698462259728516682508316565391173533998513349738353311074538633950022960278265482268714480514839406214531946146879282316587238567972348658578507163011225617932233180367570423577673761637413716062522390545947641423837784073969478275759582850859453601381671098599055863946589084738428997288431144151568616383165918229082559211885993798315562291395896250350824672194142230389185712225462222021551234782454881073013275908955378079955873392279990367372322555679715946633177604437763378919164068374312098388545026953040739413147831533420714918592327853135893758198147954266534025013713424482985359662920014644992914124209315294891340005909202403682040230496699027274657677030052090567398379541326287766690226711945600626483184790650608643550027090406074165715921768906955120058950842990969641689889849150129785383509400889731604655872739494518019892143547131667817091835541611296977057145868000656274899556825879091133602690610247088726049169067738485339649353096709519502989158594070470068954095154881405891139255982100495974723283210800069233861223262549198467549694700195865572952825740995867739096772226026914364254070098320664847395262532818933472194396530241236386629707770036547563543087737828628610388133768698178999405017409071011902722831805283492633767765791314143766192853744807871523469457859379104545945638658822509264575355334547090826634870492500111221784854900495286934842408405861374549437415242189743384282082265745167585663051918907807165815329107943871767469558978298055251284918489264215427534784781515277849585318943924342354232385317129460304402848825568237339679989883669514968503630442545271175662079717030089935451415153588161705104321686602798633008993315328357223030133622200114662711417485193869569473056876568560488196946942080809080826400580084277694989420908032177275741653029257510304820369949977671902036848035210862686266644358934441931888535070219769537417485432535272904632622219147525290709565211235243772244309997421962802278493960524065468393735336300813749148198401311485614470439328957960987085794741198256882569314398810484746325749119725392316923815810951342954407099423290626696559286885390923531032897714510881774030482439524591103383077680408357772815463961232789812141491570412507155859463987610592429420114359168392292661162345360671018604407125381108479994150185404069972403037321689416703753188814978870603156285111958217936429092507008337264258404924969510196054580755152954529989541074766875163072818167740851793828072425937759507797048633256865431389870590660508625122657363567418307733486402685082852338637975877345130186900288199313141954068415456478809452388545969300926680314041200045378296153018436834779710406192138348758109850743499518488511454318102414278591800748835057961469471704089343045840389450846417951131055805981897303979455235623492731353604291722375962605002522713999186996122897060157189717067372726340818083120717111184519112722734823290755258472006796233156911573068257874805094975480686153774120106932346234894375160802074946463852159971088368177718387974704046566107091887205641580691968760104752164812136359874663616070890889700106288685273607150204214179108630115580794832653410451528734678408971220609801023705600494802197386623372080244838000728665287941013196492785428116549970315686039960841688542225090635182031786697372401069114506910907875380505106178541087018368594464142165358661643255329009009064009489043683614691718113129408021923198278284910066332604999991595295075658685646748641321274387805274235473432057106439880561058192613824873002150094328161108073255406665587805934924621807408966021861689237962216031617368611824742582294099548911432308791505095939525767865612303119187694989125964040141221882525358452001110377990733995409520137368845912071035601585517441108578829948234372420805644459165554112527430799870250899344755827437287832392202208794585980502707552474129109406176045619201538692863556008238705353122816843092044399201793144162890210622865629039142576651566182625233117830208400454739512810197051220339053558205865247440085095361266613021973548089847158992711124653278695386742349047538715898958788502447842407174541487085252513017913523382472680318476184107853828701194566956733720370764495547153786572962131211295356224110941908330961819302492297785529327663068348074491448812454385951755936241867144034902566200689936951028763482941295295682098888849009170214145510086296675485696264715303672474654915373969159175955928823933677443901752163802702957865736344375260053097354878525483927932284293023452411092125366790340407784555679555651094199563102006849932134424163817633957636223139619702817017420600302082891826525613388863491360248335901588843210406770412889673773383944774767526593755256262109293153032323365394778801247068874074321435750356740166726348403679158124956815484322561059628524130323053996207792190872705938798564177078027817504709034406789207255982111498916390533311733081191660877767775137066890593924852478137103793085171792137360359657321743029245418960979449341298705491350442906495344294639233842854603844143718480612250035350892692809605689397648500408783648530644713023401919215996683697365292258381172898665860103618808247742301891530084069456006781762276279719113748853494552829071970731810711322255559755606800539117684561970747044442177650162039798616837840052797711345780962736537149406361602666353761224380297477372799679195709787502812880241228837952348503645279396176230598718113639301294440306803017178305141528851616344042691340585854977640388495589362532552394153050455861033355871883960856631190034152372829796153706212600563575120270660564716443873887496626844061195471294851812886095575858518954812330334805921484136297606425909022886691188286238061189318401747354279362676153742893131806337594307933616447409984196549970025161852936784753335857811758991816127894949019637702572291127828097711859969121669585372410438809399918204729661660924771335059312596580816905652128980492860268779300091046674741044603812922944713253791811439179351993172551006648319266124934957170432756599864270877364099716496730541566300549009766502447202620424358409745412828539136507769116793172205062615328662033578968741495207859277811278924035859792973810775332776901660362525211812001874657713808336517506824090797018464971497705733221760843703455386109187557371479514989892354398902335175278824667681539416303429976692201038190627954987860448496447593223450038415934709990268166943567060506651083608783557983383706702250301425527263533906832110988791059030737672282616345605235234864856028108809224932795544284226070433710787373232682110307835692373112377754507065339378045562769498659406329625437773233114364100767681988519690347064096537024264421262264493203424478656462048096450541133563723497319267038596036426777814448277601681908646983882343681899842025421821103247949266589357354489586834042794058514846436699628624127401935702697568872127355053891567546758580683235845738431401414030935103119484787849576746661278330937117066173080901101753274672730230371356657662049109429207284217680451789906115499047080752293216487167170940329793965406488001037188144824813974370194506069677598012272022280395311873792921381790602556651495832589288670676601198304594541470800308015951618901950903030267797794403198268676130042959371761007809292323689681339806755200244592392991916643043613007119225058595244643789281301799057176026340948651405659514490075058030396593335008636493672920653665081330241033290085479635025444627473055454267773974445717522396649271420826050137153687504692798940303544163799321376986272040100693529575989486828306062847894259398264018231946324820197173745944620724511322887395954666471680000623964050534352221551785489320708699950593006983506271812137099243532551639374701724201812222762812134726488757396331352053774910076830935979567745361095663496437999039789071563942199223782608074419339973520459192797925110136556725319165888456712013404301693520418074113751811841584315868430424462817955297342243003586253102054150509215892674752841346706656114346313283490707611856323294420220760336079001218667462911947307068864241673632665304853963644985694423441432969253266284149895793610093710978980916368383315263853793373246141907370116946984012346005127850870703589349995690573266705373533142400031577537785728047735379093860946216356158657639055358529746304408595664555399500100266932210803427128864658460482320819341759721655510263943886383265792199392526853681964590999953671347458718448767940838699475624175549281689419687974207015872889487266860524975766643576906313106188587788406330273706588195017126496895808194408045136436527291643477740275677893898417955722662379765419507960566875995813469598606868737256015508209795453160902933777734575546495537393050072773477169682338402988873720727867555529602990471442431328558432355066562054455687013123246637620776481751763911602526086200102694574242512213617560935442756392328980786120206053344878465354479380923524097814992431939758204119728972522570554735116663004381937269347799117356904677691224031033468264481607692195810988982140703023495566413427569670262911924615638953351242081251746728455997796486439569896257337024936388656869749184737418857493393619319129419047570792550588539041831203147004476612855567844165618946994828049487594953087781302224809969640768693785414385760706956281570860586232008296159084652557310284054843751110310694556274686994640337621054485133504056896736156550263057128596503821899288811976225831081737177760524008513979934659266712375132003844990180300942270268802717875811392382516850354879748240180868968943074490573708091532752187188788040714268350889280754766336026801271900908513255759117103571348735606128842214473858464652957592734604843220894722575868617837721148012499282810579460808237828059004268640598907337002931533642495789172011380832875897228590204280340254998316547345529784185468394743495315035523924016662833133770862466283676887361113196586618892232445804560207953232821241269363795101759813250989420697816137823894600775792527167426377858402578655831634606181809081740165458104906546987061889910028541856804238578733618651875448193990986065862772594138768276705193390840235620632246296813480019749391870893827820744290601738241940251766878136594564949094236092436434483812575487786024906680509375491797376849920187010468903836131256928120526943985832949333002491023486855625435514159003269036162610743808140179545806192677371134705968199747086252629764578130542533986820011345175135451496137389078180848451613592633454380416563575532499061749053698917423623039353354517027922541651161561993274107246190357480904553582978283378938867042262356822236115891844451576521386877585358331600568467276224523255496423000962104027968649125795545343542602322707914715073995846631823947568429421369995171317058145333657504842537947541282409719120972887828233034444041645363938255535081146684745718248828675451297153624138101571318903298621998890157045428784037335150555933595336855457848474594434221526069891460881250486660864603584985132523580034217501935963244749723037748575414984127922267888703987088962410641616875345156972086818746130952347290795442775372256851709529651753765896944074686590191814158576671379491045493305565917549568513953909931058080511751241731344130808207738909134277846513361311279064997597386622492123510264464638909798805683535281546526839473420401511463454123627613776252712795978194738039310342172690613339578620758772094682823444201504483209627694115686206952670422075946560510830136933336192081674874571533792869948964172886759414655263762422127460509539851907510560684925600765897175074917819094931749546343852475690527978821493997357616423148941750974309717423036019341514109648212364981941049242649274860690459374277188373973372363082342636028119419345341036018718512439152324731916970215603824713103668909471946856852334132093323022977085869024684097906596173060182827985898781214755284681479474411272421703088313956783985904600567041962446593248871983157543768097237524101497393064036309827859677424682295649913034467463639542532939348139507353184559294616455606173721636984797788910186704341128958041763150653904062014288270347480388208183951577723285698270380197510363847409639536235247180523123309013140901128017293932165352314664738427252191935888672718736209802414306775058593096962633448390546477113806405174812330101280220619095734176607156638678800967063470414730437467663825886736802652213882321098793318810832851519956832201122119300097863576926391960565984378393657976619153665294131115352195794499578735989325007152837565435848559886142654856854525316808789483853228039604859957853633981211761350282608338698599194467571794462013896563589006847274261353679294176806424222937420416154705341135741048567605360336914474670676219328310056342566809514638598283930565200522108443136388694190269696872706516874968810290003095446868115396327681735242400681933208920724037854761336221920673832920147599133536651288265834020839551084491260395368053891188858378969722676128789424465542064336639752630734035758422436074091829751167362077783948859384628311001496044802447294007582633489081950722188835091435401705354550220277414109243098923956349222145181907800070557968747912841336004839052318000556512909457574197500174563124923774231713026990212040629443229321217942729920446203168121046048129022412846335831388703298368748989191038821685780274480064065853050718796603622865000889136348515926612795520528642688529516080862876815650347114717184604694847488005297437639080566830019465729958164065391266609036712101732986776513766396696589563509001717489815093116256407502891971594755783818136018513562889363345233152682118737426937977314770739671216347629340679310614801665756111726345831432802465391195200434586251393999940259921827375429502700118094585049548448008809993792713756669141202303523609179806984056757210331616368681555622640617051247983825363760788528658178185809643820722687191089720066716263047837258439744068237446700154506691650943660861613399953872002468498858720769872889369506956335927968059528477457891585299471535512848322338560369889597919455256212920763084508931988457502343208529856159721139680901658237326203748341835892070653860633190056828797212347930407876739131666375611693962694618906437062884021146640001653178489581672938817782192938756267285685083369742495389267087458679407702007324928312127092224350336085119698647121607624972808908438206991547459209104395090101095801823681658011806867915858165096609904205984329581646814150857956836110675054918305163112514156895785103104810872941031270098740338914034480469822258742379519381895532067900042788343799093526719739857362077467883037679104696695976599221095566169553111189751257005899042309538197427007491715023726623073966612704613500682228560682775327083039591132494266312625439417857807655040113329784390571800959326376565979479517651762116138665833318346657377197325407160908689052309146576267504169493718980800855931168771510863945381321356721863204734188766739234681855530999110725604634519484814453169638756113571847879441048440799155432135802623096552654464532024057136335275920802707643113720825357712408069059247837609550226430571435902464313024056580042124846415136743339770620415568500162910684027989687189336473162090983779439270427550222970971142989126241602510925282528093264566598196806321598932168285332849676524889641830612104767542681676223616578241121826236035822203561611245649575486733690378698990743698123588410939185145075434343249980707750102006697539054923898313638461086743998547296370523190138375340726707392022306660143776846249297902037814650613224048496683021985333318620979503715131620466666220951051756903460329641114938102294773665817593043227312448017962750383448926651719516539372595894047010040634102032472214543999551962886807414966205273923952915325679554626917742411079875555718907252201918383462888446871196788196386634228448364616846904474350322744942308058995936984769159291953715178203981586711669883135595298209221731081121663821415084204065375100154060987677001827002391147228376930241927969012085123506219440755949952089821423457675985326106314793587057905346287578382151038975809287318772114031301544792502565306705848035968501536918424675830929701121247770352742212920983429684079159842764540231325567269369316134976219775694888820116659594742958431534397624662989790644220274057085593552836742951985217850415873329900112580159752124982585180375161541405162184605495565804353174470111541152316610350305135074142200380592600011819178431385527393813270346444108736277426587757013732261780073049687147888183980032453382791354203980028888018839651672545157020708895101595762528439095534500216320223966042950283790396881639486710239805849529266908793465241279121921121741958451858791786771841058082964713143358668142538101751556717929325116345067066424765447177859317002073898088543014531545203545890672942974010252134935761867114359056683119801171921619350279381211934214238886864645247642561482173970629461332809698200667513128217970634062954606296501621854766157571681891337577539460979427290999261928034676278787968227034846022832973542639659540173704831477672828405154615879071397755323302065599510832021811984015474196025198271853962137024578539000089848136714804150835292635492082063067537280231080808158696540891853054963915519420735524650786930855580944596495108902608431483855613076998870816596463676033089125996533865320563356464834057580271720799777611674510414819925633510016008460661515822583204600394992935610036926244546613889966031969368741864057848471161724442528282653355445757895115471828092815094663973517419642828233287780324840585944330590861573174100900460377531518403745158051077417342228205327772148304959790117583564492313238672254646347367866148453674742743379147158562494324140147621317934600098923650334533186677569749233476739713096151612096473822235167450295710397334650239634441417340813204706711577715257730380211215871749815200808392519044657026578307181856494668485419556674619274855435278968001477671684757137660724242854241004052541940120486168739281421435142574851701217612325129122919055588300152139828931444112437410506035666515956284319217369798646222583514540791942544610912725346064332429203754782615438076860591319296934211957604541426695523843703581133243803337376334668771919141450840381066684434971950413239364390562150719690307795336224881893230653177811286864689332842731583644025305758052236463379708703256553250679765983600011019616384538875077355158193920248871315345866364804159082721645816902476181917893241604955874857882756252411126823336610335517957029689698618820251669992889373103775326091420123387632498084188239553925541164083380037463885539813401653891566759008716660627260191677764883162799168761698368301701831975788137499828610860013873943319924160678308731138117373569480513997825481006754759189537907206377392333197405965679802474234923628598829182094958261325928557733238333233172452149353397984737278425720530608614283326101467473728207499028781168668863083848369300218197302244082777763262555715047112399437716038169902473455609524649042491445079098579809271453042098636366647864826291506722584722768239945547509209465651643736915048213100618647227057660882682842429665922121742465085247537089108355157150256111635139028622583165111840303559238425839157046355445256925104103956693301029494873200521370156990026348603750039473933568290155424458249083101329676103904220928725163273543737004886591623417191873544912886584187215247729822459295320332513476069284127231367421529543165018806734959955982159486907617095754017483052956581232095444766566009259004166348920578219348660510948432455450084693158306157022673563288586554200395243936796804765232304618415988436962520942089328661640999989844890039150236987162832830930822662245205615386915849634482365443565628730759061343699007465180965658611761402808993742673122319410431875900130824871732621424305809545951382132275491637888102917694339497643933248731057704173407940385589824774660645015284012941018794649168934207223595112529533258740677174657169303486594339136594793141758891362276755309576737477630480162747025702018601793634719470147310927238800851623090814503301144426349824148510003103853139567707460625774853840437824369354877292531742296163549374771788852615477689906075833935426209901127271498737801766502894326107784478454470838370056535196274299626447779336322197462766620286193854380681973715562327373501143803915474978854964802782067695151681450597204434708676384253129535187749984143850367075636738168019742445879518608079021129143040204478704069482782638239872084155181719857513350858525353049633052929256522565536370259013789212549997828728697577714975932482694462232408315908426360360812825496627705242618483362485469095205301432346848029370533943224570320176972942007442456581987894411674674192799261183382983159563814596702330348890008451918552482365856363664660894735127449650318999375622493797797699933112841037383576268506427510036383276011706509527755333032996517607770243430282630125220496413480763631156305248833602060069550575544485177625077657685365078579312548254360141414294224860465821172048954599592700343736083175998144988819543336009287795367225186494366389858954751033703794670372680135518405751891108906379688805104822803132046846582894037707558567715236048788912684023588153897444236274471181351446288147534182076779555127086624622547463939940590617322850593801345707999976399846968718345616439994842691672158219376756388117958916406661905510799020341776382676977971079601697204957301264087011997701244548086271799911169041478415333438696610136123642198896677392525125722288492587296973564589436457585902576237286229783513853314087205167081888649584178572440057825188114840313138315849285710430877938384849150331647672837730211108613009797312799481652376863836724041969777831256495096917441671681626465952524209357801444534384002082172143546965780760762461914991467461501138073095667429044828019124204193829882289330476742538358078911504103972215981527625101917558356446823144399904775964726031308058876669335165877415999523778194187573567130540112182723889412492705559128641074534558616074802034978923230187700419034966008948928222749727498983215367842832445127248687724890737390905309841059642395738927706223445774226728049349866666517211474797422879607196444678498100196257519343758783389554541016513889320744769073400516824681305222129243504934404506037451299363584942835015683048517124640975420994256714977148269257170464981487630946535379085295997021350537620250209557535487694806060481390480896950345474507504209298725879227351360852211724373563177385726127087420375646381921104724053861843513149066478777126526143324817511530513123735614990290633156154125388404394840477452543172656789915471383697719916124090436927302796634735955739365667557232524639919794756067063518485826020828057007381026826861090183974984067651000438408092830558693963112733370649263507278001297672750428416131295745008046508382311283598151105318008110408781600855621847222213070043837650507438049026099023071053848730481314172590917078463592480200302664556626515675898728116028375271761166173837202187127438960382570032913723736577116988043534307664601158824307783850916489331737479711969566174264467502482931186905758207187073358301234126035453214314730132385030956753543097892470014770868470544509774409153761670883128361869255479940505565382198210255736852067751566476627224648331379958221197585858328931696746616265757465884759365721696862418424915268370788584191031879905592710655271374795047512219456533835214009782063869036478401454660043494419485935445318882480765626063160495873382607068854980293553968709853848489323948513459439473682926148258671809798908561232019770122706452077386635621461886713544569044186493063070440727536802235764132763249989843392617538742189250850132744445254173315166293807638019612060213195477332771751357396374860150358634697565184568170405783677249897237263124161804969703667894058988560636355380171300351836888957843620462605944140184912310407647567357877346085467058387859514652617595035231107365975491899124612385527454362898311221808498857800877991663708809704760879375738726725894087944320544485682697919218337093475266832085841183696334156091901261701042518007556875555903600044618192677396059394844837713519182783462491710497224503424102528486622298891601075352556924620656348870238328292378257325393891170790584502407741798093944471799188999697724186922872207400688976738509948631161532942790517325940507688950766597369569038426142815295192161557760579153149198980161701622821497965186670034163817144975354780330315182194734932923848702749182602565388303092759206594006507326703868520758037528315842319681742013067466814851635642170271087898676848287924731279296954933850290318885195087475021485271491210217489514972885180152689316420694353536057376608233601737261885800600179585452748195442105886354885306356668608533599308996371585220411432475682563340182245198767210738091919241090756316501289404156399000979619656684547949998122385127553002252983421695364891004491962321864086423474031282067675087708310251655022921421988377939188245136142823723683645285173285672727505638407201842261394104893473931201157950413584303140656251700998548490591433510544345958633536630480724946367813863555792284873790906449873789088051413513221844385660039035506987858830253883490105495875740978470655939026509201248446425301792267108806772639059570730340956582194496087174180881771999243184318695063380546921247983500358529412240023759297461809634870501397133401233581635169475610115159924422129662970161495024225355887265283375297453170342373384417493850975484543129330529127500154739245219871461424385586732193790576191935065212625232776594652303826969679073399865752703905725896401818489650355910055810098425776432563901935098976742052858276768405150517156784423303769792670072054801061166915271702733542472018247565577495167860942778130558022070159326158885185765990905117226030799389503271566936164442945546088747545388301081890060608811620779361555329729999362244989437710140484159174535958753995136193186648190321895221794089014717057302021394731167281814114213354586978699731061880711591351307425441052384999521286796086526667836904831227572478489670613678307541031221122692231215481002050925242568113772795798177917115468807611239737584052242444419644353470461370418001954356785891512776718156334763684169657633093961164369671624162979260159006592611074707001643814099408186345549606654241778745943933500159234445584234243065854766959001108157282570164782578679487658641037614163306755796848406545464047487953816178731478254973889051483495980283530187884669450647522486634860053778765364486381580604041632485220459146309871265983266282685871191616688732294188588260954191794079097791752647891147158098528051362253933551873311448259360793237817487675380440744392862856670392250652211573948644591918645568361905989563613688469111934349595988794907757549096888628582098439196573001169342254890969088417997749280468247951428744932140314090832088767791722566959196969211138559968730003285922488736214862405239082785845262286147098819789529197300013953624604203858178542566748961721222349684016370143832529936572425740722691860716094505887828416276529969186882008775027590079504382226198971733381880162817887118700810215878598000501673815272204516480137142562945109835260903065498949760388510067635593276285443479280120712183752555935610672941170985532360832029268288100806788318375617017234970569136767987701598548640128190680397735536819423042804677744496760340607212755887359526430813042407081246287259964996546739146142320611216892050911440170891833881930088485905593248322875300960536211635881418483971182209759742331798185496011436866844300208000290796056734665956226385756164021875618005876558280183229021974592911242315923968036216741232633758109815446728781887966177876892875998482388316401825204654003434425222018191967556867741148242656984746376252446780089502546473001764622416556272420927700099801901948565764082820340466925552002199778328679856829801220033280293610995813312004169030248466348050655094895228203137005707937200368407946138478635200165229960697328264389550020165037800776420809188222710103381123204418936106972325716006093648017364115692631764511465778398126990250777309092094040823038753993646308691902725808344335798639105655281066543447931247515229288804592418394932644830366849828766385944088259052925064402555303863679127726442940207369483522784247174808195157651677266790216153628797998330575635830448563178093236542273472349188174113756835119591494722095877158538830902210485441078262247909456394501654695155435047336119342978245312368797272762784049065005387732896765528128124919141527177218091718905408300844126837016066223943344809878489655468876463084136561782143764491731522437509031867268783913240104777775390332597146546164015306908436390012116931681060526525754544897858779743700262362483708309188678835392939686846762219271230416891321385073373784020133107031175083391615453061732954307432115951335203557550666156769313160031739109669772218271230760101045210965326519543180896416099027845853405787918289900993048508946288602620292271815939785817650602126087722451367321275213523336270365968251269919999558718555242113727651934438737471411971314697280156943431738579996468174748386756608783687680143840856819174600365553619828527675341961065457796832484567636597352419474603676693799669154721902558661203536765644038792068657790398646010304219614585436321274838400090429969307635707892280199623939772863751808950866743187609721013463338936474410277377940949403841642115705924302906665334490810471981691161496499364778713710442507104553160940254837593929745781196911827922006529416326679759482665380777112324524849034636453458592436799432734670581083909829818759724738566986697105380783501367760735878301656824116715308281346274974220403925847704967253739282384082319772834468792430878879762573407106659256518846812751742093196730458839851221265259718620311896122452603714955024764088912280268670841408674428213369735121817479572917206062967910602217086907117935673892627713505813957356706748055723855304715960175097862909097778942307852190424614513202973532108458340207024514819996291227999524215475374193295358835528546805713076239528688815960341174734796364666666444265849404984832729791820763192237449634226776881904970421234272572003252580188434109866611365451413595770002983728035163854505574705232731738483480757951064748036741527688399094458121091798787906879445948381881035009557071781511677952839572964847680850697342170793634594291790778361721104773960657486885805154734141011489747673571454755697128443076339902825559193120941738726579037029599598106755967956370087137421902511998936868482964561219697045103274135935600961808084457133095742146256710929485637720521409327815954105364647585675424053999194034616302057278583103651305883159767330329302606110343204026580927037119258511335215343594439025558478485251136955540499034612001771893243740884198124961586803638388322409906110845698399820513466620776723099218785629500739601555200895804505319940557959889489871281037238699301492622741318710618066986838032474977052019987650475234635386719096860127097585410940502329647130747206065881496629338013255428979698267914617438580078596361628003771596439057086828986271127941780190430864804399701918814529682982524424226598987801898909351336503102027416310197125956970462139286958153490260045274848065374057302843928654222942400204131924968002642226046679048717255743901193021832277117813270310023657169921484015378543994971250823709644157733933234533588682593488822648939134977284388319492059271268139029977220865979137157136240721205867629768861702385445452591812404095126311592318727976935701411561777398407271180541333366687386924737754569808526063917232980255514491752286945468211977082503507485740432412884094917922527271856185666286807130364835517263407599541895011112268328202585031839642766769420503915880330397169232281160640451492853420970450709834694274459160970617239632291685894628895440890281329064452462002374002568367399583724174264636751056309088468282846421471785858628684436404721364522956613144033394920215902011405456111058595385678529965982712128036711737194108650706028025786139406598822402676230144041299643788959132780242967085765278083302642411714397465443885776104945453305451541211091666864838396427015325054370632696841881976320955579072086528801804533772807067057646443618110858135324198196580228116562795307945362214141204543786114507325271492728800197538760839487523441466188832934387375731587772643854596401205212369926255480874705940938806543275093997819366931391028937800970544222217549686782813898566740285704462007254527579951899682497761294970858446235798625460485345434189673933393627437235190059405754416223782347837815727102805523990380268840223554060640083823035397778695574994834174566654593438706462752304433663971008332259920647117971432616510133097642580851084570814001811088973458101541825950017830120551786070016771549239365786773237196167389991841957424557366065620850179981858133202543348771161943932283855739827552165792071830792714160226405010140044286457184497791303525409994187781353106654298013507327173621085012861695004042459742333856292806835155445129962866798045683774825384614451820299443177760818419025836987701627190408325343111620641251839984077235140274316042914960554767341408340555407423321998362026024473069037159710022705388622512656084425813816731314779331573618330579932120299925445685823547480903895000507063169395207489731600884286288042035218784088158971294807657973791309794001252348759772369758049453291319033214592942948225734401882390981475201613095945578388544322024270667192642751804484439316226232009814150644519598683529811861019885547437304106368554954484020694792399630787630521570362496854038628007783813105989619184379298078897433759986733590798943615379132052495328534965206518534143107026510873035804950569826431775131844322223255956116122210530950076959207232172478279525746630708686563679330366859794522173817870064662992770841743610645094386867400679024962615904759195927340941480610734454483632807721896133023531957299906693335373637672727070386915653693879489975051763911887028065910186758239888029835024722308944622647078864320827632745102068092351239256753794957679175930070811637550035568443728711527654578223870066204290877628256880470268465055563842429174043186183086821072660251885540616009642042413963912882339347628115296027191908934122680130555970655084725938637052003792113622224651061679554141119544615498187640238928491066172883288723415763822366164885428620165026287307313575409139696804986000646670192273041494672625895905046289512594167572214323247976405141215540233291201485835330934661311407141778683610125016831228188225957132271176166158899315432358163364882240994251849997307624739679404051791461215064268896322478806044223792340345452519902539506987289615713654299249615022565658445970405231620074456996614281625103307804139946553707240258270887863071669544440170528564924322453169978526929408334919154682375329812275055807491611571148401567723678243180058907282650217903377337425854084880275323420086257578027676933167996386477151472041273395892854467751904542319572190421589805165061670135364396291588465368355086617916524276048344909409456254057815359736960712743551206322078356574373324172527204710527843473994898630465513185733394810350576311768429059022744473993421070671963406292616615498657810251732012503538553095594078930918384611235803814877257910049877191703001382867941183197705050880963201514517066160306121097804091136216216395203457271877105037899161519284182265439980295679548231271367116829763666839272669265661705013265537574286210736077153950979466027021729985971700576942966002615378367359178460730961953249569031739577352217320693791839507270305917257298190453483974439612906626124609765340642293433176937524292484892768717622290137438696921831902662093628833599811113596082585783437394330656579700307864182796849803113442767448034075286398691920118006018301294999561821931013465707597631417306437455516766574892329888197404730152801706965075197425329002366519708221508484669180057648761855364951578961198681995369776918374878671318345060961959940528852228759992592453117015110729224347992466657237246627703642491521429909722562367346768491548201776313789947855610260532511710232747627677557564976830871578620205078600372829653573882698169741262402145677417122785234429065333448779920304934676093460875606656015469949584730036124262892981556384777719499567795638088435154812151936383520146111939197828798807962456936657449647522485301714737888694224392855354310222150169715426521597173610524790818498854549343650523771683657334495188672863888535762565655587974269215357377053195770937084320574624855441203859533974277232016932324751784660483386697771015747436501822989254192996339565101020080086644650107325438370630225341985209727412685957384293499105223004016627676731290087669683930123052992335909782395382815929649776621616679765996174824346739029683964771181753039828539213508573374867727552291404933176303292268749394525057478241205325128548296481444568562213987131534132384897088153122199143259079042933953158865638023949077149928860264834905167434129134086760993587002646636202462854619462618759987640921349598464393074141114761333096712448412248228251739829960804500517981501484305098901659014206946098448156657115448268188285902321462184905891613302115358667740883564066903703058433144586000895971805567174865659948789390139586192040263698311182204450583347903457338785923691398638324353573768563876399910180938154458702262040699199549429135739831527565612480863951105936143659041648994359186228122896298134598912924882159169065905793440332281653304764392001011672666678998386942733245664798461657598324355718526940600055680387426735311083913735801801943708191141970160942848171748280547511548881001368643141480659022811170395594131452877867100891875056225718953291726924114859313704038440324003442124302421873820882174735465560291148538158099155072736697773933924935849868479582698624979056465392288276714507109671298833574396040677563910725096735572081122938360377250257265984885211471602632328277396254903302520512020732884442151333314018291270102529745911929607866241345423651200780035045243069144614796916102248019524296681229365041990228017634336093562455943697600201197199640732294621503079979005282296949980406459372375325378630198020324923233094154082366246984626331323180934297181928493101531107708413863847963726625296782320924774580752325266938210312206948569929121724110597305632414739523344435124812431446353814929096785074276623131733846715241771831821686478547882986040310912453005772150342471191756990509240333574104866640467585822394501097649817147358576742992403370284696089144202819758354636347063955840066546671379806267586835544760282235610398473915126490470133641840942795275456424517194841334131115360975527347799328373967188145013377061792003404558717138545823067454701616364129879545624633232130398862876084817677933355532218783179937139872596565935435592518060964122136768175224346638421583356417971400706837951985255775074155627200552528728191540219288972012599528466375368322833233290297910294237089674062822211406085426756690441409358096496748247642359140295554552699899029227916526336324980341222355386457401985871945691831483114434856610991735644111581921588005340383781952155511787324571282822713257458738973547706764776074548676520266694869387539298472781301551081376019223491433758309387244345674616793173162319745515864043108251059470200091439004786158660179160173410848999333964947236024381335455391494484380185952454915819803459568500249613218453950585306896159700169154928082273961655037849102770051448741820238202503892938523476176175413410443300891652151203353021168099229947535251835775132418818571840092034181583333148115585070356467651911311009364056655220370293017007250673324879148116473328119816157951995216327462588078953466761050092226249760820399381892681463686457431530147326533999706496275402125549528115126704178444608111162586413763995510827834505624762622410318778912966171169921108357513985236882941691717524920842266910421334490440283923781673087080813995451390557669866892783670637678437714396976883785030868117223943174996612840044590903461031999281702790496586196109200566806704344563687677996205948246939212834219397052973463056361200735075291478494705510215967767681848765601061536654911395308344859392431062170384966358274058600270438419742286196008116249216337410712608027188228063344069658634425411426906520127416242563882617806106485441669092750345928835258747418786908885772277982350970763148689799852175854103443741890932738720982732341180252666532209410133154638096633915455479588718347442684399369644923180591267145515868607597915680079521104256273819307503492965043591318667036541051660255047337537029600808565717404996951031687514507538648674360162674347076258732439385271919751335990407503580096393601653341706515590776706108854624497634961944632411790370845149405842201208664136921177504615220158053206101239410752548410759627075735831446165670339941116720183550306528801102539043608781192033517827468389471352022137710498694444981430668340867591291277656515943263581573805514444501188788974396048214088208250581413608202019452673561978499797041973947580846486826003307808975141952021798101276882177343338037591633439470466144483374739772455199410205858368087687801491472170507735949592245697148332093899970623319896770052769272126027161004756783309554215788672105273217690004411652106165472471588970555989600539401809172105915577730322492273130172339599386777761577028052186897282484199691896726116979815164937874998944556143939870199224486874451226662438385145769761897561654391665632403032446620860593929164313713352377729387714804027697031437730713688649373968155683784308994497000438991908436855438992995741989608714594549823246062724396940387283039181619552652245722405062738695807125421465630842630879578398937188482243153361404091568380324992589748774115892088729190356774388087835304617774249092363879721349754223968333632491937923011096946623070145229054181409770829438863561635139439921929830068226696122765878627551086691450777402626838491542449875047601297085219869039593836946807342704753297203790784837603330820758244115738580387503250081802550788300710545726187818039894665652141308048597332776800692513257958526037795915453782219243120723328161724623822335445324758175455896483230581328673580670143970448695159638501533478892940205229278989851097246215574220828053420608864151213510393332346132980169304987059491331332319086111841095722187826970822665232727261698490895639002079652205482463166247275796256565057120557323766718204042170767792239965172790795805269416774543650737758705947343027382465606010886425209592385859345648993097844322403134620225234966431643382426695081789091929875304019231674472039175448928054238288633437470794406632576904048386565643320324409788181304752512236612848728113457682765349173379915168970140989760306840273354783165577732409314480459059576365653749081453621749434004194583995558146309693489361735581446652325514592617906072380063084605540232667916293911867390316716062357960119535411096352514170366641061880240298192387162634535144783412758099333886176503901523352144770820930118772823191447858886601663519474116761871923567430970797285216624247405129576934427680795230240292459679851954374865996724442458700930583851773267948051609962138812160223044713977693598174466504443955111429004104604573969273468153891834069075771510339515288246346514660540474053016155634057050176243160038359944909299473942077280787230048101283210520558822272113255268081430475751232815840786083274056047110685392494591970607358039395612207730449360020847181643477197012746608522212757665853522933672212723830028570093148425899681924301896466595152693728921105254193878873565362616276934489351502920550776541937244384176819320428883848595437731470403384954827108626430244851595924491707445736435672066059437466973256335028831857984965463557528726062324806407513761641709455227095753065337154268050160276656831532726330877313872037440812364658001328856920800313631861533828080185358197964305048296964538819722624173117162456705462927744781571376435884608119173729645488029678672870976850596086889934514531694356844763835003517834259219640990660765467911101717909446355167457665615706253581271890339058574381159643014489825925793429697542153042269888707394080533140139849910169898685407487893045143019061825247006312471272316975866254732428973223920470588776720954619549695191523099548444892971874638255261776958246391589182377175216570241227862416450583232047717456398471005439113125617853251419709487262656024773848352052974676671531038907542896523750230033389220346813585025112535424871729113584165669464675378346306957844032544266672576273291546324277977070601657388403698478966966034033540808773558786972828338558306751558512186465948620733850231395144818910948238188595077708543162188050449519046170778155326842746750361932515028621638480620009817329867860865436758596235802916411939114436281105332805425946520857043054585971668050041055468338163841586814302299736267211740775540653719699738744902158614442287655564756162109442130068339909898196340575326491926211158160558944639721051810042465413095508138491360598374577642542779482650246094379749963620985631643340497742267002477219349882589326750177037124395518341852159890820313338104654280494021777694743471897458294448059260044116341111001560740541538367452323433472714954841586036425312836397085154098127615299927740714997907115840081933977702569260066860209886007546043900116427379968940537372089347245753836273123625893780276527246936589914781456451097002698372373963803698138824531286122045705798341329504785917776633536029412199137934590093886538436524878040197097944562543073412060161331104565390216237519103140442285615127592379515436767780096045401039337667310437219867178197473683235236514687997613150257051792066078972103524502409617803314001464259763412362325556620456567465643407253425448212959082772089864538021011498306077595622278117983829211246656656171019037768957233734650319665221956316816048153736269292972923773606304607596616657986108977087233640086432743609918146607964469825224046759740221423201674335826462624041288050186349209686430712283465990600329866988180393957123056556029977751390197669305691095187767678530732117980594460911468343843267019330157646612910274831545787794226712656911497483184681026102819456145732183964223119411191264696694558688423826000662691516879344880791094339555535990204349998842032076943718606812276639537095625155856677509614728499249040155784382888565650064517697171088723992010101064977059671019762602716294342222100396421931034217312192423217740770471406856572621581917407697171129918255305174177994055274867683289771441251590302194258014998461551161188921728713655803637341743326220771169489744926835845410828664441220533881343775949290577087341693409563848521819457646334791149571207725102592994523411597153204363756961212999591226724732937708679128628553137775402198131895002621330288432116492412325376741742128796735463171891156612601872604462547469768852908008422376886387675219934441825246565815370672453034659682777849521898507680879072596426011294614238001386638898984067361778168795590506503755418674922823424726807283460571988454441537140051659217969987335966754062899301061358243490930784187688492578257980409558725930361973211070041796107889349616149163355763716271416117304580368858501746054762781568411953203433369674496137672211133560234113313049357109848288487684665341348664251850444620258535097673749807708018602791353556226089764333062092677818865213149596842143389771166785925705165285720620127555410002267007012795546114059155279005734467063961607796978858675385805840926437429706097700844069561001213198759780972905043276576235188622959224396123660571812542290537332577301723556162563153116071184613790536817250366084459202933890728110803178337640290615238783506929685457265071658206428013575317291997801468467373810575778716837337568458571517308521601562145669416316820836725128610941836174271412923727507068016648866165439978183833792274464734527402117252933992746545858645901703887627758883062268030314345116602462312206516507778231020023642298054730993997425882715825830094332809933553555044307291046518129006789397708752709871554140422121129173812025525009411318874757321700367772792421231784727976207730081425071945738219899894628599379993933752105530853508873852452382372687375062494911963828191557728324303136973843688736699579435356197984006328823086630091192160062524560946416893138198534709929597160465489725185746272203330722091215990976985641883936596076837977862797557614994873589327232653082834759802632808601511175501439728126295860936625849406632108615464858970723795824958834322675557890131690967567532764404053080083934156098085217760268949399314275578117083330878209497519834502063239474930005282399771073854280036852259645516451778319744877258600760238569095721410736666982937169282267806786092055287086853496008065403747266594458150593041961102509400079989192166230230321223469861947514856319429991610412904670472035855999686551383930282824944715875486254794937750855285601385344473599226806295351134033533869327213978019871891483246996726206237432071730913877665617053649905691683839426748609745683093974022120113000753536707723593315040320450589392912613552259697045090698795160915474594043879344781298535730809754431840279369662172904223848471279602853370951659450742089682262304881405948389601842916872306593466536219017419627928473382389189477513250227153730802313066454589210088028628732266932653214609249279342922756592736289752890233291599221348851089751947253330391921757775769127502170624490491002414373854395029325041758307021892147730701429457203057502360996196214531840384710218385204772840935007546591734817995418739544512316502271853389758106718168458336024161683931594908332000016284347658454481726230118722103034916860787949604644925256218621329129470809825331245412851528596886804257498460799965192817789056696594483193675194125575268432324791198307286718388308738635037109730837188139937851391569620622945940110940234062388196867328136390373277270211370867187576577508850303545148102690263190077799539907753122087200478923501118476900718381148080953173064424463926405325027866345431743514349102161161398800075449383999309272129910874283037760251870165649992474526165283987297086745478701213795257931069712374829657649160072066889130202389292170846121732544896672762320520069434659685358203491231005166993934995937905779087414095452448548953000667380264512187895211938857324292821402311543285114241724618196803703783865305322759134365722890903966566430577709061536335530822419622190072116803992728376758610165561143436036158976256432435021745688272797589668006609164426596871658881647474105465099563142771866137011394059116389252566855837393639660545541539345848053205382484649703220319108766462533241233539235248983034529756458421623898807048383363000028329818837952016155781869642948017778900574684074303136982167988761413725216091098555513798525615039992381068415055710915584349472753430252035686618415817794308170130582817019599925025808909390543044175372926454973125316156284654719083462403563643555805355583557292458805269426342698769944670247250279615939206046481264895955035420661211474661094388665809076124256964847603016267660097099259339407584069463927013988325228906986155534491421057121930012351053280017365978330064867081291675433174774164167842819727742607015786824492789120935461587196350126232582284701221743379975066711539916792614741875661383521002302382779377687219583382980433199979964237031851707018918660864480836536935748426926397447148718150401049852261659963160151150663610582962599272882216563084795732459898392413752962125009545449118325133980800487243369367304589100952182101827086463355289029038049006082034255286057058060514456729649341568327897313578327395053265760846033901736232638288010356801733012432515381928966399499911433994041795250145607495389787428435924894177277023466850356598633222200363597994203613114711953086885762280288182287422889252251617687823317709033261138434776663017478826798464216659073776284561066834674972770371748482720394138404308551686663677194659426897109620020590965403782737818944120109318059532227425621440330440748632034685453378450822884410311707158885233439854373527064346298153034299537118074576802228537516916999594000082249914163767939024858138790508785543691428527544085258555097231528273788706152633184381783376747707308676356473091970638674458216350878274220095930173343091320700769837530765939708156581373938840466440902494392336633755063771164032637209248507346072976747261115207007267192699723841759351853056690194460079466791163651803067374624734525406332104965352043617330265882450056444774638933452460213453653840004779335334566680036289430773710167428453295617439477776236004734267533259077871021405543082126238264416867000792098836747554885210667472496618512754784941589304630775347524025125092973602825030609732915286184027250957775598432383285993277294516323660895124964126325459849610684895208320604181782436362124536535787918442899691597990613665357114066072973071288476515151514955077238866474028975394177559411780359930166711160534637342175159002145838649109234542451446920103055839746775098905754674751340258291185041416664691936192540611590309130825517013220937787427164103727495968407598798889705027192672393142958939289335236584732668965205829164936312621145558791401098317844827643015773492718482747201966942190383590122078830739812168579669865229935359011865094693053473582555535620191761317839495766445922091817322084070364792713436955359187867197875536457028561247302242123151233022984821188900360267450045354370926981763756121810700442350904237099698268358282082619594322195371404761044598444076269899051957826706390578133819358255355578459641901687253229753509560220817727710161699139071640753326719323776785712409049045918980952480240056273763004708921164917756874922102519846771873157855704770910927620747656787889304545368704836931054124759324618037202892203050714882832299228746048558104250943051000134536165517001154161328499294783954493345066170324161131752732973517094244109413820336861826172155355294489377197713689559537111717158005985913596034426200624579603908768160776099230676988528072380122743336942021548765079437364346361440570747256956710821225000565888034322346253239837768031610289453460215334320470240028224908203511615942007336761999622079468305890235331606824579438194305376551000123950516069949543543576445416799014228379461039349701389251032529176024189701083322577804226147340821673417073453100832804069956471290282217520319717196838907408189302051377511878488952256434742135049532031778992903415478809933841843663053944308388939480815792018155631300272881996811044043146753220165210232413200670543062596837309341439975863513404106082263037849740208380430104062299212590938369439903000719534343448905719775615178689406007393840858917897906863587309400543615127212067070173026070321602814920622451130218018493030697422512567218574680593125973212463635304154432770647851248940942345586451299757581108519124145237253215379603830102360271395984461430979378003569251614593293086987624010573471209831429470157176275886163515782333432429901193418440477820798423617217782581213348844538277860112665684626316084652902567823284377726714671463861544933811603395221772131690600937683625611733643242334857211201138976344291310072901991523752625855102011702688197440339260293910859315354863813581760930628053024140240475085166346503227818332335860773749928028075797927457038046344045882574263866403630405932299089057489434926638432286079802678567141125455716790811353107698278382597509463153036731838830261816252892063183342524120723634726576636528155760399404622944483622588087340311120551373389699869306300124410925767757520129259621244800303939887746891867685002334184879866312889513194601041220321149738894995329568460859409620643940866058837448794934691465620149783944589014442773185358998456645263207593433774558514408526893410785297042224308682090851997597678500030322870758428794618710847930913408917587186821790937098718525079351663104709294695809402326083704042615894524338472045492114614965559181941332185729015791540755011501476220875909844698771166080835751297926923443627077111141586377164975096534442024726233804847524649868364523807178143887432237670650019395547000154751602110195371900623294812763985885873729939537742600837695435538967857848571607776110737468755706340059719553436906665238853468399428150474355897444760362730103370702979817411298752331873431793205880536275413009993215000039419602661024985830806915113806709303340812676215047972095554985003585202409861240489243032702047782270374250233923990802501903412416734766914409869600462531303365035811913323880993232835406311937901986714638358602106317288447264908908374782517634288112248930011676347773067765141520825929807670145801178271640711013174083587918781196535829875027182060523095894131873830581958597830403048167671549468188959677629373859195180713247577501782471462676334463986156731449996415885952631080732527541575000874862638147514557945937694676372769210969368731651860410677477571321747400075262819539635202301399497224353458591906007831881987588321133347542180044318819123602015924656756391698798727628356574333456306140191065959381448936748600219452544820739757873041672238876457128093269654468861154828262192812497173005462549621230397247611216042614440153374980136391559699557014101900597186381198556561180648679374771049003198909094064909902224928488572797916786322675992641746255643547750292924060438178891760612353393441120522960608464180903140447072912237773205693014913056593244219562223583753418143135949085189836431490420773879480175178143029571682135805845487653346051223946349144396193194913162248146096574177353185495835870932258041396778954848243300895677427873199128848359720503960074644228858807577271322158633544899510764847349641270441176692698526421035723761259479435691619601468286963557051428288036883188470788649693059588336629656934398154239375360735221161725062363750102537069786450596178386869418561767645346768373179871459459924471956588887409558465128923337599092232641029133008624508375103788598317991241824123646664111087382120369262029536396342478373575411357519007761759133304884438441091372770559464752861078091825732610856888977520079395637813283737378470293040337811676540333470340925325016372860492992514867465878311128896819333195005602152335639128156341354786828361826179037905080893779270930912436167895497240802040597096873433906676009643957659022888541174332871904331277088624896046216090395410646601458520393179155211964239441442635698948437585000555320206340112071987691425309959297177308158382078849112676638616145566896655606322589969756908933950245162338125758547566954801814851286900163325329700795119006709067299208738428804746486748991724170486648767595244872474117733596596695016475679566069247185092076616206001929876470956255764609455612260441596943172041680294762716689933118076898787234000523220487858493531195664668860432122793896826176030579427682312703310854937377196562568780189295633652081187870421921246410846601087920600846019483550530200620254939924108635282261807150717518593222842268535045189862317243130771589593714612901380468756764503456572202197496965392286823159045140816103063156492120334892158486007404048698775732551493681860606354571712613376233824901473362090676561994163209843783070484198587636827140226924950543271541341202027043452399520195552532373009481948145909028595123702949806481443777108831138807267228217576945941565279832084381654847725953552340496340798305090126113543811989506484499838960875233189706755425264927570457531767434440082147116269780341803864866697881462797308095075942902623475030968874686524413053681782746590120901142771818039238739252668059299722439825689412780293425690641327823906632699669064503141438936563710164023950425664112883935724090266439907954502656628280835876544577665468666971493059012760760452579072346054127861081723926981747890420908403357070859160595576679388696204612908190523378314582240446486556841750314293840149513363948076590272073674216098971751576550786369360217130783104679073305960630014356697397908844981099513242757331347396829759108199618463996695927200622703422247675734384489396334111468550568810927638662033551644519117251052991201333441503335379071896463817813958310032861609114384794638745942602146199145941819537867831979094433696938715762613095643861560305111229289720190835916462476642054818017027522752919286967806116864475014983590681628447442153147787450238877004060926967125481108073205121185858632844122321934396308045423894004735406366565147255628600656980144077489755513445557951386104436244816986353774993909124508079550484761236340264810278066198505758093534255231730338882620357692298752029430310045080433666500370560708335472040592840199791506066390811489950375192206018439020517851903866496014099308943968721575626085311731677332298566239916083676136870969387162872649087989531869502514504600813186312333374860546318011421394072639285882141061239315367660087990908333948665807908227034079433054319761821856385547423646143285900593150216497701466664150190938751757593409783308210836820118495772983650199036014103506002360295375606753876178809152337856972068746330983732281855641804725990705883349521056331075286411725538904581850462217113064981740501312596543843635812555614800722750493253108295837644629575276557711065222957416999420868885474514597612226879016626153093010007382895198763015725100267239322832411718739710277506108790562088584549155866832673280856327153726243493194788339859874445819861897581077623740067309332292336555461255981215524986615675013646906809529815495288478555606429692829496731671379781911794037283370428029182614299012326219277429574947953539606056381240665560060893950796509213400756986417248926817310261494045047416380032900760043545102583730808722827904204935183772598906248415561370962277512410142469073005091363349184553062659864131384859142060534022088812435280841892648504424346218843992358762580633772689786375283017772364475634820939393550935055190028314826565596629295590021337195679846924409784954360855060931791598433361121519954935880563768786226267839980167766443762083355702212796198055752189654305319662176544505563873804117723239081753342874752829492545363755959293465875076072080593529486515409715383747712019015770208182534930155178255148514663499361506496786114780460904409585467366284285428798593816456035282034894157817901810973951365329661715585014313663298298904223520183517394921116727030298108745824797611266243711561033477262723753379119404377237423881266544132091700318620131474689814863579986032154988903374022934637902075476518069532560855826344679542753864281166089841787070551291758415229872848350431003645278044290419912771391504359214376529036780832050000560869096657678320923409104727384724867026761861775165797875041167447648426287115580636763953740316444705026484112973404538535517815516428260501481557608334320428068006068143680094784734507730790155389192878609161348027483168117057590361630979360892199795807607431015379835375940073403295345835920969461626345337119858678576540056969806500013205646424888694011426586357068947092483452717220304279516214329809752825310180077598371927865329122614568774003521786082340067440684962028816169361179254825797779589564662348854923225822684197335129631799282787814734764923682193967232044726341635465459358112355978339906886496868443373304825478714556560712732246157144677375013882426680972086923330025852438482133008729963984073354536615886118648460847215657927255100944646636966395367047798771820635646552733792952339568460270668454824844001709932974519397789589843018022437492724694479406955354367182240435801889905186384053650591887883790215750951570385800333161221100517888866118437760737134364903977018520396870693770922621155331452897451169518580717325171456178297560573141705990491426185711853393670125728104178387664020145224804877376441114225929665738520331482061991457866088275211555918043042164342689854180977300749196846075366719223896189212825377992394973380361749160497587826546478814405643468798179741948453917449708632144133028853141581409301862465873624599290859829098133817510463911277437221384464954927254655120282815716256571646430119744281848133800450955098932460923784904198694084626604615822305276872856092932642779060618467152317139870449663776645191815307784458282531459982493709291543055602119705068971253457222084820724271645044211721620782356229832375298788808998155521485330187239695433792525278821734007375874808038606663584912750474256792104671385288737643361120177340188291318630781428414885983742194936413602724430317683687097167718587491125360356626977184889839345188332616008149377718007917560680522332473653156909327926045977948379023741080257511196570985932952299296116176646949454300587730889805719590735623241077340751191462129976833468987928354727226031749287230392811008126794458625496692243918269286567477496926356360303971529774732288863889736938111119902258287305691715215863619779680570493016985318320193357823493770204138836608537222721334241025923387085373835018259480057969052876803558099584921045116393720902658461186635721970386714197435488666231304148300335158600403433220733796464413630051606263059869537857591154976564637614063980594702775888485857997810506642292071799087588614593087578880999139698762508360671064135309464005587284949128854223508121829973825731107696386348414294421701613345816962588677572507117768525694564261990740416351987266989670285162055202225030302167357726656059753727985349041775265188244727759800428206614465332115184189016542432295062120930524569647584626280214631248095657307455919331353448131676199134589846777612081959591226023244671750289045566224669199959920555080533497287533291333669194839699420857726185746343741127620312685718695531953316659676925300082481056365507579991473100226825915805292335931017996756841373971882813846954219095935420613377783678111136824200388331942808515080682352722367428471517129482775136822258288283215904012829897895921160485653778312334051454853616312779977713059321982724539403228388894732155625686231938866776924925621756937468012561956690476236420479092540817807817472697446527566783363677071918939626335078752999981935469885937397027505547849265068523009305713959653328527549955705122169337560153704604582426107857638479218262060009253805785302699353699306076732654148369614086645297660104357725567370402381784693713057935834040818439845265224178987691450896415531319571478808796226228149929476726964101168633236904413751587971910253141316497584506995258021619457115909803591879645163065059062473521967447341479504714460232992177052312292229138961524744021328776170755185196303717985287024097223745051909657954497818792454045536238162318648818782411906046192068436775320072607590017352070669976286639826404961712725375398370207458711647336624542899901973773515221845061152792963857461515892964433953695011507842061469065861986318068802843834111427921964892669704344381264249627358386029301739241577681166926408343889058991052654661569586366882998920648419688079815323909347222572540075980440830841407504962701170823968712513832050713156693983834042206898035638124063663073257465195674099908165286345884429758459935361884160181530995134786056966060858232417173327602000220876209301605223096619479550278126465497239200792690763881752047716604646286767269124264832823891003368567107265885534183146103497323240503337448069211681923310254551618751608349658471610669288499477757251260982970734276359671602097549877033847438513169261388419423345206104463683955661578057605862966202236632592349052821134023050163743608950727887413509755309969486488172054847010141978681776352638256795703510501637733765432630795298250309259221662976224933443790707744753205271908677160028790484766216772382193433492226440004209670978899387263051024261841016917990505445824365513794884104293613310224936936844227790456855535427318953773755814269564096501666164006477612283213353124385065522383342974231300434294345158184760377284898439016750854592851646034115733158550242527475228864871268998593012059684357631215198687321773389266395762512831094683041944080656683683637920291456100048373323603193772125378860073523522364860604940577977467319193154811875425880046100446156846850189137205131889240393384368328375178438396300164722513385090538753513749158870628198776147867757219259834186371092114634334513018595766812814705270916480468073324048778898519441695006292102447611211618579128620920127994876593028720064157600197349651739114114539981224175581658285653731972614453396428583131479725915994677764782092803504027941591882937184949497459333517132752049736229336479997928900858073063601515791664907026231394889515278030177073623122442349227034127061157754730024204971906927196794329594207697338321708299682353232085398443498757567576233451379250162855609957830405277474623446053835837042741638565020725420561510872064955247212692657429525142177467631621131551281815339284390794014943491378801792741445966196543792832064440581461290307133791107952042304332472097666133018944806688091091769136377807708443284506198730213369667437804631551870987564725112321952182762845600340324149466514922178870759888517858655237750247532508273232351438925782789578455046695789937973475549415333142343925115870337445572043052132830846044525375922629638367700511380532760585258717127031530829769239712143527594407611431889313273427777330739893935525972796597916303125018737905572434863152415013942396930899787931110207199182455544180986166834217914113657034800934763354821504287081710018596278414237348234549405913424369847902776711219213226718353869396295747584344910785354102572128911872510216450552275433443650239916050828688089550462505629090279673952985826395781230744377976775703472844593416933827536808987023966546813085500255414293328420449071665831714641173647615663480953955812827092486118973355957838673030436577977598298141053900804221257652080943982464081083788198631309084757389242600708650654813489177920538995589658914632098110272115963849699337629442240436880521695057175704938668541786636734914307085382351413437794739747650809701009670595652034408237743451516107315281895827903487820640517142968348740873187363512118910343685156755859790831012097639545768419417778417909727320503545960309341730975335705114805851388267815033302633671617743606877491848762522870730538860128039079860617440804109923402219395587454437124811981993928233542757597929152360862646284892744521325138948611620328052856824841911714796751076406925519918230558685055672480640026368759144179725567002242493596043627555405882183166109418136349251202745312070436890947670031954451654821696922746428860810412156102580821572417932538049580608675077819154277303660394082260112406103247755182147851921811622347604124709099418764647053916174035498227739560499701816568455219009892900761775240804725583512424601341194143393119492754979531850683767371963904280335853803888230131331246403030045480279984277148656161261469782056920488328161952854058726130720264227622487163149055205862991769120082473962717690707366514108114144990750696255512998607046375530059800529263293896497536859915932912298781988859821656028379758997234145129051353643075375473135850681500997299866242412060485562286940804187992547229433273124074858283486325711389214914590031033335642110860417702051633864624409548228692347791051109552595245736486786999798807396889556106555283145232080848621001166492685635579641039218442224232762079708119927885210156917121773560256595524284694756229276339674360794454838667065151024800070580172453195221828131663665976045213332779701947254826657745306735933696808268850125523312078589922806057686556946782055332711490369413515617289634521899009604756381799030199428025554525092471889863604838591196906741790081520747109885313661925232818065467135643248725355219936875554093521316194097311262219361779508939424175222332991408130209421413915226313755106710703214325737263044125778635222163760969062949437703954197639196872815188065285334451492053303626898415955233730197946465728424773951106874788491306217481641049906825731823522279320988795837679361301589499224779591325254453245705281118102442575829509830538186904120756730708413039454756443583977912862588306482130037992262484983908269526198004610400659329236039402193847904894857109791926791194130278990236424971819225981305504256253919507287388962966844914336336978164489898649204837181171509322271824578075170119885609049198761203697602578368655197385752847244010379883202639293466075646108485640949412527158531339475690047146416636333204295169217630143078655705861695718379636961928136562809387554901516573465698949649252029143414750094496804433432569806445518505547320772773709136384145373880965722347650028295718692808030071930056332585520518479717502367400197425824960518057878018488408190170845437045373305375295416201151959611266591343794343222136417474273333226784297479380267085705883294691763205321652920112283947086374017762660144540299411593567470776051951285610667025878612474655174639015912817466706476110301451698618558837268449980786449951580168914376731737543013304447055521231904469811339486063059903653065565656828722755540148423217398919472418509641932520892580212786644665095645195621164093841346871369744685529664906961222476959787763572928077714141280447793952976845384772491674975653229487478442114543455668820529804566196778066976750280143049484020129390831085812475910012547525595675879359939753638126517329531050240114444572078233242081926757315428520217285532173118655726362728714792953338245657976862568790290868352225135981497062348085433462771596710091910178671342527453446927129615353059290754737816239668662886641423121957074299270662070995719220833558699907341235443244090172885943327567253551092618053094502579218180163809784968596454925040259806295435678137404696442130423109500314541005092441028810113823774777031941391146629116486093237794467796266964586590416860437299277427962300993600595931151003639422353726670586162829244573069644486509569048410152117612179938246467464352929864655073684781199830693234498233832976218630609975860148757007562422197384841670022622460824130081891658918503944884283414017550205278617819098201760127485880442693091418472496652552414017514363992632976776786395379563395659561169417991492122610526198385596223601497404439226853846967863423876239063859693031615221944821898568438795978052206165706200103861766328404373928540373503640280344634360943405973460048990829973593203241771622048638245333350844804011777830478537631962674345044724264167172422299471443686979223662307017442122822318070390468154282242899209086214168842959505245934275723490428829516401612171805804667531627381788028370561302697045679116047684437533141808294999146006878801009552468963423760426069396262705179493047693672307483861165134781429634563409630890194634313305142545334546799393059654439962507983916134583763968133119308254306220286610847514328203352120171933606021387990430355264542383316153180050108232090432065198453844472574539154489797969225643863449678092399319362175390300702012016713190042525072352033654192931202829372942243432191068333789087687325121488032512334342938430093705453146535686471132980171094444007143030755452182190169428362212529285237872772035578604285283493005786190709529410385179013767659863055753982008865671988109532861942956521132267642718236654702624943496712064799390437456540505399845063563557027638451801868640245443602726752532898281087636958263532303593051421892576558531116397456278671372583632308917287843995642082171362658791741288002162374933009638734068975642947115990731491659414000172899685869628722865583455470196172529451439702127147608966488964629040699483261562661470103971144104068393751206758518230485642051483557582290589864340215180631346418035273313813542087957048113815836936615786105933355785055024979500966584450392396905070681910593821533419106881707010485308162842561107383859251577582569232479733093500617866552001077503057515852997766031608531384287689373188946172915723749357351096569045184907620926938250166342664841227809183387900011404191256430400119276375277876317869599301562033000568636586288333032482407996863135171754670669160086594808681384937089439223965726622560625576104086084948558897991614133380678034031764951309831189851968733996534495016499629838581630539058495101630028112890926601163713972579900590083055977239334296645507540021350861065037123315045218483525811628489305464902164089620638921695678251192065698635741351713042186743563888205629859580216039549337732394449582548638241126024960566748628017523068106845650374562247030015809303241002006175903893074343684098983601344207828963794401244140110839437891389645019610266897412890451740075847545412389959992207284206116466059029212389364216600622084586587857766026483873057073031965587449647486188727834941095013693871025159566924818997179614557371359104528338446022508613671620392628093185141346351142985891813599673700311684396671388647370086865241833459181691212019846499796373025187007843077603157339454075890982163105307242475982608934379990328162839406808384543039066213826427353629640196711183150732956398184097602891790613633333294342907449911016944500357145543100583545546897348726089147922062561577410653582502523697366832138680571756742424647209559387465137832407728309838425588918529374481456228948720155396713044538218000514917859310831511717383558898147300680319172387701419928246678039155587691381539386314547519822243841846153130898976410107033016941587008974785177383596403655651213008291819500041873352095608699812123612170222818607686797016080627974315192044251944207156761768570938087633656016229115736052501004490979679159197177885690339510339847303546334464372148627806974904312096134909591402394999385216927846680394642609477348349393497337295647119965063109146837485961663925512627449135472585618324278523757983865580441760999902894148695792602785221446064696112334305186942113523236195325014646941066795963806005624506677076554402754653376122916752434369110442736132498801394103989406234719768054002546770621687180321454932268718914384627336863044669018228674848908456107008235994593533382301704762013749109580415579029331251883822164178721837567353119278567429016746379524854469688285626359065016644749483899101138071054517213283937538032818136141967202772771282232876386155459918168333294569140991193300010455865853504882146960700171709594538920831440127594088956385125024435153584364073391620535021685593533194639281954323435993644553219628802376417072202555201897734577880948599759644386193680608504635735149992856303524647340180016240479376363517161546418948389903990731189884338492976586500242220314561222972732720332883120678397768972398027951882714855619168611084355297971565554155079034155236043470540945630505368151502466886416241084794845395099005069797271115123413499120904091537739704845593207699964995231807806390289838780611084833428890089989016838555873331144532129291750292333086007087336286899590047793299253398645973140981335558156287489397206283647919172303888525940895326827696472432122701753057078656165602674219959693372217904546978663107835712305051387117774027754448010306307454137983959851736526799248305640305290860965802479329065917779433540483275758066493529366922322417106048287418066226465186069628196644793528515555728842155304720233880015902511204681682227782303832179623112083408290702277934150370545282722169204466069548476712624782984356741749731141075404002847194887928813047833357971405625725854183712272280654324238408263816319486281507796207572327584534727692278049633548356385093169785030571829545358700061854628593554812044391973994765908875594032009267791343940581620462361889054816176842322550266146035023363709414715482739898068530707577484995050835209460082170442697974907933449741474457052350783073206439327403647554280518517719353385268086383576262540865382205415742656699277825400674543457572488085532746643071290430279777101091198881722472183166938516311593048930099024100690777484609624604951647904532768382583602025249697162434786549498531416883340357994425289424684628179480758407098295132107304328155477120707254403642552943442498020805103815132528771321888718183337358905609243758278237162302799981693489226881051884625759091456421362172812766246072322789024607652725639088698676823078156488590561587708344384865046672607378729870579094324658187430733006692963193076340785758031137355169597322849467247141216943743956379139327903944937519577242221184047035405298708025867081937959622743173401089862934085420660078782374556100909606031576450388213249871849032890841658877296198648155443283658753216776158579102337899631745400115087667687097118956269193221863959224633039946860518225190232432685521707971108234611895582295061690324745924554667683631613763609660658966889687314729425822665073013505520436554492888721225091131651463542066648325221383643864012599702559792302952297582020063248404542662142396737096574432261836780836233353392457088626355409497053242998478064476753649299242769280141891970962273094476815056760952940961929235935203186993584220211622516454930008391169035103068309674706216412834705522638480585201635096752917780774481564728185210965739538627519336501505079586693226115239919955263782916466363645482362685128030630094732782233380544444119530671927676964828176012746353132808739098029686958014886194341486394002211609977782104054745835083489691621097425027687389013763271967938787301164395847599539177414224877773834089083445399212009999205544997851191721505723085732585077984275163146664018007443832096150681364668962529403923283200391416206188708459388360051821669206386091316585613025502239800273209231779364957462930240616139658529693544319771321498297951617651432476897507427408131274314042523268547624295726508143690734799858150556762456642326230746717474290921177280042357238016977819401222835055130395648793574073449289639828286713290213699709100392543483239549758536414176260063668392335016671054684038587834501590973302453307401032554679989652510313540291051883705034515712189161887414937021172230786405159524091945983394007662967864512220088460847240254879229895956427165144583558116369984302910424400608770676803198180623452531107749008489906981617327984546902129043667507567054438968678767875346639211724661786881594061556705109951472832765646884639223891957842021611838065872205092715210023362766452328714238202766833375199344288127825398974416200551239618844578752177067760110097247348360863704811620786069675208219505880765732250107529371876820518097990568782910404938810552185519678605385448299996520407504517986634873794126584672282466872440059514296956802442842508454854958276226836657917058038887079257518052861939042517478653595145413540971748313474963550649174100978289417966917210606689802464178604739726198717711863460184684351582085825825825887699013769372921326255466030012531517271222480135113552292837974524386943114714606462306472128835213821453267151529430605128339300062958693782993618842937277198068905963070733617079582476966580017736408895320750049946089358941906127457996416726289699611589200851149782062826452814062357160440636319272506364902372649573827162864156072169343950818061562909840010151683810579068182406913038736651533140056271561259929105300267083463993478278042399184513069731036335078548954685857208781154769870116833608305876583946634091354374813400449760114007756704987046316397646035320940510718753349819953120455347547220824536936789367228187150839374355181336425142631815806535894957550190183021720359155998059793436457738674142393232535185490378893122365024971928381616315189589742721938692441363459460146443753026294053056848488710983416976980506174143496696406306465214787483071223515059354935850211876757866347203112433908103010932806049385963284787343668591981115551649772027906690786885111334657626060976877500793679386573660574372862974160905942632565156015213103817169543485821463691597332871954576977989280054399097175559571033987770959804192715099804685885217219458896818613087131974536538541080617231533566798690150573746554921593255032753251289532690549713717150617527423238977907642954130509331488212885674858552371087398451639478080980185688688746829795160567336354754335306821626034363189631994332291089840150736537950795400508215611374792142139952834191306265795346419967478609965595279479616825564194595128465915264921454220916079855977305506284534047540278744596661821146305532073847877938577891678421932110633951667208853516240111824372754734764839410801640759856432804433643741659600968530126473591126440571462363288730470071225217169061912171111593379468110012553560432448867591849430919621166263081852215975585832457794890267689707576304529165947624904470130371555427683871930520612822994317717194568877308705825150174897252099190831774872851838380627176656554616351665208039235995988376588044250992577378767329812428583630025306536782478877620239013135159418833186845690924955752908700080183692706413114380739726689411814897263005960770734881373098346072605765500094246991758875503366256680998944181334041175036938385370214506575448130507449892985289943846903491329242220505135076700807767067261222817511627642013880124559221944873144736278361519354294135928836883460379782576155413094033178732019786667581844249537660364730689893576375543001440655946086850907742982553546412495230204830816080919880610364720652156863564396025363645611338912128951815102523375178437196362960252738930723319595351645264586164147681971410201617778097119338934417451599273746694655790068420163014071693947850923327995430179484936626020130490016635686781790400231531690279063342467681016481163354231549698234120067776744950122084071260721829576704667537870333650894872506083823079193209240876660012022420699419350366164551981529894195868831118321637532648887281719300899326130543975621973745184999654823475202446332564196042977261301624525519445434879628928402481519426663436289055885228087851674679518740934307088517794906854811424016129343455192657632334984125701293269789340090397839486244021275246268784409670189258550761790294558944388306236481063297841177333620730964241400813728807028683228122671614276719530380214191008981384828013404626640164929664381260631105231593957900891306877111305358010174779653314578389629324703566650853206471664857280726597587477389930114135767216945163710916382408317040469120109390335171295741198313508558597775656515807232273311475697106857526744939873484749934264350662489914129383864978885236989378170337005486789514227415512705714377844502983510821323176753116478952676119553440414146903872983755392318848320186922412659712505171840419052073031416265471676574651559542298880299001271055273577758043982830577924823133100775559034526705199550952936487271864200774477877129074539564922359330994461625809745728192904896075174226555983844319062422898404918593243156603857849653133431559908339770804894965637283023045090630610882461604234642162099451365681506287364742100501678558036301095663369681745047856977011727341960972809725827850839306520688115983878552269056342944575166417729095852832337813916061451514663642497124125792319811296990180951147117182116832091718025206322707532553537629361756628922367063712735015818537465872487513110377667375830416707908992746508243140990416872356782676624708961419039944297967527616629003015622658431987241632052010848488492383618451288650872815425026899441750830590308071434625656271431643263798652472136298383108952408687032275737388285202993118182640082754713944349276289526842269497783423219286174179397396082002953359051374441270553359777387391481581378660946495975306066474470245853466640032519064434453104862880592316454508410488111281325778260988694492455974890202135054356501225803539533035183110978484813566299482038849945523891560033810740618446039864883110131019015890596787112407970789436488515099409354660295707311809086437374476152112843883740537459171460854256509144360240323094871269004424539756662236268544660260420460463449559697674550153717311951115456606148949081804994160137302052542411040310378359930173181971715885512273820073284565663839113414164520437912755940441134542923037643734166229113235832267856941234222968419826281098541470680367230931020624477408612898895408975108270090668248582892651291349762063314838830815787768918245977697956690301944348176946269521314446145565863518285890778657377982428534988511382424882340061106234568292076801552443349003397128914512540106943727512694886498030821952137649753947988387621561846374190289022263489454322267970915906048570619095939678479618178020465282649339074194604598559492980900097186936085196138613011241822461157472041866602691324573571589352538142075938419680659573493922052966869470054784904206331302968641883283610780061384736371191601692468587268500216083947808491824653919890026474730500796112569957669777064488907489294927460427537263882014406013034617661273463101025578383831909549243852377605226518415797652043204989731754277527274423067999738251520888435936871145212227070840660547467039455274784304286740274388705774441684515336268447236135171505078114449432543528758989303728996956927660005346460476180326429540182094243874411082319934042907565096869301274807616820297845979286755911156833673084849576523489879811260668291802347179183375134322711747422221134466391315152437936611606180560980323502263784005580906415378452606982507333169398371624849215707388714182044388868179313958061380851034379460094700430630670656589840907609926456635751551768122073309969413380906838786971151799891113006489316004810794213204715153535066101237688777297359064666882616417914894118903316486872658796618485000546596219992056979334456191567690537175167189175626484008737594812913655192029860393144228780660279827800562268123483872192385576593191249837529341941576231280883215100901999003417500228188371253509384610468262128426546494873006852433519845521575012591619528418767074382278087564014558634397473927799254394967105142122771693667704076011171378541536717579643635189834260222222153854807235714892416717441199546862411396173729712883160356247651733579602041612141991584104196259486314723629373840963090853133646367243455272883026074960605274468839581617922808099190433285668816031122251571639930580376657099752693664796835981842604910164699612283251281577811967396419980676535849188147933250228199857014740482873715171407487774259447288557079782767152088911369015074799623857680604592386190353027985423744796277961289758265532868246173145711130939993165060706353670748228388086983690161126402814023836846053338596291864752106455324617049705164474864940255369997440777579368183115967355476885439987326888070066088897331876252857390595824698173809324088680723418612801151695798883253942742892148905562390879505298354629545229872620142283963109420689059459376566324280606519794893302549121507221682897690729725231652563453410052003185934481421201955848591120184970086010725775803779746704096609324707682591995186883889396229063752199154962740358259494537694760089005686357735231264305402223460955455052531844119503267639914461483294711054410659151826302870552050249449898673197005799470688152387624605195742995843982592028516404563619563367867344234851187870862779378513276721294083863497982551339106490302298170362161213277718360593811946018854119908064993823036832563770178192715099636214413046268984940986962488251557988046771167770473218150370344768849778915694671362334188376106865267535716942433763769311670529076922080573213307930006767307284994873348853830304091613791445783488750416018200882547378872778628294822925427499886586742099488812933074700049904475084367286107653779072524355843497642897567889935307923284506006592377449134274013258877894270181111790432785235083671275795931435868254516864350940698037497015151556934196565413250068352196536899268915274235619624734463483062688404451197179041288802881897326797129053496963132284720250243923572142350199426129771633112068208849507799628512220355613828154368883774690791466167037377917995649653020062656931916427190463598187971270831614035210782930211107133871568211467723848329466020288927722108766953527290639593306936829825582195065570559145415548870283394723645015966734555095744797826750561651139790515453209772901369125698371091891140408747389996277604580332171168979891692453725373823707112792162363454341984838614241769238482486384095857194529486101271322339515989383925715831050517948138269619310606824105863040046626063727166261274089630070034385181708099018851021744276805016981023103982829773392177076538907913125907308631403103939239531609633938096279367119213430967144486364589006288490381720786921190247868992158787586073988659561286228497595038533358884296865884729713144153990437983764428407889425801784697899223762794597156388179626823508951020339766509924213240957798064888456657909796927719653628712484718589124928040027849965669987696752511116703793776405022979498539263691124460365881739509822959125884223480696653402411729971783801534671244273994992005432791677798487406370548562478358222018635477642938454182513806623397837308102055358053228233028974570216237198934500614480794057417109201533551532051506791937566846986106549975438193570734744085200585086452745763652658302585020518421516345308033744286066594459164815004818857891549980557575026746129228491244306339186804677915481093150246897746482665125292803096250932518859346971725690949325357751240408325583040974182666388525427405460044936716411925390489528032241504324997770362871260647989088049540621354504180443180717446928515718483298718311813399744506310714930825128299894483672357638498873101502744052109615250029679527545702199206901156795509204130954144512692805277209620769386371175425010024242901995593381303016282217674146090655025866620884920231519309426961933968152487123909663347465666766248482255864470583435819428112643209463180398440132444219822065458840101478461652681205865636535674851163598852180951133412393714524481241140595080845028061632776148571409982625676166830463052950305789884112120508641769204513528201021760059987094626362799562381019172694948204661601948220116962256823774780543571332826456132738316946160626568150378309200441683394994210217773252172345727070698160108413834895171271464344563071313679498213954904829839385582830981295584145547554889151589973803202496008580219942332397077883960686107850790006727145887729932928771005156917394187933580749430629807353984355247791157714575603755655851126100695149124778804189290714006780169999433556488564863846553130928596907275176707240451121093380179464267866244316661252596727127021967272000344916932235655608616498230780194138584248038057169899500169962331396193307700076144121401424716264196696323750236871919852503826257348478762180697286304536243577601527289167158088078946273268324585929929503367885617563957842759080927484188280346400897260289399052989779859957905048272602241341284348459925061819420287882696914431512427298274582824169504914290449127723722445670416631887894407018070020981990353180302316444968889317691653902146938530899948559650254751918434358780320911096689666243816161476489633332532419298868625228770169376443189438496074618428372770440028428598745795813997051449234142480329953807559174392103820163245336423172670227098262581591691720316180039088136829489329109485439926125578000984526311129948779049979452160816603213934058299645396568208951118715955977319674160440307053783921350302980746969039633074965155081832049152875171448219398129359536507647843608182906607736195457280133847772809615773834905835647049127058771355874899986960067262755811282891697187761556803544523988460042471597508231276970647986548745439616242806451304932194574031590903757817274166329931126144897933466578345633377058028251637408472525533734006244549002403922786009300104440993381258530357354140416836599702326049966189369130683286486055288287963317577132968579928135540891657137302612156184660527803088317838104590031856260193018129361099682496102033711044922182690165140130574137714516356815740055250191260552317108356228598912186019768965088942666272334148799707064291029506402469802026270037785173856635786942341354747428134617643783863724002901069418169357160750001349613671768856237228642163806090624144328917868850368669403376681237906966650897201139184597657149738645436552189770011904340018670590626527629725200001985506207023101989814097164148899227423841749688131916640138262707923775820809831717123230013499871692457415211538604064379656815677863840987153504491373561105426138629503540742951380792615860776155301270445233535447435518170342527497643318442793789715495433716523240337057132556309099049755944875564667314945777616283319341702992958909716487610868307022417741510233088974856317975245552586341623339851238227240319100577932004219505755242290258037442837424287850006036200454776673815777324441151061765897128406019765919717988214712591591702766922759785074359031645295390647402110539527342872990835898061408654893073465522996231591273733683310045430616910052999912492006722423640798447383550204141566828409726378707445162610812765278885955647554000086010575576082481943563279700186872157461602989169139180708530751626353103156809013083247001643985769699272794741522261283993286225841656905732767578459163047477641478699892543109866221995567033691080896685601048770027836674833887944944659469872434370718991293940654225126380157883239518383561666317664390083349739039124215674091000219077749486946541518275076944992941589697998058690540813060400431397033593194334162042119452034732406066098279686628686090279646702414368821261924582954621682822161805393929942934918331608589839777204178290908864786601081006162003353059878526020039120342949516262963205887739364863404451630232760794017313710349982720556040363980902186521001919516895215985539772057129629532777071729705973050639923435838270386391008868141981260928190658926560251756249784111862403373255591097229879735128485512565534376040138963988370442586653200636838314071740636190967820539979746712232723391095071816424719115266639944853172005079949590872856252100995927884212392752426902423880480202600840408032173394995459215404967449580568986779260152362323942376783709677388110069161007007586514460516762315586733107710359849238986929375334500632428523508740159633891355778312955760937577447695047658684249112770451951258509323491747431663808613055450412287355668228438410917091943643106211530294031405896020652190830895347331442274459036142063612592401037651025766234690911030336092029325852398979375845767865008012346953142819759393767304875641152661864466900589419175469642826358749448271506032287487073888801379475204472126952720309400006964726750801189314848650219573271357907243945210196623465457500025818795509250470081243392565204522012714201625062601735712459991220784601748567672799970239167864732393218978903316437020232446212816061476703414061739333697655469226038832318747790566261120484813650714660064901670372758337315524090950922218759429585365716883515706508656747183152996456065728261776820317494568927980794273644060314206653864715448721736097445739830806051113184763871640131179220762148156763595864205012185365347841613427325511376167434421757957992974402468240914516680312472037865529591623723132327937713434635908593130205375994037515556172468233996075962651523167012566920461119820479493032570533801032584708220842054919865257152468238112345205001822892063351023072516754333461118990657788970812474442547777271845434458620081750538610886986650223155940667334368462116961592526963036880348164146800679795155433655609099558287182109756841774453660503421552514561442570389230168078742282283146623885445335017043508782437057452789211992491882883335149735220490019930208682428128525463788556651593733108428140846008669370913418777212217969890872119906186703204540312687650208078040892670998717900978695320103510007849074109760481464481204031057955966012119040526305665698765780491957808467298065621983223111426234017453477643777739211653760054148346631634405466813817664773301878156463591735302867947300392463277209647607142534041724409713844031061733374542648073266949411487382056047291978287876578657465011344909917645410459637076104664634652642469026424461186370712545621294577120998337398445657788086982485612400446126068824812132965388812855058840476445203562514441886719126716397538567001494014822880901326912795020489414733960036542119783783485837621190109014532304913062384161518544806050913757379005711598454847095271006580455657894577005074367584173821713078009936311902511895886942784767127718496072341103109601663774753904125188718245134343720830094176154033363407567825682553845522693268919976482323496438232599561582850534341901710776668322630061250409354507493500441247756271636902851469350971360865987202059235667368592316198984150163535385685070286087826220219329775486835519317490641940152273217752720325566430515028925763837225461228920690482057699102874842933785782211032530967330372197199193546704909397822079915634623070667848107911814502510890752102545510662454014955497113602924297334026071566935172417355333030047083644767613865935130582157916430479792137602583522468649693054856780726716109006449242377147700159886655212848874992502378156704349866787954302750474669922801186913691260650611393977630549702836549754417968066467160775882259955459666294074107316910095824281151702022313919978997226728301792390563459925525380773833432558490484309456105839426546633887908410024216017684175194516841140716319521411936116067913533875438372176884612251227931515184802503219843104929385766706854971473706719872494792198549442537565770815451288054381230649130752140997227045138872559787227144640715352184318556096987191271955926077349187895366451336436011654219257475573156054980185148181938971942249663225878692556567708189035768645403751314308103239690186446017896220144078825439101768023511909435095578519186708020340722458331845392899084992369320669794275888535910452286165489083525868183585767534074627103768847121803717040010475583332962917159051343104485807257274561783531789563931797157447056132500062039869320188048876890242702560371606210847108081285838087291916502558021369905379328594339074914206892281202748916260086625446847609121893542808885379711790535776173750533770188637395708356342035491672703465426531487334684331525641720534012229784091201679009303553033078367986051653357215216109911919340634593180261235604978770641795651167982090173143885175591660270432326941131568283394440178932007873129490278958538694659108384781248244478786738535646659494916857769185552959826288860995973324510240616300137435056416957829849401753401157011423972851548884284377761859723586205751700333066179728721571873886306831021763886997890324670640109075633580768616712708727958576264241764816850217800652022056284798247833399896499675404504899508330822067367433307156746556187097616020607945886605958467291272079150735505535693003245279359345815540977241427104246821399926779872864919152174790402388308509399592966489345877832012034289346189170043850449686142583753060520269317399496945053230018742301130752454194969411469007234426066258596170418693580076925671583086993226501806856766572231730712864629692372324673752464738620123283711173025907317432739281895176369897351065121650795519675215698663197997128918993775070516431134758774207435478329395025159369403398652525293482712545782223427738140579857353805978565408681460966330536183393178061856178159267319170260214833444345058487725718925786349282910562712553314444606171510872136118081953351095837971669883026890103716842895784273538057508769422475189082041676606626110873394470932934968204005049949556004635653829073939192721442997058945752988744619071456730239289743434937382419006136944814810982621795443621067021933328785579874808585097519484292344894596758961021425328828873159969736162766740540565196891041376277407186778505183184448297287335197443982874782582971653152156795907423534739028501506480075598695796555283266759441136494891561805188737566039309371940524675816030213685547308528547957413841350773055233207216294894735781323216560722287831218974349781583452876632333370662358352009344583580527272618621155126320588405385850293037240209289324881699668941855370259898195973420330836097056300134221194269840001885026773264832228190287199483914034694179087043942299417275446070524592031663618630814515206215732313773392903598091073220433989288337358850806493234218243441288622024728674646208936346050045850963868262145944531215531029440195598534341769301323129980539661897595595362857722580240174234829521885528208332840350429620979094072583277580420372208946544285897510630512174691121521751947436853275676269853455986994503572804600203730892062468838336189553731839295404820133026441440222720336049028739703939626763387780550467965244295097388558047349326008868179141557170432911233892527142578237007825137865307957286834169371031942883178988767924236596078072940867593798152316829366995204704674510383885613753034186060469302676423462569549509299066297164063852986398965213711281253958044657150608727778518475272127831677038958558103336224797518738001827015972235704646114836444179253438701832076746759579538699924737167251915267597488813723717661938605811429428460193932286053209248854985261214045414558234767587180269310657392740623156912110002808190947436439513587269873250509586639615223726737440996328907582173477433938969316233872018804865649555003439250924652060917961091155972780877238177651400429771892751270131116229887744323019395122840193780247966225961972115026567157376195032839331927666503807317687519324516515508779364194737064228217884190621020321229838612007736377041445337382506414901871529050460199865702148901345986614159357024186696448576853186888411242570457812585303784388764194405749687071538407920985662136737351306812927242371154932248016584236070225291861634600571584290123058321352639074547623292279784208329300536214466105704720190560131470398193334138703355051371104238900404830909724448190464240323962428500008964963038729656770477233810242577518818343777496438053931862734886317726487378695627360200692425882875904847187535886165087899659015460763527093046614081750006955443803465637708993629221049193725443636628575875863377702083432300425179969724720974708535638169143392707037720813577578972924540417022720766526998932539581012382993963185534984798248085874615155101587744832539921325749565256505173006753357356931560244296999344836783963881318625798315248496887722484821750005288804860659268526203642244375137688830066086840342129820812023585546228169736348658775837861035640784639524171833800267748129950220665690611102916348198548628298161570216270516608154827794702737589153777344985442391182596777915970198003850437429464289647557372223749533258213234430737340601395179597602006896635223478048378649717499812746647267250748574111939531370192655391736260994679554757226721195130417181311032211266043690743453020825726419682218404935747288300655256002319026106471451908517258550430991149673762154385646194229100345608455172412241257078860268167304774645008844486440585331106458306677841490967504072614978648138803676414883408127237969233317631046258116998922705965414522846609713718885504701674120997161260913336749825491441032993429598908585992388115307384626421705666278075341849234427956906665410993353908241484628154213446589733598230166254085427812632840175536750189177840412975198455116909532475990238878310483997138917954274700104954024372984599877832817471330173610585475238610093434246595610155603088094814452623943138815689014529325420217412333340925637181820158266430122856562695754501281200521269900950989588722388718102614521096857986963249252411097075962577476185116832687093388567903649937466324415054504674777567261245105583427760939674839028449462847588947194588957938371460180042621662885366188805374354351119401314561849453868654630622793128631224337862933697978631135790088941992902100764683491318266986395394396642532916444681371900941676711142824553296341440508372125998332723077810404965494726075204081046904134474190086921067797372541781864885727596056008491806574219039989104338468925143541679851058881420768954870392066766985585375887685080700071927051163399253853006755720401260210149671430557042751267538123157497435166985802535022094680636295903994813561799563949958046622840763959532608612369975163944545244877100207628155788501442041601312008698426542569159003730005421619093564547359844165479193613998231614912061193879051027674399623988290537802434492536959203820153049906464150849775996897444377848159399002359122201686167735826158352026235366615489076080402714220029232630480228077608816223643500983980244559064999352984039709857315558163120933413361326920050129250954522953426309261288342839034959260627039721170773290250615714759612064070616999766483179762572755200233722512736941372047394569254530418830389251965508690729930343981953416582347149221074114161382669493479250862563893755865236241516945380679908220993237550952248582580583450262607583593300089919059471749272612059109328975158118803729275964458796866812877802929309650309834283386835876543295758480753031187980846647952647456838515163160436856085055595007060929744357717100785692872631922525111968821495688783989371663166149831700387033018026441204172529276443347709743000365247553581115135419317524535687647776718836278239360146867923610177248867068655819665165413373347193613988323407918495995357568839895283590113923174704018708442305878373965530149436251377835800702489936848056561135011000115711897630223096060110448452019853673267060040480993644866808209218480162463470011331467347572855152369084519994594131793199355602234668735647664426419489534681752552080860680421443042914666562740673638453658476697329288306401680095086546962310039899724985152655865496030836488740970821937400013841463772332462208578839382543222157422612247963011277021901706693161003385391368229334745215445980113199969346662774751878338475527251907946198091076188788721528353398476140360474795680304701650701806485865139758625084536741733681879544282227773592772227492901417090326919581184512252031044877086460014067470872927640470682210268224556893709146038739537107582931899824354768274514935909180978743705507475982509638663422221188796258907053674912757724707215344915782540316450954702694045159122472021485055155808174927290008742261417975043685147949696628599871395726957958126843070596847497559374727341614932393076364401238968760315463736456102212904659410521023107977104115961409152205178244306489562751628197576942200956108061901865092298705691866355508518754832501842096709321821306664643247824531809195346010814748424203489987730074212401966228895133885105870432074493579597047356126951099999770162244512841441213894600844873573910015101646079790178629710205658359389729532861319855392501480255708367621336290753612486622191756425885467355663439846916026474524361622561142302173254554433822296441982061549507545118953517614825689604628080362988849184803479480645743423878131761343608274359726855074489872934652419382791297357844443691378709465324053617665363209817229647900855186994596108500445781586189981483751963575560042794178209645244456927412231996272352409737805491586545997937376844906634349797149649407985238306654723703683111902499184045328262935417048646574116460471880441982622975253606840121781877674500643966234776919411508203024193133152492719363256812101800568021433199433587093845715315932508443943702002844389881139891280188532072786286428906269780531711231720986641287091919131645681656048676846965787350850651301134778609859664806821270407094258382284534261888164997811973260273324713370054906666178587829986353349741575143536934338818493097853305084880761275444587316410141515664906856737824423787264563962569105759128206567893460813057506314043804851170234151351184174268215333804832159218048440885348126746048928905996037969589515672172445635448544877903907000062649029992053566844949801101651114868840415385632418349632371399624151658776680636053644779194925362327102024187653268345048899906553162386937027687153617894436916144245725723598977384539362268807931454617089467141181628318590249322611101791016089880414279832959069425022834184711919607515677639395677775008029717963214291251878746452434571595515606520344267065095064292622443515973698768321336585287525141234014191106205986019881444091594567110966031189465912692869812595058003916054821007905075565789403183155912257647554941305717287310097645252384216471590826456622250306501526721126278816464104018715193600225595534793585017098644493911108993436972790412274427597475475959657756489655292962679527067007977435911361159542716491313079904691725982920376912352432859380320368885551512163241374269750768355727696852448387486496736223734407808339389936682935247259438410933615963156110512869370127595476420015144436112125644209848723919688176122019114410902615796900735346708056953100589928917205728774358012637205338502203233383174596010316256987086564153353933236563925796756082691811531201754783460218003752677817584199848471830827520396077779213385932721184267585473318249691520151592380843433572635475980174308817071813811209518219409785304374860449998074433277492334561906688311143357775629420403458185175398367728707062081827616951064636779305404252223746299034687079460060050366964282375146118433002495883361755518467421107031293053508762715423514439973889931870085779047172032624898927509130629869873062657320043970759559897970448194298560633595839175547469189905892463611288677638297647500263834984334625332514333434470298702590548855513744005667034973254830346431608654025918703475050835789947012077079425269218287848592055545575460115551632616188121266247749742059762865526484204803444271440658218649846996336502979296587134015603990216136700716500179896643310931129703068438652444585154721398543740501837581010418539874363858821821873150863323331159324272474338227491946083272788683550785794154334302952294331222167789859247270281285872229900433018218996169318655766393900519468311427653760521381381073880004303509243696232900269333083315717876511653022050443525184229783023502661877930547138429054780880951746228665968784351922556483481008244930951657022313081484205062402005208820118242862156534490265167900334663647784717572595517890497970234668521463429532967178457935594444040381726536055882359729858625412434618164181318145089170176786337686292217815212960806548032027069967273766074357930470415694846571850610947681422436597691581214486976769256172296793633178098514641723282372277278607714557675013103943399907523400187971144512999965166216795249630612139356384238882153011451384663737868672565010384559196993364091420431669752459313458174471074230249807263181478862326392317212857787427112429942400502280225596730629462542641111401783451054340886647563920331554687321948268905925446719220288961111037728368102577876409435082720805603300488506376709438710324478677243076991259836480992039552009020483090439914792743429798451530171153007039330849489019258045721837219716455566166427551530113579748313266505725299109044773791527939370546429974029720535365188676776085563081860535545709704529374558013742243532184632236873699861203200598900250162568861734802732880146470824494875367806247061941384263349677086609913222256565467927515490391755659140012403999832380083002333165978585491756203813755264730652580005156601987861719724932930175436224639533807551399657826115678155045888784328774331455966091732594154156670498625843162508435099417987810607965744977837157842219138947705611944038691346525371131394280900140338137925808091558980098963236587932481823587657400876661087717533316976071173156697553376564002306263145426348858756316664882415448389282318999590518381008988874337352611371581514201280469317363839462451659809007000486634233979322762496074474863269314102562305646298533025305948880350064465655893623071831484496165896435004826107900476642642430492105763592787974530052139268791265213282913688423849217406176427565166614060342364505599125417229730940779445715382540785812708896906070644951290319070950099456307626522052120606362938567148433915111636280880676721907650251511915226043080256617976150946109803246028837591246670227498939716378514489071710079128340056466121655798811723246954203090940250083200957895729342412352621735367697692432685256308118084377813164214683831949211747981369741284843451188703066912459815780811049729599125462775261402796118859894777909243761719801682116789100043562034098461459117633168150521348611932373781094414738700927986750333455798040099613561843883215634918076892157975332895260634281018678882921976433624578192243112965317258786388563289859789311474059511630686183319719527032805227623429492582990290220376098587688118368057576201186071647165283347338411880377904514787156371522623865055848784808597187753892416891966336401944915068500638894824258900945222680947704012650427968524768202789719249028955573895326662342762245574586793940215537929354075824983072908974996111369081066772539065152716416461273259810794775109768627721161413585587132748064227516302559647795455719826363023511666472440507910878339842345611999230263125592653745640376293688314209972691798617187336289462300390937769178398174730304173413869486868249769766293801987628955873246644847489567996316516234542758959445835286948579752998828245448837996414600429859853738276123844697149078914065105379367851486136682660483316867748325846265507292214502091760271436595492292694560827142801827056557135554176321476075891625129144365915763943163117473990139245572134986740387381605034115905124932716906908711270471697295320649951821373087099811572651752784678846259579713219427523120713971668266234120972277037360159670977897643920052673262576454058513078930124487655629655683805871901142808888081476683627202352984426272454517666238362249723931915394403428462375083004832012391214039728886249176182728933138726176040044558898851846401945430956285929014299754791237386548526492255956808847277034684957928815191650592721865426904980455089202201611591586992574928912872233708642619853104668118079920267605334567809736553291188442214485800322232329312059965541832029652840925794718675324403096661362410553567269611462395586035606262725004037421328446775349492160627221765884809613084611631303588471353606334125898910668654369669914644647785790526204050999489210117031047427714643710565349798411472748331058467408044925265097113244697097931804095587978168150697217419800978440349570086200361547370813933142182760704360780752207929799064869593927136149330206125535450665848253753114738508711898638090527311501573856983693804733704944908904849398562970070944864968588804687455139662106585951415096956916889024298942786163187400338419360661372321772814573585185042261559346547622865687324217725225650928481911389904812942772316731330486376196723855790180049105665616048238881131506308951321453737070260791292037510012923793797849722947543947284507880059989496670277315810214344941512511598900199834351094970969897302435669013073359562296217753445615452755964521801025451151967662031575777861044065569021652997851453766458815155771995094482054435160172480184091405474300789422416996163830075189139717869402454066319810490009786256339344253989853556646156095235502080925089346376756497396104790441347672355327487632250053941180466199043961705365864733811090122767941989712303624746970620217677270626100772363801691048185383078751860292660383910404399932164527042668928071437199642921264061988090136094636979105021617381767720631090684861572174501925236430129324798467514846543441712428621782719887640582291139429869595338726998628025328761180461621860836298099228745140480351503571958361569557236386005920376138088955854651685024735586121634800317465697375747372235145820430397506984974317298031768584446659707897887083587688466614399500036438517674234988626026085226715439427762242468812735527213605188937082356702077805824723298661063939555744020851072817219926230430340135889162696392973042390479164013750355590199693659890213967226001141549682065533723878769343594750418076427812150756060103482627527062853804401404375637105767708017991235383187208947593962339069759312666426561862847034542738366207882285945453071642029793546605169889075778538379998301897741252384535217804842883172563440160884493114766012540634998023929472019808627793613371050239363770633607386739209102469260365956635926565267304699779395733734392815121990384240160615590821192736682930800217442116231347979634818482563347732496697295961823223188115534993464964042433121950384841709135581094039148120965514071015133905360726954252457355086670940165578767546200191348210408911474873988376448207325640814774223442139523847581439750380561413358912053516874864070784299643298947802210262979700414040028698827047027960204452934232482368677642749037466097568136992475843624123760338324749195752352539243009777335755168641434401593850337394232691803137212552012577328076190870130850720051160133628399424369551479979242339904957957689106180216853096755914891573503669796563772595748362933935262762216562339705932757182927449604793075193663105497541783406487809381369265969716565199233744110298024796603393760410811243516271753896691321544575061665358874937704700891290096851325543260382256301247239746498583670392941818808103405460144639077589618515622461730881230622969875811792952542374928050905783422770397981271637526684849754351623426525003707377903448474212915218490612869283541244468309774243630557325435896725730682844939741651146978979153749105896159974638879044604283257823385210364935458500595212625999158916359275437673372716530166870166170799508190658367553087633834073976509161340540201360592010511727492220756250422189573675233062490405016166764697937098883660266374487228560364448002338362694907688797204417392257127056010916005329521919979008123519121537867948821832759870789040259219856513242216646693480245454541518438724467679740059619947854801341097740179632001315126946459119343209617241020554833114339640275283731018680316370636309668967476967565049235850531306955566396325154373196126874617514749396484856725672410371893385212021480186978273975824215744973464250781944046834765841391260467016478389646266401833253790893116459373681397546494843927004554962105249135400198292615484864935185239095461223026112852192389373766738112608914395310561596975869218534473301934326890432495694511548807535714480462709213874989727039474676724168555995621930346948574810439898067040545001337333248900577449958986403223147548969355014406585970865580199085173771805207041964772980518151538099956682935576879838691773277031762751049623389202472903331923510292501798372222661414994223911415433523048307253021902974746443774410103507243190378883570114876969424070797139735222733672660292776121061225245919964294918563370741585895991027199219715222206830349790624246882285880757521699754471526358191870503593031043339724772807759481314587842468215976341977550107299655652579492020302461909596930439631092366323092430139304963307907279378160721842290578859599809270179610799006176559236723507149884815765476423111222639109040225014756979780683505353445517766686544190001692848305799700021050380593955462024659166454856331595379168442689575095795518838925737995792486778854046124669019152802104450461796252173463474145860065969999718626617500329965065458654148095066890300123783154867389456166815955582117131534559151839364161477285654339164406767392602162055954058476630232922692545399831797176919510728671278094572111929477390550066796211343817571802264435719398163985164661753225183674999805450010801275064401653503537667860495061231807599650252835902192334711540269687496739725078039147612626771457679253819382594406799206490579412256855087352963644639750507064147414998378345452560685000819211797335358310085349773767143324616244969583614006747549609792619114403329585105236367389142822127351561941853689497283463411791731847191472438839228241378223458236215506901867443583103034588670663182185630659825924593567073400177948398263584455763079287518857142131232898147439356621064115130318326923800275311362334402080197840571389907358150153244135230519140051070805551035682915669705173206178237597645940105965164335539434779633723277901063413657580350004716548915312699479085852564853756000321652992687190001053803517385983902763572723950646690119254788301739332184999015145069480482899732368116330247508445186672381708487535241667435275434847039967609304845944122505595948583856104707524212968444515401826230478361362864287574996547601851311102725818214077831855796663791201475181203566341042767212645388309992116121267003529250247388601997401627134193364850336311774273451427801047909858603459122810300165832645871640420160180647418064554535532689854007158880442064311299390543911713268025398228228616096970043694754213447489893314640222869688765783976308882190348237154297414390879045828137756445942795521603543806455930960416078360793324565688815438240871300595537294988152288052342465800840165079197858927562042318007136301351862433829513137762927687682306289924454289295868673845206272724245729198927938238226860918053502287305094374745351940111597794944380997613447437073570986489096195339573918987899569911646433513082937292675936173879028008031508844924121036705026018995447053718657659035192113147606582265141392532959198399011055088343969352507393248073808420416314534434221830714861767458693800794125708257722960801876114808934660293319951158773914904457422891963331336521611306382012579719023217210210730749613046268182364380406621295916611504976386649724926700305284388966698212534514973767961433860552392406136460576014354898121054195076714162758127206046557167563443663770421051922447248644334518280717974581072168004220258816986936899718664201231402885489129644290465138483901313648337699069843792736380277459162425175567875086509821438681845463171534200697687506811352804537403213137907191668920560654193776911668885588359940449218453601505031766773206343029828010309309223587023129819898783999700806874846620910911578731514262559220612700375892641094435321871033800030954470725281197581721223149807297160669499652465138778497879930768971848278198046874043240601294188439382295638344181775138398181015466819402367072089878246551386193772687024076539999432911862586746481033139312647780869491517166808538493615552767141168707603053308854458420754739907540869155413311538985787171472028546398770278624972313066751036936184484883109615391887824482348013066489242272601637524548298408177756252208338877779302465273775149722774828187643722232915290767951698512739350292034620510899386141396006038784981772212506045246935932103143068301312567022931616566277851113006905832103929744355904772228516605279261169184633101023080320210573844920873676453257244268629295395297875552889151045543007105851389309067170479205387012555310145740614978295872949449510031762525808848444611736906284296842612620039022398375913820790803056709480190301914325016860827712949728504447500008892253721023592243128544301008570294990830469427255012046481814958344136351573942139250240065040620915415533823833040980544326841689473881800245416046693223922084094075310957957991626102892103066097398860363602445810955160080103267522348470292635856399088376191625500622523169084767731630683644131435236328306469777453635123508270292066197796119642479401222706078698116267784043190193467691503246966681356178800858229612265226100830023082593618818937475139469080979970474447271842650113932713221440633258745473657871234949286978347513760758662792987081378352889300757449562458454944555215046721236751528491497803549073934583503945339982874616741409045793567725082414326226577130597174486552129938186221128375059710858141262914715962751216909990036334610846637467346987206056349553065579228317094099515139364708055681955757817556895708109950229100984758043044542272186081110249843032695981880881353016887710111995042938317606581151104803123911601720615570011650092588038391789998612779934518209246762319692481039961324525071822400823736918513174246377913686399093376436942627574367865862124232160492847959327307779657271321323759567801001998508626201090943446600092812625857376072068988169069158694742836912338525261707227235297223962453361873584255446204070660006126028034764704284362922007665676383611468403083082194292974537197750213903408530714449520741537464591952452079520857551478331204627455586419903074035730918557466990064090654865303748180252219468502404571150418861983624052578117661353821423020647397176994349367305618930580155684536786409609001575919384006321125774075093296158230510257684503416224869591528037606955689658319926386308553310735889767848128496235047436772636039883493684789258758210020880300939848922537124368425717160985829989001961219108734350976772251610590338288870112475479316955493542489201882076504980500319546721989830098313885946565505653826804159407421952941066732016457786835989137792276815563763458624747475078945103529787675536940907395726239908442230606132530515347168548437250946315919213927489444448465773089982855729224068734785364453487804227275615888076300564884209826503055193329451443378778995638145381291657293557046203023469664384356886508685658816181458693747502491795587979032289297309382258826584259736892517531947635257886054203226620578296864027156124618239030225499586959823740087314764081107150382831867967642813632010930524171316668702303172409003673454535705807412111224223123547478251128114004408357564380831189875838557977018097758243548222834487916446761209641522048591664501889706722046545820008374336204800270475582389748786963937601748438020854852175134122319864877473339569157896310449313751959447127950618016788161954275441952263236330755278258434911526076488250944841955307885498615446839231480698500612895533399118821752871398224010417993056727701835050259085106376802918019664215693214353495917148054195842789023163815509921799762690708318161399983782927232789288333741553738732637554395190898817822202133794872286709220364498099993971892002393625692265399612058786002019225820829003024695860154466733282038230841435416019494011327154570370757087352001463075474803299576910884089176370909620189780173986115958619055631024026041541603182299948873459932939921126309222427008622016776476049176946033370181693645759839333989865094762140850576179113953922668251922730306982742851843559461575471081118276011033947073292399235405387279293074634174598515191571176333937298627827514597809200091072586724152855373109807264418702396735447738494674708561522255518549832836569912250643067916796941665654017333928384791155170256722058766036373949702163322990360367175983943703804472063994629336587489121867466270662912762978365123581011433247850013239915336568105807589662559335238120375012979561639408938420408558131833771278570452773804446811506772524025857380594007559222620389737283850937294176298827073561799497213576389640168736591697405913402396286876520954315048496041203540481505799139934886214000909119805185251605399425106919730017536785523565350211164275445776911161348947022040295759250152032138973162207055429762669533622001106748469046359543424584781709647927392649277249885513098285781128626853462802695775300514154108438419052446268891825207629098507350922134375426227248015423794110065177672647374014922037849868822519152303813737560834243427132118746027652732877468489621649669087284022725704732356103772050655610232297520835817280580762393680153627502440645327217728958998405775932921534739462754732880652215561085799295482464145911038238384233565437663395134120968367761665299691323513284355700345771436385915980157686770678015456819527187116139198372344225151787131175281097791665233575268104911268747273714347719318887716258355910886602861492104280713309547697702216850045153989471352444099411421143214367730350386795067198529451876542808927921470367132425770194775683735992214984805568547752063500433576609745926185475132478731357201567525087638939955318139784121290678696612277671710239791378333411375101183419514728644000992280031125484615896761361963876546157283817753860972786735542334918102351827951184489840818360967156199343297430846597705147143992392284705348517278782690791836807091139754404654707577368322568896830760505898380080979088542375744929561441250124346347305056658611948791567281178087362033453466007190110795549063534059531628881057485727957887209029277768852749112562043557766341240227524437170844964755990632803589920078620503101813161276021653719812024947425575635488264334984890385446223949568778736518673009437417952414647037939895107082662528481520251764083771086403140239206661900599648756699603726752518467926950990758915235712465975099577763370227775815947055542231465424189915789191293474657104982381692081861573366933461910879672767736415123526725860138639110051944103799066058361962624672257261422032218198220973247738464870304493148118363501247558726907323717377177118511331651379465583038677273515220712011083105341700048258983603213435740651704856631968312959110289818979872747801364246758011184414170021688212457690419182599108496828812970037123380629392757289063124087874577193920640252951799515021822345321328714414996567869321773915808974787145958041342916434268319022364718676739898328877339177541690610310146355056629546727421993622545877082293450438247107106890267078108522038852227036544759566863858398651271234416758113815337045506697329012858253862018070886976760502627343415871569926884217304965243590752265257743258455521716844536841589695477035768215804134262934767591136377817979753651536121871168705849361291496865810348828643213568619368276228198529408136841573659693875677829937544269706035463614473957592528894029665856060332827093475876759692321840772129771996007432197693142577078034451869092615831896590585763181222579864785688487616839649226967886132889423942247210701964261715112440646698256852751315515910340415688254921827559898399607635279605984106829440333232949016264073873176537919604721555705151332311327043049723481875788839856524120042223883954295655103008652242017477681906133298183652049546399090628575902791326126568810043440669658953065682680368951998565342315537149267828643279264019241096808938428469963453476675155809506163112086950491514368284423152274222241741604842746126291010984128169596131277175969976893324376316605577969654185887095279858374112738429918202824831982507498278895743268333268340651585089561332774207165848549993984701244829804554965347401242350100702345540525521421839663259497712812504567668166833780375978431149336109812321824756903010449304798098528012225734436260685126743185624587295868257216462833563186271794707673936552587061043617825450324607100043196328310605112444162977993002419296873245810935744380767680114787743697923431916050437566937316506811109363276409989021768182598770638626479213207980174428455319876154058147760309221072741604855883979019631347976283982876091561965083655928535747651574109219478707268643736422331487738807004002334097416037135053179772256339661013550076250084566559021967677252659397322455059310173141116278368852606246803499433197849070766377628890931991739645447095301379066356848711403756620817075889531873176983890714883620861499387435303162309978420504676030916373270024469773989013083010961991246769429822058867713718926834432645976055683333879720985325552135343210341758634638014527083352332849200107646373720489517121958628132037042527149583106321711734513781875673518454374132913048163183647134093032962647069995897551688374398348064916193357943491416682212064922030850606704906656884157491517448680341842001896689046142158468725472543501178235138949757855057821828401890586238806181330346255942567462164179836465936160663826010937215195861108767746945582928255956749752046766472615382990994043768790827263349530696625177153831451976225975184860880454364045139182916316128134366128491311893470021360165861450465681689325312716177076601663225506604860516408057357850850778600641846502382270239310732387727404109555772445963153485291618182527247260289887541214852564080179237554557191284619102155004311828806482546660459207151785592602067144092075611918664855272126429822880354578716097411477028039077933659340434170091668921417993637613546141777282529028687523714021232817324929168589113012892575800050580558587391439133023955764895769491363159166698846341710134537062298975616568903450223254016575037419890277430009898308086372102321183332464918556554149866200947257836638298406053515141180038318685557071470322975744210993279110035872077777409700884230212044569361452996798756175117696773883361686544710121665457248067151262532847550197781980195727734627700576265217477426868056367897889386735029312103279710241142291282143767138441045153834045260862463759306627784882158644597888579192304604359273638790247665389448917817534939129952883761131980248817556727828502168734940743375890213554313078502128427848004883511624929767641369103031664463238268944796751682257590523841441249248343756428108385272628469094734319877663951286632813711634859603846800058803910323804045337185635832787932018907718998329404770714456178235914146676241427765960276214608549252277957358043717743651229036798247907094679505477479282400798819318428957080376113842451536971611725444155597200170511474767170972274734482745200965416709717294157437375564956638797798741270105437403215783036220628423810041297428995541526054408924634242324109221253654570987140932618350866556130043503010198157591841987396069204321303342483194458709730165391367823962736783658257122062805867788418778927578648444412065895154980082852121157886693947691033162171850098595834615990251937726856690791542856706007566567893723576924533198078421290918156184109122127363920765646034508531944412130859712680009476056217979630848553600297829165318269531764708013301566793527121878327647345810383012033314378286237438109279816365070709108466638061278487164138692679907985916177795018280777408124538755457754418506497184299988270285385166185977777839711679615473372613083900711827110988860755791550783176208243204980329953079310630917326754664695285164107257503244717713190397302060359022580875668063032451899305871433543869833142416593457251534141909719814606735579445253239693968391890006042674980905693630297300220447401907093827026671965904538314214729221515145839446045961825241645358901782214933571954559200046722961570738205654741445248561162816619674220131694078512504795960139704522750397331018052075752186913046974846108594352927171394135397562086197068970573815407597856719818835571491969208349569366342123755143183407896718764315919213828947493126208256029387262513979047856144856819957932469552214086851805602242695028954028604267166537395815262389170206425676670287017103890055255212650635100073194888388586208968533830104993604098973916032808253007245801369550343198107982388859780973070911918445990151187113617065187004260679198786645767760833812769007215998038394012836152444501332692380614949013846406341107914993807486038216460412767639602409080861902701356023345981414856951556800051877925098688045435661352892960959017696752030952556112168680099688262982014530739808567415423138784741310229129703940804834178443369507884106569085666343535098148230444442136500157014574777795909914786314180478301528067368478663918075454879266904263769693841042841748318712723740263879194985078173411744871944909491944714949763704497241413668834380929251506713498750825947686828861590162505093004861375621514782738276708989000152010029936231983824079445006943507782559079005204765519455116475152800645381123422226864170828998583287300687888047908218388588257900868295950862839232061863574426462976886208607198716633571696243759878619209125705067529870885028319816059176606912356450769119704873314819481398372399259813929468409521405486359614486578061166305976246184090151289341928589207848498555278773200563921280808582708745199001275219456761974453033252711679636694184875660728832194385742970793409751426386484720464784732888073277062378439389829063437863647064705772870379226718966186180166662567681500130176689212417108618366190828569822048042587910316522419538980813337989073421254613211551420023086701773991840231041966132685456769219139615781956196992751368524438024233044786092584636301752348701344582869640409742370935297396318055837500675079585887143138091643155468912592254659339708220852662893830886736499642972565747122144396061046270452520717666316768228998158476366603879100852879137428844320710918121284713005121538011768231715932600042157565806553977745130024738155859454266549514551176766556514466691037591839054169348780358529891810464277802651133640438700350520822659135464605274867919709376909631364893270040939404104520036851813524432130024112655021176632279392227946973910496843511947012277054688601167828933081993433630307449763420450637210105492345095677426231597762344369853083159309401964921453557456893230781185068280719595562368751964045361964834972234984271656440847918522706505271527086741880269805641808224773316788946205453808675012493026030112032219076764015352870009692245603230326173897401456111649912346739569367032177078648805567024887851987553215325258253176625848784910998593011991976504119118799202576002667683590436220075539042219776254900940647723018404922299740965829405474495278304494890423398048413346213779751427292855864896733660867238008238291368268002178877493092744397633649306155964363715544494422065403944827688220680493647747358408021277841578202734314771823774994912470634316845717482467412760841695806345502546639494645791245834420233375751065734297632725442892207496440647645309998280928552910663525978227934200976704025486038711136512294240018875450510109764884826978197973767201353404340813637050909141033891289413894253685302005519324094355773971217656269061112428644564122565815566060766332765818270854199930175762126642845807251576988672293629223537097291624044521549822056321062563525910079281062692915913324350755328105920774432248084193722433083055652412157553043209673455524944569566546524744584479303141546732170921152475315474745146163251780088455681307521981912310324317868650002372773891532101226775194478640193331737448527242456486808341525579427714894043621080976793116842699880535972919284343745774403204313946029374644025837113465770911231627347513309995804011927092032019784945196831267690042560387969156852362721569665058193844191818609925809101977107101057660665115462344124358242494187635892135654155878833736394092889038201230646544173147843553662624892766142858422674709928409271767673207621723640479374942896981444330116586634401477772378049696454580725051198441729405132441406226728000815289543614979672867318039578901228596499356904307373176563981180718264141719425703274732079794654853221860062504786512570980835148192918017597288452313133158682907863451169750791986223211138821887161138574094376924893955647420451457464352176099794043705039244413224215225970642003756210478189889831844157090650075056817184026058633293438149819434429700176443851926172087504103185150737121989566909975745648940222781271101158841597402942855839731194068560901562184771327783468463366031382910212066633734487800450024458851555477374311394610965644673964352153835804406997137672749516422695246423402640967514395659289224329253473962138344878778987989236630672867515712972115736854742401736164544470333404695740938128347061779396742625193772796230995324414963940319886428108810327451941137563098182729738235688864014200138037091950830507363716916402661893967264438234499128262260326127049100376230929922135956611085074475957900989129664393309936512763178436395686680736667012991283353330298489260626010177081982652868470968053304778164170012629805748422257809170769632534708240235808205383885168913589640215955252620574970274893270129551399494719089998495710205719562144562028861805257527796377045693096714613935557125116638817910551721910946047858398918620561378492502094110592292363613289651422070587920046257110839697496668881737070116235217883255060585558428817811114274967250769238308756469282914765798318051561761273135085133856617919101129815984482220004707877551681261222157628596527613076371153220385532188428593814922763943210726663045827615610577645749479601778397462965430325052219703385732315655839452022259350925316488969341505948286048509161061844176148481208287813024618392433154794464935582160809440292906190826181660258106266987251506400636244422567770402346311584970053624764117534181927989226582054438404151375899110050643802799260943065700284024884594067900708474995012781768035803285644094091713508615908655979648241598922410384019505799887377420408569321385439259644991317563397306972647715666620801939151938011265803735628788308991635915332983804152887754570052996039394692599371108998192627957862148762602257664612130849907082924913297892102365461951327283841881485453170959194706753330971030857663763391813252207094400426642373507866476792752978918079937792510387303395362053074439484839780288223424069423035407612002470853456383818244787738721126699894610841896687693496067350382151463370355351356004382141589906795830309109210731806879879641482004339830754102164285554452816142028646625686796158865537808302784421532884506101430143629151302952654361636231052007795320798867506650137148002407656795158614171892931470183203635709964095773036267281264988655679059896215820564844736597457158565525457664625492441468453211027663247483431887231538636940376387321068990038335667218925721465476234157224518853206413832897232032406358462474149221941456367301599488691019974754549415561938522009946441173862455305936040453303486784708009554570982142712610785169707675070190593842123058483597067238420199717107872402882880337207377830332224567643139545765038395587213577993073364843478912586334013755275007694414727128766469822011031841805518070747680166399232007159605111246239236155664887239238158765766372221915762179781346709166110086184511987051286145684849778241203639891419044917026055928110252988829314000547746969964084530950454685859729877675538984140735625964192434975713289271002798831195261795730621210465213066575108748999157631998480431307413092839911421068743196749320009237063020099415532776761747858828817047378668658200693267476656545510616112084625978254520318773930996942454941106848816959705179237550158058287153766093677835106397676902884484211206819800918607771823946161682303511932539397599003109713518461294539604295882758132850738260693626019019624188282644745006701288379436836883555400170265717328045411159279806364777638344813894199373772470522055846829493010079190876887402833892610649113560720093486336719473171678897405179687495686649742464815046467268768306614657103020340377320002119236310518298962033114645293678956127571883730109845468674640267990801748736871229391546742688794220325441178548619640949679089268396753097767975267894174702628337443998553285019541650408626042854024185409530547453969062836245427489368753673199320626068270336786406736787016987422171200913354897865128075672613112459783876404266970440391594024282170969737322532499463813261322379944656259104022705030239066242477035788066286806783942681583022270859167522752352700033949220132600229034831671478773520520154477793741972366289336394092347729297300916201169117222009495521109729615679842543235606178241822916441736055008166909638254206277106022343685339594559875691979363571750278137663836027827047676872686559218369326342495123683451376699691889178595198243978279899491548043188484202512399271010260865123778457383202187869348145655594952864318175675244610081863602557071835218238458668295469197066148483375305270066364422313752016824989324863883674726493922185662085710699952557519531036459138727859248317293071800155550447465994264483452926540702546208173816312588467476563948745706666290275598473641195960994342221711700377848517334744667672491573464219397648735168081590314388562738862566463030244065588910739715240567284039786954003451340384210153419109236935489261998946117812762572925907936527464848831035824573891044889000458896860143033632611330699415718400411383125364752632250739556655015115176472193278258031033452425333977570965964172701637637664393326869012860970993107385785196588296681236186509729427423022893152690834037179526904099251858856214866220795499260439095778478486556764818330929442508099243390008707126428458994015362875520531897859503203425925028412451464232633773831199335653059075751774592553806623886539625429658906044455744346523164355266284279355882564572540553296221476368785945013110858365583172875622547595900779097042552173332834534320706152011723623281619025672243732876792136920784338797864220403694836447224489663497756926942874973259357075779541389987330410142876231039083449437114253036612562363892742174828522657347012245608575775323487641845792843095393008555995823218748290138152200833890052435149684368172145437654950828533188632198619313216471927300886178234507205657914190185712549506189540892499683250181733430821676210758980666031231769048324716663137345323031627447780572037380495856234440822869318907609673915893637059781237493275350921375576089181686545950621075942465593003359535031529624271206704294079636064784928679683939106492110930335074694024114307253514765089390752735060658545737688014973584622494299558733794400696146436523620441390746218489065187063281521576701978762717952755969395339709177493801470627037291152691599262125409041475632432710328281919213990525677580222552175030763940176046616331129107633712220123097342992244023564358825358201353761609406813239185293358324641047889258061933685870301900079258899196201902066810663774441670302133793811806417330392855827241559881939542630730908947359127754680382931589160224564745287663543102072338105226362208749282408429232565407943738395483240559370471384915193034295467029102509510480703051430847334169132259921933458974338053472360483475098679948996238220007383975718585696660450916951351072970981352278768630928041120063707477657770774701337461232757945403042646246531299063050243760828568577834489091248066388992721284606319048768372898674277361561577052155209144372026854630601650369182312481576127833519185802936187658450751791017217707916479624023145819748423718276941949514223268880149505292876562191480639472628219077912325387826814086178759431525388737587362524188852793043901934751259139090103488858183233908420387427952975355814988242405144349210993180823228390263317555259678641756997261259989592171745095239829870597954663252488546834549489289981220885859033741232772066936411527772290266595560539270443666856141757646732478417388725312780450545674295729852417854625205577694972516862567349455213157067700920583810035870548197650583847096497118005335811171734057426744810879184469955595302158117883052727934411555581342067587723354196743809907772117945136438883965335280497620712255410003976494595990918597826098105941305185670548494836486588471323851360157291131598931673505411504950733766234604188796409406184226703376092175579497101082548457762382255025118683897934136527092207473040201555939448033525646288915736795236595187346014004928625811285401753535828883256046600790376220533334453929845180578582926874100063235578331166919509073996347717409514989483527049733802327597444466155660924299923074325025037865128984012663571156249030994522162814104081490522573141764242942538262754985132928074373920617211650244993549172234528325414185741393435166067788574237220671858842046496492735227080873273881689396086161302897987745367007513678682461419174719174963309690374367694859947956348237229659962010317789952857392761795400061966862095477714693210962693959891275580532942890565816798327956181518378544148763612885642278640272639415328444164556492231847322376512310520009011309533449238157193667844069208124997783665397070845534428631952370502689283098798049087655654136714291243999622484992470146362208162020750081744707316477988021656374065877407185410370543219272990293334535718915178946008991175176060339349750007023548380940872471081369626214040999109384020197120522283688360589056256821975620845432562996148958739013464009404163511495525303851057767943646070149554241034811873855776028751657289193376248778830156017403625827640083537334505248619100736314733556586449852466854347142355448256097234243348889659476222712627206411047609545166858027054459526192469865064906080315658422274300109887063804973553868434181976396835540810318240241434456996052528287814213931099160550524196172329730427905733480903340591507653258910385183009345109370943579690622976007874217978655365766012830990830252259175174253149380078432221660848632779120117665402363321736427521246325882483228571954823391875286958967376496996468865807361172329976866146981935157714850636916053102015680105385758626156183507438423372854489075012227255163591376367996949539027481268473841898398171571793220836377177571043137198010247259159385614245939531524088781229777767291030269260208328003407419666259009158296253522030851977477831343443837934576047191713070425989636398356649178021158120556912817049963816026857757959077587658192579566212825039402814295744804282779969908189269131504000510370372866422088813822665927009646985395289229778508873245848856372406889862290919278359398444681538268237103231829026138951488601523643141980656960621705648683014943962725401483046366540976864071384298000197218854038099325398301286069796005667814886014913360559586949826126390317327472091782843435199770025454841539394336941076581931515287128878281713969627947794097600300642602878048846026352673753807729614692685086549188433663283007055725267140601770225344950072233173648555055711093536001325955117371501541124580787441380197591884850884358215044270834058619564970068708262985663085538602226327151099045080956975711066075870307550596119541970740314439593068496557157784909603114286022477120758918887656438495106668243727831816725098337219782939320324187512799115192564565627801898128510625126338480654169713715192865057240005834169325068648720770562590511149869732269285171780737179097573783178918865355758284769215094058137297288611152071140455412360342337307657872849696119653953320316212754338549924405954131691758244389414396912921731537103318477806846727899397211412144048144226325217013914325937588376153666427001465819951289915766760013273646205160617803907763661974938724091561580158976147804585958222340259772230905321466338795657964077821737258710364230053973696198023598075594765565164859414729262421080146862234079752271371296289205896442170097792682971739933785787400214189001232176630576836579555926386189538163286697800281267607941600254657863607649720404656270583708474448815139887835188505390881585059593253085569636484849212590726680390961056779541589036513371166981177817144470509568840646609419977186989333691269697572207913386742071943417307850971376040087956802297281130680557337858161028768923439113768137814558464897159743868794662424843172796073797982997548603515012734186555294986507665243510229841387818296261669960172316960474982916591205340304706174021640202911885891352586694864741583098808393099236435386297309505450977765646852285758075870878226223316917833728347457916543517908582194034610382199619378487293977274043901281194604299209336000901949247362921960660885554100634131642303752565859647234832125214006596735649651786702614201773373699582483439872116281068247463277375068142385338479626972225650360616317752531511346262333376617924760374114358874437585068042280643697422047510773228198645692141055895710888031646758392244066254738048213757733123783117494263605614734226776867278090465240497787843326156506189663920403269210225254838564102389828661989231805077890515652810126278664262659490267342807496945777697338413942305851767642504872395743119788723385003013980106829076436640109666775754565211458003352208630755368186010300484320274538476362227643971138039847099749719356495725039403979418855094413482717834106939652020480674079224490904929330330589407186088082583195616073354764337367723198512760050962663817836335077523792202194894373570167627859681062878970187116864540804827300735182643968890218357011370786593334534930221453983522893286496018489728730029026856919596958973080656661472011019155168639582973235531605747627443316587076147138123461220075855530916443040181215755522255485040489241603559037577605140576270852470476163488703047161285823667032430944966118760863331805905367058268987654728245184950404588309150139032728743750683023767537205074801279310522634061409483793882914323603917712215868214537678197286226434991445342018942048755376963457999842037828778843999369405209978958591379191202243724714038890344126246471607887427769764607232787301181185129466436256185102696340496136000307006688219168446889520919533710870838228292800834943410078467764503712998063673190397811864700161358596362744228016851851435235869345050346820517949423896257705877755549752248883368551380601938769148754571501272340534137574982187106016689303616110827410175208746403375015342564470589206227227198458271185200214862666376994977770940230910275121249184509497331616912723254165937593361613479972116553612022401754286927480617948437078775446262613440736509869984860726900463369506280766332857400770930820968128926491841453895920110562511641598316594646864230318125108827134012172874793854171068547680535261955762382311283711351977583347291998270931203833209824247128914802844903597847882994590439293330635210280147663154485416980615344902712974948598119886206418596651964575479431176363481741186128795301451262606705448284270148457073225534546235086448991842716418046986426498361311149224692474688834555912529664403129930680367764085625968888854581555049032242131210406222078205719808017589342990611031450481407966059369418375346738287511211619410650597265109913646818462194501245357983422964968423931555914588631114936408228997872845514430786241510017662642522473109953166835715522364132828468210993341724080917408287222182368265663656753057488998533400749567435765887153938281009070548840249584845352319833741813772612589236330701700495303507006254230863653014253880419685746199146531651468568012280756363929466712918962434188396774826920734879052376879761385503387395080364130444369684128406493351587027384212862258241252090883744244443167310715365783899124335789755363161145112597745978748782945244736831449344271164520851215472470237565921794022530358318541635075712567982923226162854690711894798421655952847336094617673072563386949889555485502431286647433788148482302110604806573614189758546808414812286846776231203082166892577210855288502273477220866183104785676531849103404566135653646460578168762141095138777733488910756345720812006450416143707968285391532187511134310259801601064880054027632081105899891401317891845776176962846276061588632343249589325759337642284721292649785578862147419030878132202834102058696671362166318559651973433545653754590551970401634915614948391580171786470728660308766937723022096439004405190716771694034600254690448198468774678525780868697479332037436833943465385853561954968131655384877062497678008808964107036342556390632944698142790144198260299627718446252087569264797238939666953499516440485229489875893768840244950536904846337796533008630893058680871518691121896795351784425620087130705315548057297490717606402017101620532753509041251391536800791603331441270893126287486315737840932557167127493237083206186496437130419226727265317572633026620713094326472871721136923161153070693804904665250600302344212122283939750461224463948956717121464973595371648912094617054056312932173064374579549159614064160511251488280887635871183980157818351610606473676241754628802152353732233651833234075125286046698548035477790780325678869009404018986328070964562854944585615221854953631084393193151127367953573904197579497953441513617315259714812161530541047636114752129257729204311726656558265876432325921203749116535682657096280663561450452021981607477441334431971265831174926676424818240505157705371459984418849931652807965572713018939650553578922408505680926831295561926791311368904319876482731810112272047138806288382899288394774724670976881934768277911553812683316499162703268043612097816740060149523380436404415079935528862985422141587649755696415905801389845975759552008673577157193528275655051760943541157414419012863455242228696183529736480051850246971652871090556496479203982652678456912095598439543553211850120435274529717772081837478002029673738927114585454878145959927248391507933035444895635229979329327519367008661426662950073689953039019095169962658499518439253117200863988283583108287782385178619901722592517327213628747955142365347419459399083707561713303761002001725080236427106526635819816702324179549839636014127882316967266151240976441512449038212921910297371276699993097869722112059604948355028407393076832985464533090571754604983761114068429365415960943208502491169757922325909792197624372239099471085851094695093069080393266469308471973771850543705829892690898904968772221137478436044135592839371328879418216983316443757953221838540496808502953443463096447237693478602822110570362630072418113958475032901852757639135938597490884638266199232403469848110583991538839770638272542086814513474282005115126459373111809582827008449401607060745815298966618428288009611994806206990158397119279464848611157008694797040989062024615777790465688829972311506780108248305074839260839128161103936217572300624832373725636426849968875969609156308227682081130756855763793604203186109981220725813883085984570523206057938670155690025727210332926517433026869842838266154371053864219437518019001061164712570445079416907021779637545050331437986353280652326409109887256058996063054426027189081230429080481349683444833069500510219953351342399641058565946245221965085491841083252159544892949368616320040276681945128773045639844122316309485751046819659737008308681918664158313680990242896579615028274864101440599432675721058499513267354517255768733969971593923988352153297851147175758278290334243162260295949083182684511984006127267949198065962996790947698884693583044839973667599717100493573423817365461212432313878679924161211413378163426262642711329652052857636495041432182613972607640671473601836322002307574618494626142785452425177446749918544375174018112353533324577725082931520678210949011120959278045717175190944033149872228611450506400049669219329538977559887867575149662398949835488353420686335490191286691078608727429979822559663690763994461697143570557408735366554135220468561801788616768504966961863519280799431299680199953523472599669565464047415473009848751768809016783298940364018345888915744898975508870954365779278038944346380540228695352890963396191008704895974756036651556127648144398510954579668475928102574341365059650507941986080049943135017957687243922506484991708160107819296666810614747666736628542806326462707041158838621044086122995168264661871887414824843405002658847062990284665933368087205172783747601827758753872434405304816537057492436383367515036332158351180150327216074252269920604394209927421564253803793270334125892691208969189386899019930323703243483832425301072530957065546224433677164612094846956778794205747327069827005744557067484748221440323572466427048838677246446875658314315665162294079196481920956046186399869366678497918408193992787245395795162815738261411585393638427924220424762017878943863550695707938977442455549510397032774959690639624956755363505684874181743808326390542048895594071218816044789549414884664055117644366250548798844443200215053501788960945434356537529528617893676451702304167469269214681341260128933556640089514163752930851762614192022189121145126391972850774459790343308704693413522246852143076882852474799362050531095676245351696823679530199323187853883255748239311444847016266196639243747404788380736457416023576003954363694268439685062076868126124683792570804518816742390185477796153842881825441900375293621864292230419898636038310293798245158595793918265798493807604619234831862395097726194373281965964015280986994108097460129728559051357175416891974604835337886527842894631949122369581787565805302255911276034464267084624612180696928721136594350051485772795808651738213394171307111078261553994373676416456428266185546222864357099711987624497205562695808547468098168768849801071523133387678723167280793962753130552933469187985286531296265455156958047497219131182808432224191036080249991246200984107073353868315250407371128957997716435031577017409763160059681816626533927698751748003313563615793593969755207727421496563523381565770525792051603118076220712837809628915281164852469178335163366642668740387552195272732576885703663916480028788804495017463340004321064939828691007225633704528177879498265446961154136916522689774054134928535372122098031301638121730437908382981035203999864107805206673330338592243921020898621424374504886775175997567342347877216696174278449652859299803737074152145944550239875090122406601033432636066228559639982844805773092637041296215049905239104841077527532108195447063026237360046622473046234002253524475528995592204344436315795642295954784381427646003012191766329441688955866032780858116308916498828092987687566001682374774356074673386929488918302690590768905750106602548078699057554414802118921718021893598082754858728001242392146536219130139634411462290828939518666231579573517772416384446501517600169608641479937670175641024133372951142418903639023258774119654777133052368600610263531260683025047005034453527448563410216435720012461233572720410685201477299220006684130738739337842317344234452279753573890917076465040337555488034311005813407949419503655733919095280816879679494272461814644203965626315866473784317996448488824323359775448841998081964287983683804712064887901047017563075251942808962302795590916820890881434569553952322597726631190552378754653159649237717200315778191397758620973062129590640577869190136636145767585991536836169121525072384725504944932783371202670502268275096392528701482249277296477035348683458807276405884620030029608340636693119079522665341052398000212943937229879989172389509949727647468659145113265548312205530803495462076718386030143361483741570443031885274892436277858508101580675191158401051129309878300694692012789939625042693817637305191784492413035460136048859032088194519796451895276230172247961609456298991257958377560332234391966785706621575087390106036108415364981607153387849755040875692786809813240342927487494292699036138177926031421699949375585906696764642824759459882513367842751449260740563880949484342354349757983709627628520871554323139794083806617388332370841347170086101314359187210251962275603411703373052034112744152016136902427130982555108023431471421815832814330142735796023228583745592925076877718171271395499826073411693265952269398232690718534716923299512989503199595895264722045612509638210506939456600339682728582149788348109714731581112640453873553637763243005474870022802018720811771739717455833587516314963188925818142875134679804680764419189250456957311252070565133945696284566021521321204708441827077433910921636677226399837260441939471510689378695044345220170864992382532923132151717438990196684348164606981458326179494450957622079309190598322828158462387337954588316662608090055995239888714033342141945120230571946585003842723454908790222819307368638429108625880097400178031995655681226291959249751181042165516544724124219090371714121150329487843072859512827795658519467575475662640500142570029327788641361414315961426582317161466638159713108101394892262396632584361783212324091352048413882950828808285252033660660398047675867975753654634409568776393857718657394186469250782444184723775448590795006316948995307576006896069452600159783320372166330892121739763307517889236484421353336240467969185239460373090082829622903460682584476751216298414008161316488536032894383857855120005534189893971589274946654204560479348805598900371138160516506548994360196986488544960934975807163256574207116027604813285736413877106338017433503550999060924172483171382331221299505562269740375635134305125857269873906607185049090242653697705313392671784658230543262287639579381431232646948245840324195245630093411904396191252508501351902507977293063833484729984057830722455008560797948760152782804998910169951816568430612063968441911954658311849491303554467508217732079190821461665063797217840005590269674784595055207923015276599855126745629007779199317660484444508029760563814946640260030933538482253300238354912473528095418516484487638491115972099251607729045399362869388073010307904494539045870698930477937891378522772532821749802624124944668832654034355119543409939372477233695598244240094887352581772862645967334476953719098851468877973937517710753530259009585544537116832202872824335715923721901245807519372824069205041563023696945516157398328631417435857411733266158103192153938451395197509119742968462848434743917481427497798754823449451008957803071888934620044724797234378301989961643701173859170190217626079345555268504920973129648952149303467959434322274170428985910529379561497277855035032185201373592532544413843693700587548210064808603858661740809300937590273400510986663205730215542163028632941033135989268647581711466604139681770800496908086614999864914524898972511556034021896545134470250200839760235198577496135774505860004844898773612045917682097615976771802036370053489031080969562838946144683652844479137175460753194419564095968228066881989389421856788807099545119011410212318399738390201423459808613904798230019187899057100969607098521820212306838184622866467898467075109064359672282586720100143161865024015857019163051318243609382902190310245448070703970138007010932605684936760260334324476113639058478446915205725236960091262145785060495428940010103133693410804339881081939334957550932703096588863317425134691663373712723244008421920039518399426781222391368124818883755225769368341270882351115650496635814659712639172136090166397241733674120986290230086703165058926704082787968018207244611129748720688208257564329041197777524913213959387293945653850579424955958376215370598304933243132100599511325657127652058145323374577799230179445946131659761423348802121808618380094363440119430935578972153190810295982858025051005899965699530320463785413221387398215583923532202060385975151386365884191185526430556941902861328123818482807429601473092024609299689660343553142977393603513531340420916506354406538335045084048426880425448287454821623729833045134222912103054016800610838696219326997750488383810343787245632028898299187173325019317794272918792092331162254479031842564242169420589834286415143535707501055429963898247010108468578840013532301577280549489262735371866477463054696910984249534954216746070249860565163465286672626260799017221393996978703829953912357398895105475396114306535240533399596212607263134777378579514325531703552285046093832578186931395519082831636480113457679041494955432818698530015620929014112049205747176576490968805250661433689341638076405673398222918124602179533524226855128380737308374923274899129805536868350599592013660018688600720320297011073401639981300344702707336278150737919449641917354705989483830087546979953895546049600046653187698155766052264123316401102021574728200562693891442456814046853784308683918703895561742877240669744588318724778700717251287616592154142036746263609016329212270066440441233776998304672708985518787958040130116339983803282709997512573892488500375809905956410740779918787680173785649135364314847505121822984281330781382774132560218314306077575451668578243252334554782591777917798282175642592088504805946245028451827230311731972094101232595868785142024343309046131599083842024620675914294886662893165546422841299791312260661155782076411715789077057779050955605959301308418971910957517378234069773281374343576261710980311023911821618841106129509832067468769007882774070250615490652234080848564188199594170713578794520525873248490363067871016871511341388262446425843309756938701214636480579024467903096225337537867129146101130344751211764223115974652163758854827505225116559841997835035014989755102810509146075412664673427322435549102459148508484783337201706309153425176119320594387185331213158773293072230574111573050043662460050464994534451642200786077961645756176260742917457496202452839434009160904697480130026546344245606163373974044510153928086524056673662851530634604792266500041659541183476784211807125220832325382426699258658074321290778590607092637866166584597790925854642986644817930905174509063734584505874719192323761825893399814363151199636240218965903209037968330296652993274459612855609835937921006510352060555181322723057783990016894951094896131692826414151443191406916603654038885324893766705528473092159140311303317947957548717203331130912294414297487054778530598303562201620348721377130428785400961515404430028382125995770527138377751381790425241735445712003818990238712976732362810479433547652133423982614031695599328988679305285088364921351120364379197228262507618765014596707643233609208719713948452724293520642690395577544218290385925485647525665912581638920058243692756607964319292072780674019604833094821652593516688273918391326065580530702086723022323154064694426679946219520699470755789054542754806828295822945004577952820458795186532379076461052361383238480473533903966469464769312079592170207962793165738657982557222312384955518276857539727105366258206732798268040225269127802069969932668453751213215477207322102995163942252443799946567068328946075474592943285818069463203823347053053455665896956212737777812412578743914582668399012497847537828288460048611630129117009294411131585124301131810839767446253527702372999447230866839980050975831748193063837862317571552159184294928676632528638646602417513243372934794955138386444143938935147137311960322676361175742235808183099283961785496468296804815954559111532122112721437898207993923927733811965089734134950395093637016009889033891556497052122046429966727704240124341712090574650760132554063527227453789916761337789319838368757707707863970002486617440387117582322774049784040625051781679407578416255154881531376721306996510278577634825098110908210780113108380134122858770057800512008920724619413943753980363580673766306623482976894532114680965533233840300392127768109937988968248987762175130699609600446455894331049448970674310655068134893080839010602560596673700591345633261169512987261855968643295418799796289248699728376057274255268710368991307879656144702901310132999709746318918933350131685517265757934377927194729831587030426402238501872498292140001693221910411217326271882804975542096926447426599844819456344264342717513113252616490116286367456903501862939259640754471551894495439342692709647133579376776971338394894613892980052310144501411110849351029724780364051566289975813900377891838619742345942730117156610896126413952737649613349522851927152255984699013884662910097159352143467406090500130751246367157567899992986003800519784764400742695120020707300214548596061307427164484873436158031426469076850893298069576978585191706585109089078536157655754189554238784060336838569800161328651985398278862911090565055132316324395925752237518173760338548165461834070489712065263741938985536405005599649421608789703631373011316108848525692860492431233593393085499406348460238756788578254176746229110873843074528158693228891033119231363770944430477282246434309278858176568541730910285183932964323256373028742239096695988013011854981077682037582490350246073035476523943614046493226873779814146905770899350460729144563560164027182487215209440785189978814205152995185149560145841242185878910654868858241837730071332353987940443432750358650547174014083688163494532179005470903994197393292104506268433116176061975877725320109002927454496525149348325991698012270879584026453447311444730315566839444498521832492964802705333377425925697677824927986780803314305205005364248900541124911222916309415944929548466381977449627692368654532714758204088009585378595899388486849550339508204985044746629219931966593902595545013945330468886613666453393530785798379202061661241870543814296849188251479729218940816877140281561562704728103346920831728443401131932316678839973221405579594002582535081767572578442749701780949115805792834140664237132143654851278725174292698485643729066902136522644997949574808964717988950599128858197119655584783149649962842589796471821034265609744804719707261913113108057018382289848059030373226037790839294278069882256988247990633943577991808790983427310048766724473184955089991327475070685775822908366379386255173007828180053772884639046591515976730131398169625493601880508206119735830942239406323982642806030159051784892923919305703587217037574229763827940090464386651787361647876601998819709764385905261864348113441407251281730539407749266206215823974908456694179003103516543323258845235193018489766874579969750905536270752917118144698373141261545758917613906664593951900932833670042582628201911264079267945973119770438894820889988383683188378894469605507080489452244862669168806323021259203518977031002249453723130600170982446272609057653530605857578968512551030512234110619736309162546219933866667396466193916430286371875185138747795441128308234808181314507167646632197683238153011371631036759521895602184250334473773491978615971957219058603136406225474344405261499674737063183891342974548629722953796143660049693896993664373505871451503843997247803759458300441790675178009609993392294978455471867171494298138371304728714503320980514683639890715219243828952537098405582506818908975316179666459243955253459384563466373023494791635579556182158885667689712154477088090568730283870657432454776140035107402768264801600738966651476901552438294444926129264195925504530082298779537107266279293358628637563060047680833259396090797943224761427430237299635380915623373490124566166506414571295976812593525135617546012786735303975675042363564882506325739425395567068236976924125207583522803637457309641592584451540280317736446519631479374564829610073721625764282595771039742971191248285886144932864221973238158970984258741464446209912058440432910377630665479959849448397577429913472352067188658846279304595274243810583454281690715921097732318763674048095837406260910257741638522718922071403921110086832028696657928637238100162554783116061066886401378612297432867131101030640573699138970369398818031979856096816984371183347440086287392189355699428539686265347191376057320658382565704636771416536248491045498233446733124276160544661298059884127406360166734941576164713186612905628709650177238645535824802165469463492513188629380712978539711235047762288263684981046127548659796732895597866355537385669235342351104659798085260926707792425845761134295325898960753857116664607867916777065036258631482251886155976484587648962205850818389950972746306731817818008537597198943749367303439393520973310284330818159928848401392942543722731576011068186044261890856291677047347006482366632300707963882011523767339154261679338473428852231998929368404140492198463584167815151683641963786364943227468239484835745027446864414735548421417234495848512793468098596112539261304098431524768933713705646946434616624411212662175945097471339023350404595699071076726069409398106518399019425500197107020382354707324299222797972261112434838305728363843162611651323093934331543225493590380620449284029362135438459237014945627936809265425413813669924501927629333232909261918971997549741035629575467079301472744455488733417588843880252638687859454770877770031075590057165491533391536911173437369225594859057271965663361278687952691211411343144873757474501147533170684282158927873545402624105816855893320403583515032019671808559606323653703564813591222458262113409867734719803825861147972029966083072772400076770828253774816072170874908229539402380532942166130863890019205663541847674096581182953214523553480064337456327675124616280631446747590966740014051505183574726503604453812605164550642419692250103784789805587527565904415215734405317772174543599588697155979245114969121473628789083806578625426963380033944849769305325778406879671331432574980529128473461751607547273192102358581792238144696174305695224310108011680316512608420815596450276977712424311630516607666566445588827808339556141902628794757148478427968364846508093429648602454708034592763339895402904344515921098271361567689132849395376106688245970855323536469913994419984717786794683099647600272149206757347807270027655947620056623082416770680927734281219583658477325362255390712799219109294902692335837374438980545906052260119629214758376053347999518065641788355091262329872499179865262834235796565002476635452029142956526504826780395832218443951514836142012066371980094078844637614634911301850583101521426787862342724450951204682620405365647763323865483313865081397357874824156327577026474261679224888493253919581494999137565772127224232165555112028002745245770435109351577900784826673939812493842212511053520385283490345251318692935888932050317489123747542134210536169136032362769839595286585635455513382378404591051772584697504511264559089913631805173516348475042418617121977699593832248126402015257527973444576432317190008737212213433910022695140482464123301335485010279116719270476291420108250650105415373723551830139847756440006155056209466258114521792369726875551405897722708061143162971748129904951935914657732179812752188494698034461070150154971891267641483939071271758289838033603437518071631430259928056503029894252644965279074367735223759254377269309657830179270813119576400546348264098167491823272539196625645465618857331440408517690398433683189178703801782765738165436055462545649660335731259557511037357302187351902288050791901050417309843237465197297450120510738652267555284678777349114985371763180786949140724313424316980367081284950104213873220487923575167455275706643776511931455953336553955362402176918894208210009580739771665780408412665504054681048068282367371428198848277411171705475215577765411613720647175727546611070874197681135702305508439587480602883778350342587460755469528077475095058052497077524782876757380915190358457595015943550784878785560794523815562698972353346738442210141412808262718852985187053953773822867378554085187794828241846080940746060047402378202132826293205584962018525801058477648660070619235761417856853014893679477648201744248206387024244888659440529476769403226130520596288438216514238464918625341223791319976051959365526972844139729179395024791627152403384368918170469964217909035742558412412168610753088077278137970831186685133701499151412042595974109452391713721004976560483342088831794239803610954788193935452963039618760254252726180831209173090642265110385995097657896757316205079859239584109030690021045305742764554967476746980954417030887690304637513828565147521983211691317249531791071087192661419091782365577302698213264904234534485210777135172294538809593331475569861780070556800111669283628998999184003615741458039015125036980956091369003892997006021952583929408676310268709543653242495281046864657229368631902530164944861957334206984720834014010170089273551315733993626077255866184833639122563201708881322338528723368895063807424602065009956457147949321498143905064306284040314663884765043654660680699673046027118626960178515164000765899241834242528435719048439690915146112126676493654565258672525191690452285701120509450622928732650007050405975773858992049475074818908992561029405586364391759640918035207500158004919889068385956493084485238679847692503055075578570879314424647272257562374793757576235267761153551749382603203401644169092567137583206201271572799994924635915616309077642618611962860942873024308503539076254850627460677307095692456355347778153241607211051470784632179419686204263262984464805181994069670907631205602604059340556092991380085115160314725963950766559731832299083283553008191007324219589171260833657862475854679460046252192093127604737368936291627947267437494378666952864000458697639982280296033361046589078230761918940086260738344034137062048622886944701861058385121042607265800713336229760630297046838399511664217951070737923217846973170234242366491592248224023299492837175706639074167938231642240446678314903811198251999267744594745885072978978058415885820590715062161657150740720534015409629068805351046016996597924834048185106100069087166110345080877540833588260334108387993531525214955341021743227514021012501988723394170250244712368924666965850222728911482700928866368098208767624686534295821237289723615928691713090547983763130175353475226635075649218645637393863974883498229465334659997973734025155371749942158304295083095293607940694696155523350215075643737175814982470988047538282943575845822041762005888326752814806154714253257192662077990849809116176303324864732237396936683281984156642745197485518779052641336982971208353366779107632578333620425298131986935499337634446714068840799387718297132079811371025711969082377312688908109920693046890949273159650658568899184757598498545357845494959165340765649881101207577724395615146440358139522861472239455892194708906294822689893760067087515355470274446345219904616185820331163724442947381744440031222176153571971911539654589710670483453398056476289100345767812757986997683704997889963992823618460216910997682119905508350054475474880740203393074831291358819380541618589562302438395787259969468131839876877403581262051375944420611904781658800892950370296498274945137642503639103560555377743877112283938972036143137575399352889322893941112214793682427885171758912867528975300102567286997276909425919055937883274188452431135436767075104616390021653583793897158893883762219146526558182361851642812258430184506165356838624722253628927831248101438973655331270703887289992284248690084349033112046113127855376582885847518953545411258384812924457944645829634606799046676047458509888393153096759540263517032285915431862960892986035758220283793178737552200229369318865762214662303503583067856946008895124940611278300521811539785491817645524824532348697470256163254671462415453564084328491915561282141782086207483361672874490062095059255682663609738404064891732810873061115926477246721899158246808613333935738943701067207282557032328731476802359112615780861864149900180949981321519883472116168301183007932717809834702212366341560370684234401022144445054139888800827475925545073756534922676040561032947791200218188449801368814410543258827747150671604469042738869468145738278853296589922316853743852410814462872938080984807757067677294693464728599364068347359912360610973522399359249322530913133628926759989963367957992305746717346184066311633309309101518684322605877910206975713307566309524565197442288103961088391020653159602758653465216635349242306899202618599486866718531704082829954013755483913534181849960604658858552585762382765176845118476856196365605781465913203632049704522017370569767160056145681332679149361567572747609325015881403240920788800215078679416803427639660678580898471975054080811568164912423505440952650848429047776342858482143015879084809510528403386692543243979520395987326838416675590454087485168003430566116698535602612464000885818166539888960607122558837096387921026315517494865805948954010314678321398906809477082780986890063629258056435066854808801259676861908814657331609506083302114009616806827343992387029573211536267357268263111355777341624452709357885416667350518486706406877746171224566727397721817486329254448580242413921340148644818421456760043738487557289069883282838854881674840930295230692199910655275919049612195364250656134406991065832015249089806214259733929292073149555613254752061823131158744093129377080098936878033198863405880776500523982577284109072025301559016835802948060348850768139858010724468030825294924450544403049351522919599153100703936528473634839733993583443140351803394972084418940993482869757146439253654541150753807070796376834288581136256402606960029661941567090114202716987484834885003835568417063350734697193934192151860786654498514618212603102155766327224624962491233109282116583050545428551273491162574525005837026619862523726061767132277311041979492606672556375231207992174147344340855110140468081186733104210105347834604612533113886706121578241645299470456552802271085573728194755030920324356332936151190820048696377100616511229433378561931471670418044228556566285888295501982568052755589220197739147914714554419788312053114914475164313365323400695219321434289070612778952585427219414969735158498603291887161756407015358925362707018495184058451114004585195475499558490228979696233860920168907985290367930650624213909211940465000778776042542633476483930634325388031951552650119122024624115886141280024933717227879707572505859979837123114210166747653122202391434642632475814040208300335757701969096592149758371840159978582547520172252785062205659132063223015718611984443110150427460581185627595398671689770181678742645112238502277266123020598713451966454198252931537546660834736379550070548375171969852301690865934295303191775993309183124788976602979352292203598902481618805188239939877728950620437892246872774489343975705813842741671303684095902684236942892240585625432856606108689808401700254161408516405364587490337597883906451330049230187424571310064384345653630676226195528223589685041026019553788364085827075011713493494681117677187188118667514623920851788477095882018969954049140221625909369183643186946943131509122998331184886593125644504520517697426976068631949414386693871719349998071106237331404398535615330711471399017788097121293590881397978524214666630193851535810556971453501050154221172863595245851126510692651873576600346591448096682338036448342220098895470091741277488022887261205233642927005766732572519967877731408404033242429037319711482762717252707701655535253634714173603084620482077441836169089597858076895019374509881492287353477990287506405504568195452930401587296111107764124949527076329674295687931965544433753495387931235977622491372887625272638443775020485593651961667453417478789382790536766408730736874181380906042793573358086576196354353220853717588456568650292546573900375203584155361001047835767896395026826199031228462903662335402148653214775539866952728926458692534626200016324062127608329601661665734802891032081515328423774566583286528448955533393683760276570435948295046144633332094188680012108252253304649523161267840935701003674328711958679756233748834457909684092820243133468685661245832212457792761894096265855918289425732056928772463001525522992182424758588199579229834002496951691112684634935829594006041251836907404303762104938600111971035402919535185486466625218807585084194590176201962361441175972720269572822352752588560999891448700995448331556786802102606606497525630083687197832446055294356175146516910391641504373028924268161943272167166814298180204933636308723668057953623272435050754000305745073561195739521972516289411328879814710212359698164349196094639389138334854571146010872648578217615351672081632587654800747543576508152966015598591359311192623917962673685243566951564749474495408992518137387607413072920092058265213830609361943297741557151614970887911773858698528858124697937459902117400961518790975582754246218020201356161835988073858719301632624032642206887556912388399534765462061120070564732309311704504456466411818555435868639395490427187677791229109790664505493268790643886075365539389076781214590647741852585487920776186428517697130510471740446394077773635172714593946162664348933938537886249933049908583401352250156227089772567729841216706204686623217924903027667170953838156381020709036532070131983053647597252145031595292514866466751598058552960280309015861360721899229398393386450806515680407422734453120133221449596115122034949358074940609154858106795947070519713297960968595803617787665307623524943704950469709217325610361359305641614202286042324350794417168517301279482594002715490814061982809384750672917343289211815549411538787954984788599981467635106522795332694304153869365777763572065038279600915034743674269983830624184722551873079117305659705737088762012063114551984268864077889832196314007924623566727427944870905743452911395660991587139372530692310974941146101930019645065630998852462780856796598445390278352376472151505693847258457179779098936674402675130931117695404249458988228278565592639850627848205183198160339351659853528980384327505342942471996208492676661577538596002868938283850874701369447272873179887918276332751454046751809837743413596290764432860747553456301650865648857230603557734675295686127793006849066869811458860091639548125574252047176750591990375355941696647651370238951736352337471994265763164363332415855525904279496592263508213792227502505151538739224796792695626578875992318757830432368103150652880135621399875046238835738477499907519913853892604688482071372690563203532368662670590471392004856173673198723106080840366759194523492095409398138056315754381672073955654753471011184625869425479229222941400508659710036567884606326349289114962524308851799794017980381098972113502698855322133005248990364419323503231929886040635738707855963244737631338112221151839024181509391585292227207351478779160410132716367923963292854239278666090883158616002877819221857119554879394892716983081605401063663714005088182274638062686578263402844798157276496789498924097975019070376075523517204481527252400054542354930866617498434515901239430979458980078598292650154049713571929717918856200313886634252632213559983638355103196076064497868001824900816156256975027857555411790368580392322559679085669685952769409560962459613167491026907397235715838557049280977179788428752127014128242192195048003484257784457913672830140134382204623622013395867634603379460976441357920078283934172806616798455536407283046889026635989412003517087550270884423139120994373701927023222037959882618195890819998138411714265762909981504679345187619894355437563724357506459485055720905324548577207371653487245858814981073418606946161106211204586200614607189809686053505850273357703606889570246386472783446179839053304677950185707195595653650767931741606146434566660563786129495220956809536721228302564667786649342922633983651951382947490158986518120615299938859534298565954728832169545230420295704512036801759636676798884417716819310352152064542642216673996428737844394029223099463203536420827907869619568847469312332443498911279116349946203155235439375251813771001908031206586523708739348254290712349287229333264062414541717841567235823476037347180724548604005250762886814875199339996318825700044212764219306351811350738533537227424992048287226118749018824635221191342435358612839719906591490289166737874747245131690581444886148116352768920639261811327225662561276129243896436236555601686207274037651466426240535078782915451096021584289164642286225580006875793868175068672969192366810689558687924725171280305824670913586986766263639352531438862699214344126486967006437238722610130956731340000088530725809688182762116227762429073349763607949495102629674214138009724158953752646332729587325998992598390292049597521487000952340300992895311700576386894800984742359815300980109940661619476007922899877672017923021009007583807881040573208069604092556007911678477725151448818533052579332720854119216403787385089563862128415918230223103374215038510680425195671457708068603680809883137927432349011501681661539007853251184734523850642020492993408100885346643792279265028622081987228495136713663118346389816436742021883295569044771678870463856364665340989237370315721747539587565554286283836822970901275143140733445017107235324726614618979401375554963227858627308088048502339835067358074151302885026963783211638757208088782819940304409087929312036258667011420698544968638666045902977433182321455633353081607879581200548165523507166206423118017002399846299620582146166529274091867085245372839610265962248224354497489600138184063423650792763396460224463862434956115558025727513834708072999285862189253605538401567105301474238525623450303329406475312530051019459662663243072524558029444244711307798693835661846116200089998097490218813115156242379255381536064420466473514069018301361780510676285620853173003492787471472529078862279900123074928209006271902575135758027538023917037922462649016243962857820229704064628276747237308370310555112098938333805939111291975298199551732209204175820000011874946039040951093099150097675756488681961808776895378371340534959225064259523087414647336156436314003988775196780273028828386309820957010322027473164788709923341378808526019660410200509371287393895972270717825496554459096963988102552006672038978773907198568038492152435932855477057688997917654225763264316495839003394708191703865197909952263150028294667378321061888913587966306713350203642593494167970232060454741976584119775473863592971126469045600673460612013584189663056660050304967622277541545087665512556916144805353957461527448862266757161323342955027338774931706756475637762450911742878811848123391685804909079338053405408734337146610778788720122615762603467955977901700473710926206138643880665899404562085701924334856691621900788984694566119886314578976039744185672915151516545067185998059339965081087166011533689355672739078621541662917329382768857106015598083760915230768406518541883556465022001931913095123393217769447459962999577992241039310042763609857124846611413660348595248271319238433691440107728886434205821265186812411263534925326680888088071848115936696131449975439191393840046063047203040400621572252782640056499914524282218983901478638907707457236179024455852129740871477020704101873492347474455378321722415016298910350933016540840203254851847598902943770749239412466453998648360056539605210556433873523671995017720866798299233203714834892949735182245708735523129974493730783931845367119883064469746354831452613562489226832908236219485941497003079598299602127714127567410145590700425907599709783324468498588571034465971570606956738089271840875053057734209381290272835392114192502845038157756507245042289038526196510735732822953571022061432696039627013104666174417396403956315009845934555547207058901072784992983321936865520399878955861333665487834054165434431211972111611870466040644200484939321343706272099329405228967257597533000553533007135898419713448888149720670313358302577476385609274571873443620168647230905933840406519798874093970473606263551781534421277982884836569188551494232767945820701064017196649594182608337186551919478191300213486140655540621480061216892554249666076699095682435729307076370526850481305330842523953841450937862940347010810263373423982556968183601754326760139752890984506895350540288669525468006447305023785300845241729419686127249705084113005203022400005252533481568872020425779769588339902150344229361390181586205084629744555216168770462888701915314110351030591247989117054819344568849558423624815050149124505662498895254911858875844921914247911276133055184816507913344501491330082567153413424539607709008616633025226050183417430449121569538489500031583546261702015834348770869730477293104553292631095033483712368306440424113250738821597936862071102677361847143698150171075252674889874374132209142797376779443995032210845341153740062539864607511531109302525041366146725407637771593096540064220356039092679273357447253648770235359267706693533637699459392769035445326116750937118689557840084555860867685300298071035817019929591644328518095401966903086511304005295626079460883977120471097007450160894358052624336588690808364488958786232257132610701472038296084264764859703586614472284591078212304570712435357618342356603207802867233889168296944991463661186641621802699316350211758434121274337196199838859142468073349779677956752981325202994058382579125442818337991405457731443744164085772199061924755520788746565080866885268906133669680307817988066812981982849737248062440209334054260294071292433147817587792955847991932681032680068898416552831558184291880686537219998086010305229361000782333896369733163370235905689365622690358461036883603948670667905975918235145541282570271289121978094350576226984875710480176585053765852528615496383665559909407796630917063132178244498669926408076024118442066604929927356411836055222042574150531965405020542716740845740094642644089303072959905393383210505643162201683622268656185905675754512721461087967972747997329568161824243814470832299216699215937599339524022436136818304689149108932396487989577331737341842528396540186261454751635552278408744028852508548249240388912874554013940819104088090456638436373610860579778780973382147026857211181556482238344398529558957913705987596655332757202150968942459221944037095275101572610316776899928323040728205328745286147907038694810386529467414942775279984220691204088443688400978418061558956267486340349618366381466758581528606785153052912239687726220132091576145638057373550649294638987593227601815925778565728283540275198192752404380565599910855248700236860673732011854910080288013066745507110259410734923900217397604592504733796394489724946305875035862850637272661538223742730928541000122620896076016478924156020116517291140404184976506415349089350100535889976688021491934357426874125897819858230161864058531229300429806745395529992976283173533986698439786409823941522860658053752223342431625354801728606035235370746183024202777560847290736149139948155156744363446390431255477832707710641462364978968581458355726937485057948397641568729847200224417710695930094992122892713903441610672666807092073421311892503963507378405821857948939059450322080863323214464708800414138145913953010696525934169878978488204465569734717267349770573000881590198437902433762461874869181376077634390661482155758686958133774023480426338374936318017217196964355835865890470003937062153308276739027955272288065515203421736097337964125143530195055541265050892886965355450085460167155287814360227792012635656142183141793724853271940199214091583237620100439472611528553960196043493486959756286527721349408024856790963593750271094777901519411991949816549498719395364229757042701922867047102639794463405789739049566775322325441793045007148248272509379017655110736792768419069017729179251162722578646617548239290417566075495692622505894295254345639124341156573303086723044432838455132981875239932403794617772077177817167779356937926560183087900602161986538893004575544568652764047961622584959107293047155026140126924085412069918205695681779106059307009781220728308073638722020089940352712396222022209923429506152655730886773766875597794045902031724295648088211015652811510443469288332141725050859344044154883496727914694707379566830622484927276416097603723495259386492890335196388252549493888268145933144173801626375909852332644007208141899624579588627733229522978844573448329760280077748644115687878655566089558530606040940397491463406376464045809094219326537971770724161370490499576149930418798110174955685532383852082011003944881449077702269043956824590744999735749866388715789596737693499938162004830904963416242517743885368403985149842076659902537278697578423292824146929772867444872605649488122809721349722333188865253496341182565834879318108647859300275494701241208924540418809911590635191240901738664305558456402824203370973639622453377553659169935293020389465454399662771614607224554183583954205662591165883479024770770464494000622289606875638477848930835237258880355345030709353285134715421557006745279149161228547044648055757167485607671050038939027078923728383752249677081572703843605489292615327712172602033516018430584282684083509560160412533487400672700121095616375991139427710614786178271265202582722557626386392050153523642621829002049217150466122047975917314535778085930377421237824864965981128211100334597500105866841560588249907116774745365174565650572567161616398950765534740693830720305226131507520617692933825455794368954010525109875719176205484910856961243860015170084330939863429705039286709200226751657437823965470501469508532895918587659333305733580997918968243942643761016680090913207041436416875464679901160715524317770437878655312860535312086056072394551728699059080581911745049345662432554031132937996200231000972306069378175863284705175243365413231641534345536692459346234015215414008735910514207160999017500560286743131412431759975982334833045647176426363122992716298060454277483933960116964926581147121492721525793958957520186617634918941883488810235291094059262794136950927755154679264457728503422699706864535396794529958088069654812376525848625989538785211322298514354722870134432611453287217279657168768639830162300486753361698608262337292016185467232968453641013219284847999886568708936739590442896342645616756732040671213973321268089175160435542265053315621423764218312960478843176097060353990051051932074510913811024067585789553699379889438669305548989986704825115994598691186145981203887278398396128589428739084628457958447125807164397443491415345545350242741360546174772183499096768060617592131341707442286937588082799827483073188309987272085712080840629356533569024822964511007602989742187777631712350922869939121850983089523941719247346730008450266594787332679810192531101132585924752869923312239264581361965606169570013377008394645089377096874980939985770852531085158107134584290991816552843251358085574036201320414956792018730668066446544296940821445507661860334312573145951498863744205475825912286044090643481297952006405913419486175750080686923561820771030077197743980839988795642851264200279033518608527369321028950218714836724846698288487841224418127186333348660194124699427572176735218357348788802956245679544150366484588585643689624373616353270433465138561557892117129759987283746608482725046058320000860660191442445614502168672184254089076374352113507804731596925988334611508111934444271251375228865995528206844728030473495477999480625311073281320192385153589992735017297197730825636965516874438958953624166930055944505008816919662364067720802532702081525140371240786499694055241553699497111824058705746309588255249878810147263834638979466840561376348571339648566943946808403620285263787426184132059840701100613563173565218204841767349198047192982216921181803330591681262587600575082666766746619668057601742886848292119903525222460308490282927557363108126440981100014026086738022717485344702746500621485058040449468617247120788470747879726673757484002135767049777030888489410624121977186539629995522169003199034271698595943353919678497583593712587020900025403406331102018041469236488213730778364990477590410698842712103730273435338512839985977229309323863207777224723340948331314954851862239186362191967041115108288229341786847112755791893220651459126685076030825705307958959200163786273124777270103622963732090868235698405594306082584948964393148427370315587957926217331775731965005347897867437246126570336842268765558058380759565577265327213572878370688314376766315279208276344821230061302189061421032552406869548400001713686879330623931294062125997149747835376731419208688837370108009175414502211794408059578068600541736984897953283938387615982443347037364681483757197587439659424908033113785066439687575678335318725420468843265349196161248060209719379970940501279910610178991830057723624810266685776118867168507547478156680340580622508527395820446581906919203743702436434789294465593694516361284084555208973641073201367710317591582407553053947913624222695211720899060706973108587462547082623114407606544653937662645078533042331899543272900605798660679905995375731853788208671504560043664820411299699923162857802199758200052634640550468373249818094118154721622939694188249349781689556763293392683821196864837626787566153783977237998538815471468539891759057573454610417249874596437278235824603839087787934449303441579554030178571944095601450144969584340793529868952917904905878198664382009817339148682613820430778438925726035515391809349193170079168403980208708870703908207727919023377071419556725974958821607405175007582035760768075459869995197179132227568206089167502613237432341174277495967827902714330985972286028721385008126810647597393324472262625304622274835670666293804270519788577702984479291905247653177275292769940791650468118929323211238491561645171502288312276714293536842989773362612538621603787792532790766575710584780646686733893295938509603748327393945142135700626895714182059503163906821089513447982257699989745487865842441864504760611123001721877165205788051147952440110660718598988058081737976963569619856063549364705587926723254813231733096284375189847321605355785478543949259864202465412837321997678229426070844309222460497928936097144104578168611668403201049153400953601387142686498928097874283932705314351859230003769250966592799097132237045251826690977921191888079878701912396360856493133379547314753415082959568514476651775419658651845663039167683358708228281755858657859727844191996445757807040244935020266559835432960129024782789165386849262315406114050455163572950829881411499341581857089277098904262771168748309494956824095262746412345024158001047141938270302034927057237896658803440599442706068647158297993274833883380697489397450632791183517567256675132874086677036258160397615197911123371601514198037496411810131176059300407270517848879339940159736192681168688826726699079380440547964722425700333244388369435769650337840881742875388339064683923294535887869135745343479398045403568295474595216363774833691666472396436308366402891436374373889964597316732478601266302223084400810562360125794179293240325651077511865900876843156296053048207850622447353966532805440528784295201690053064926715224570985578797367462972981171791103817651066368565606648956531963119629356481655364427485906056839123299249857790595680016563427086013345148130263999676361883336492416648269676428076744157353805155204973989434928687797681034406734924018338427894801506738103444992564248585152613786350424457860960765471782752739192790261311223381786426746802907115685364125759791743132791439065544287866743706903618945845768593283535501655919476959535297324812753881986115601423388410425901921966242332347686552430416056868008490552962746642502408192207311960293749788665744174382295068258255557838571556734174177275062094028034375204981453640173789157064773437625301960330708145734274688572857423603192489309753085764080046019147083809502615977240337260548651978249262145066787685128853555509864063525881804999914238026262921041779998202927151900585217107443451767241901774506306379159219497632280874052240018059436186066028674973833722579243265516373600228830276385328778011868856099884241434128058438326017133021746545483836614622880606584318972680315659028985331282346424833192283935823927144643662680167524973030485358701586909216667721660307284457281886004964769336130715291358009625849580227731972192914799394797794097584473543020993939486369456422249250333087236393463742947462188610917466192903842237190581545034759235346669750890904528644347115061826258200063773756170129354682085882585051775721410921161389075104599924889942271934990466192457072886704467604169467484691144459200158707353263264054860226474837482643934142535766484700575103798511745892113657776175828508879073770386616489671235991506554716149226518382168296798064108374656269126002343574725675878820043948989399299589545934569727410222335595064558966005158278216078697486213432747978995197012788231374445082482762584331452032064898576970790463896588231333124675925416639431774607675708027458181606565342561538779117873265696780652406898887922262056375088387516414319270173610939443179863225877091642678963133893486947009020850663234538931720520467662073297756170689652508042821698383506933116835645623401104996095897820385585563763175648806460740026195599723963654775786395946756638419320368036070141207906221944105580954781133190963015448514057990274359987332388522669548476444177628854903523603816102965588197238867431970271802720583663784762570623343195839411253807382731051441544679470678901203234118079191680570443383009863308843722127422991068904751103950047258849561701973520711598085132641963615486198586963636387196558926081170858924803149057728844165176636336227185256079123653020158758540421549737983746841499410452478577524403927122507419384185146094889146490806767597019897150192201296974549664371928032250741945159963283534649397259825340997406901843841752972160947446322602183975450131749843000163115590011762166264632875676304795399038129113186815890492920080994794567106797882643362122559531569342518190081411471661038642235667011064934502611844327859199135399257826547411699604411222282800182338880117322772164421525074137676659809442575617925673316939503187818594254524201191231454819569525099736494460487972588836207649266678447258760631906153753685702863319107502127995491057253801132763198745440219210254326113918730783722610389075474421150648046584551243270745728581445882615453518456324392349251257251893084960924108485136386991315493126907627367512062930469486853321762237845231837526717620244623631550376254810725753635078138292066910530938182133355977453665566549668268535767129338374922901248525774002306421953382273590144414548628824351819927191848986766565777519706752169577044629212891435409866808469381936841218943613358224414444262137955924737732932543293137297893053721366344492807065029741731848968396850759533097107861753695978095392824753586260705301148616676946566351743076646247492581106442217902711496025908156053948996565880816372675785374358021543059482495083559565313480927745785169962907102155360710505070765413160753736496698984681610624415591889846821062766385468194750808705738011667143406132040824505132722268102781018021119665477044866008952780879458489125142533908429359445647758182781644293700221006101276019666121728316081233958559483486815350360100143567248275671700551332802692164983850959059363136028980703313198567568382438101122135950097064584156142460728405014718658158082634671640051370547378951584114620126888522960245123257047757907727803877270388116051062689690058354686223841380718966508088617735552611531565065863345221686752632575758599459888039402434234381078866927431916801803259776274336828178007806743949972886518407893320906639636653222773983773146329273723546644063564546620655332677352115450436760859119853133651629991923479750963190875578752337391403356210637159894724413989966899497603847269784658201107322767916307323086483588417474489045969836926228245949597037930308519814893308737001166413406330902746067218001270724722708096004001562949665079345745633380859082471088917321747919893755613731040802163040336679705703960792418268076582904354690343189173189396819833104455514103483422503572678819561992904358901065846432260813025741104065672322150317600354460216545136986996650893292718368605876538022562910020189846242695847048684902322264380548370425305404451720611755762678776550922748710366789231056464194808922428283698307760276998493983394080361060523619573114949757343424272047106954539414375211349898203262220937659492056482995339385289575350439701993191727230719142841031094654228844383798300444958292254505822545645382790560861659396241139407981387461970117550554689751154388883202014461939808144853192555113269391617664753164189750320026774680282948108691511240196612939656422765745708128747215432407390519923691303516776083030583225703871950522291991901764214448227382794070260199637631048693680145125631248903627384963677655514153910623325297777077843034048815221730310705320778158884664792785507855208613381239278428233207826457403968225989195049339550652209707304050440296884942852465480654928146396849016457288848783812913259109584137795307143481493880909296039848571348040275608206275790771016597387496106766232839846524599753191985180567461416786005287608921590870407544396326779988512523623105031547537457361034277016319924608900405168567685026229820034807976122684896612034680946404341637721119478546464466961889472156246490115255591578083261883009209936802822511265173253855093468308467183445141610035788122349487704893434019361354667526189917798546700130832740047905089038104268307386843013857949955252694268260538428441787847033588113361947844616624063670263276501394737386464402595588340857943666225557063472007937326070322156751216368697701180939787747080953572494101424325398967821376429187039013865444054215447091201297273097672767782468398005710678959889756894388690663545351376986173842492147215826220389005947531120883890090874473314799684630179926216344436534660951013856524330902738184899174546221189721533445389165912022031869749764214510536384401758779330857695762941883704207869321170592236203162058167251944421132408779492416906446225188268681063626543340725003211442978235072725351480599190402934895660755197166755357377266539168619809340739791858896801717565526006716608861303008274635607777106521446415271387072292907903123982259743899046712957817059214985824731220515508783371891800372124012143919348694566199708462043069580651724825552386013387729485358373827075013069674371206813845082226598130640613822135870611856675249972966470015808239974280400706874123736031349566943841841861039412716587783000068600082625078446378316836582535096381786406265850425112780534314399390274603935494899429142101153528384582935134819466670309612398384398132043403666796570177690291674629386364266296432498913474550267149009628652839479847142151921808435586712552781729626556897550332809818683466718730064936406948917348355305392277993246094908174894786301669837485886894890289892716040433691457128935897396508576469441961718694317512718007056056205317352355076587581733638382375055138075271133560256767284140708916597372917819558780652614927020816336419156827109558464020150566554299103413043079935666260093535469531425542707125309872810511070498588991054672961217909225193565022044327515471668158255548788822373233402500289896097370529402881317305947423709099376089296521512957861382804887647321093546129239541036778611483406852824178745913155209235949017324555458861280913687196713795111922192858615621988785041560519663267157189596030894454302319604476409006465462737096096469876668650006527622421015925286202033019402602122769101326383492321908838592414723963521617552543151090905774401020114172473684811855738788558689771984305038803756858812336240174051906108119995979205888052152216592662568762093297856619479057671189120681614864521043807222677481313155284985121292638595240745426453460224212307487821282788358412567533336179436342378524477868676417687083158176391097788701232984455272168405558545721361151284606047017118906571935201652066365756896523722937110188998580270278613634540822675840276145262559270132088557683475514628499042861304599144367637069079046183680440705343573971539343376225159095172099355482571019813128512514465897624492916999301280588076838284078674553552633362714134977104164808162101042605707258786804768573440382843313976211552361178222666857490450134014163459622293743730284540364188888076171003196145736177710189793038829704375394986212545522195150055271889727672266726387973238849598318181047755493912705663191597183626691244586288567638815279270480813331316673974350432326921075351085839244256769842296224772017327665074173792882292901413494417674497556348877441819602179722564408625259631073756779602738634740280462186985333578519004917697555945507919958444699345073287366349724808082900329690398966968159113802422471643579068426514093905380092197158058649879741821305028747139777130320603436450046892246641710057943888302701954855888344271256512194344623727863745924479624720794638991990984650379111666677370187004005628111711597933477119328109980540149356131386702134909060084758111293159521114865246832694845784776331629732294878235637550911923605233992709567868592679993020124970083151110276890866089294197632387435002023473191317427637897194446467339437547975524164656257058518580683388213473727706806362650111208453832670186216394448887764791080022925322467138568700068193175630851440129478946927562494968292967973468913028256245463511114761043978618048445130554985366382464652077116715744516853396369621584018634186955420983803631602402890934093172403873229356856666589600404344166394385045039487966726794074353265822864698863177817220188520137669556303171434191168747656294551069449517422115305569244069714127074345972532052604685992487869585212036144784118386960873569829359790243027527776402694412534335212257254950613415810430401688183893010734742300368083463767962249976996773076917787476147761269944723105886442656602689678656823442904123072780050248844977567291065285797814036302786197486935152811363492998027722871946199050886504785917832139628477669933922468650425625779050010370905534953939491686915507932479903492332900353901289075149908236506712125828222305611841774065275929310292081136259007420127547923297210349384059495628170941309658583204564524803716574992314088471822935052144007488451516054233330507952538418949366422934610720701981734456561654783979240142813381374801029262097358387627098955270283544023322338144862002401579554862377889206436931289786172212200828513552103888693209177510243951301578157695800279031603595679820275001435924248181296147573095695576393762266645561350452062731723864394829616420639289850849759947949120606590340732048244119944087633004355016945032048449264875622828588540213241184019918384652056257564463706128477370101865080413239471779708011366799479833449252669955796269686387207930550436867351072122690024517328845821416583661051146316985913504867415917182980919485718417388375591703845859909862136392714122157131040529744650359784594079455600924044869026331275154867214250112267234228099532205910116314320368145188593366337322013621940566544141204822111389764356590264841828197139718072005368737666451232652545797885246706291731836973697920142815764545040688842086923549584242279904543606613870761878672741044202362546983016999724912982435322256964660085795341025005051067443956575675097962574786648636383555327520654499387820124297210250720901057365716516125419190084739179295514290552777504308111636266693420404075347353164215994192435861291673172532942197453148498450423750029779943598583399566909426713820181627136715486516713674691427910803213564913665728815527371801721868683184676259689435748883717933904030001480504372621884188063123558814814004406830118121888776555583957750278004614782363620375004244029326180692077029660968713338473426681532170927735303882890432522040385879238476724355196102044426985578924808500970363143674404896139531500455011670604485345135852830760619938750604266959795881916653621972766016156921207706353490532539369619274736293051886801843596638262250108292946483457655174769865382425052150623392560176804541277276452181610595747549116485195370921159708334610296844432883192435392101406957520338525405523882111122188003150062699902422799328717480850439374339249330130716897064203933690867788429202491828560773355939650659604325803037539599030434478526605679755011813122835492433796460094614961458696523360621428266647571673194399597925897701052164190143614240103669671304239686737992000022760419325635224605140763931991549302391969723096860466851367745319055779564336264369136625375677556006394026167028480051798121704550761190196817565113286978329923509419436870589083275124713585714792641153306175447348772869370083488703735739522863115856508925511315100798368056403660334780400384314056140408841737748242633801135912907084390788338259004182045114571503855827999974731309951816138841706625495443164564887446498598228651847014171743659877333930306930262650438304622007874063800407559919228850006496270100270901137465448347986742364404263118968228060333938302559142145012817760602618172752498429166735319021154218824786095464157180536468668405310252258341450108447371991866226474799869493073591720379098226535807624242626740480356904601160163521617042521222850345314907431313431123171297202363009829135973560272735082964899162703037936428288843125723100603290426515260851792115071732518496344017813252754005267748508758274402655216794167690039938653724538268375713190651178534561355447424318127633010031385644304094720559961434239511046568032337729132668915807779496221384211891642656700091527261074474230641326882512138033406593227319560871825509967097844655647039849748262904179974674316299489690706977433623411168504125647557799091063982735340353362576009368623199662956420170081225547293816123205366931264247174401384308001844862525699325926601826018862824703245020856118981544587773506761694926863898277211657419410116731087255826734330433800988786548393016699779786424325034373040066413037386792965947141954452273144473860809801726470814856416538118321278229455883923977776842840455306929243290491569288943242223509772257563201810305640648917152730296685199589269361285409412662709821970923102266798083564105854110211748283381722061683301531871694190277816039383520932421130107885887966032167061293202846533163547165251515161138540629898059324228560255837790937632855506170130542311536495470314080755605118133802576951644258899861257104821339261762335650929938574287280579240708621335083189810329779713871931557465803576363857971267193896329224782215517402846320038672642363742941784968130034086667049902196115948960910826925553457679162011526113791171008169500769661903846235523602447109074654188751887889370714049161937387925371310424588402523563593656535266741063920233454045557759745478962755583943346723584497491480149316261426046321119364011034320235263270973877741991911832154747078115246172372585142606288175016412701993511320229226921975374801386208569725129740771358402937755843539546238734893215283091114443612937190180793010102573059300456992480399073731029687744754130788146818580766719818355346138920225752421864213843176289561655815498602028590079220098046003699793132758297423999720384902675700252204458415497171626387481766590681908647137600798451696355493393930954182318448980320256626122318241236106627898736799116501767523541225979955622735016295669787027080316585620977424524682034655276431508476583188531745391901424113544084195444012091977386910037493413850651592094430545861844645700065962308324739280657245234154031021150554042997821957536762441445268887234355075337523628012801382862117982569190333094902438605487613736405532912009455806066993491800324607740532317110717183884128347080367927976532621151525759126928790645004534386213896983102200346770536227973052638428962809570005935052873448205112003805325308524847430731868861349611128225640813043758840131915040448170766257382865120124727435126181381406810529994713665109499004238890062370996398666681106017592116445940108561082557435664803473575680802468495899583060151060606752330795476052163431382925171877959734743877221139876453075116352191184902523139085084511423734574680568993572082302343354333276143659469600715551928950475612231663798903632356912967747595329932527710427466583469355694019756442554723454244463190666667497365419847198832927114108155667014922258094608813894690182546433212465439533188704346049403721842874547181578915431288168529308637120514987364072683484499483688759926902496514654807741584356917408889728504898529950027571082097537706584728129873260618393157347184277332284082720099245603672910850158800391118338841021841915563827822646764354806444022171331010556115642932241670208439461287880391330236178487312588723785556478190090023924303799586459923578217410678267789648100221436235554513811225578930508738000034141485336705070249322211083083141816478211248394667285324001562425206814194079554248689286989512656571982186875677916793108072711138564925230127715730476561277125038192254287879863517248330976649692839495423381760536892311495283530432970176775194252711517239267342943505857697963032244459269207037886751785037093317222045321642957080030940206371338642763356317632999730029703905410965524558693163002206157345076379397175648692426027944730819385181772008257022581088979014062596144215248580352223555862635914760913555870179366570445616821552881454871450762021298603543868362974148986741950817091337739555940070418441421002199920041526580883242666476606138003952766437558994123157435433205792904972661167365814011176682570635855239881509138988224472621196022428748502778902751263638938026084755042864705435940314560191907521970352749572651452233632350279330478985811825147933684968455321968481154101038665077747433353996803103189442583305006018989949455145531844176973335201024271438922807731893849970710050286492635768695125661161653607523670769291103329556072394168474504979321393131251609602875251592099870955960717340201549085647060244958586104879216387077041941919473449086430386160663156445004430994453355046547279478967909344165662113773530602772363647554668148356008014543620755551093691797141498589699844921360814164893515078610434252578546887323069097804989643922612673919089935504119939440420277410375818725991264123878790252867673361235254400649189106194844266568258090396153457981193557375095510555723496623764566398527065542267825348671008417138332632116235965550601255860301477732086525451150702077451474196176985752606644366791307678425500217823563928046970642663386618544362607465794978458264979208852917005402572276220079762161789167893280128721273016430601434696335929809226683207337543038075732151828108400269872744473268605517582800864728757715731549197819186054804497447762317244062030140996477545174476630257712887731352985166928733002381949680654811454423197570433288575847630572978175530929073989609405848608696078713556732682081398543418210609142608983820470041882603664803227692499821533257540926621745383430160926490800155250245848016114324124014995330331151518057110570091370107875338777941354907545413728619238504827756449999941026071856064828549886557886656425854019050314943520499326046908505869512699370608892354308432236908506134614089282089150470082120161454221659515643658367294732649808258289762287100964436357110425059566858132734871757212859256969846725045031011092208347129780702088926339613139566144236412648230663444404644894985470585663754859408531483902035832808340711201416227484537027176181816563303569578364560168151792638680735939382569445771607290477092171819982318294415578167597470393876139919536703331439482423870238074401607785382821294286360496789967736479351220654963408294027899448419707118695955354815105586198233344456855233169553432154394746865552388091636758213561136699611377831316951263125533400179315490657415312815049724121335996711708330917954731907000423634534600696278620770838369119568146750044491764910567776707353029380454038676050680260512860974752636803560709961712527547444278869158035371023290388951398183931367412878271411247873029464465810103158115782245417382077147199364330331783798829506528624310249394532589843685855627653411096691581769875478374648049123230844253333342351592962659087625298300489229476823380195655910985530465560007781703019150811781206021532787408689502596444105573266712014782334757169754514847643443630198498602142950846428726849788515873170673680211857692372943730017242439193597504163343239012271120176879153580399693774425203190362927643884747977022530426058310725207257153219092091655615746101142440786005415628082524494706184179135232692901678692899746753111177343501533251650221434341216595881340665601168361344466953722455622230414082130672681578801020239218219092058435117797803137935108838795872554279360798064071469572149319226715424527653146291998701319589568277820637303075187361465719156282744263547162932073039255288739795494016643805899231901899821661963142821518511505070164327099196983534536481970497610091468336411897701192593994422986920364257356242874558692876382234165671152814514321847456086877239885798885399575495363841919509031153601979442173994533532402650568455046316631236880841976607894041736997279009403534978256781592383483732236702898331635717951831893530528140542863683711412698671061712617576771404068118472188590593648639308610432151085513462573669340222334062655573160868035438977280642591693169870827605600106542710658592382581187276125138554244030783077860690771664596138023047346945191591115724553849964734197987129962128465299834166194174514852711784786031183490365603403962141589804638162315868084549519441512602373928071490064613702251715691904714826752579986532500723527571484477185701752057699736605923513727681982476382719979361976096584581140800940312881502386174838549311180448631201642285251180272510795526414456538123539495220096504585980714217131427961401096133254725949782783304472480230978260941948207548639130946399890459145699290699992079884092834909169268943469264375229579658129104901540252875293664678316849410734849537022958376776166209371083677719826881544619211863010703746552562898954316529000081187931038214428084627964141468995513903379360001588361171689639564728421027847826529520991787823629671318324147566231782642379853321844403563424201905778066179478062527273030169074176163270329595000313565966827518379822009979775311262287314644438731622045217775613990499838069203161476286590438024637765535776149622940140086362375502884914369151406890247827263652944577796018398158881899303570814495662801574134739505629317759036400264389029926490713673507732290308307303764738116005939465823073362460113082114417480821574951791239977085704749000465087480070358399620760160231567889287191534844313071287530399268454275340227166287020333681592252736615324672155790087863008722769650721511174959169367242028457990261614031163480217071245769063761886589879336354009266073352556887735021560594271596036443961809614943807679240854945916769212846150650822507693940840938855938151325857533208942932727722159573860905322186271410128992828655493728138535323277974326795920850582289990918513406303805409766531170290157614976786434781159531349128797534614407009452671065954685327399378681811961692409362995361731210918815422842929690476041695191899759386720339081602364550613200708477873432600314542447261758453299475268987275970977531262076659686035621233725214982474817449545289609773334607422876961354421156428948076266021375859549352726667446922653203344040592911300233820336332448170440807264728327846134649559216269126815865315302633320950717104747709301296385622300733142724942573442158212663156161578415772123236819842610195015477519420278276676771582832611660874117409039757257167515055172595730857592934267886753631707586101444922563210171076482518702045683433347604716788231390921648578791333639716319148334504850201422303840763600174072869105579436138338949726486026848103982126449733163206974637147207477364499412736851805708970089939788820293447494168555957847183821639202240079050489608780011634678947468503520438294890086369838651083587675119347339895797324366988787508593418377323803009474428870981822933343834144169308103520249368095606435320601496776644812041348835013405918846562922372777670474625121404366926594629156864999241372249313894456256465125069400159107604493679874525263001372474571550466287216394451243977769091651971394267823951621655124799846807601796940972123294885890478438925982500506247839988937134574678784515887117530608379547179271853585755272739251714597706744635693407152732035343723350191510311996015870104945701098866345737979693381315789598443611213437973939558717026029452333903324041221375157928148961546601917603482489186683456899995610850796238017956155673930802081989840766170890849207456184247848482312011065106583125140924712820992142263929352512879699218061456258073165963291495143605036053692399091886104147389794805631443282680917947180225471040530169287282369092630426935427069584283657056391347902194270063162882051178622089278781106439423337281931367745868114757434550987505849819405291403358572044314897857013999231327856305388466255634165995267017793804055664870034984770339603847324659813467169085172766991875123761201340140460463981141043468744219855737099292551335582556703998786057635783657573563265471746811876053281193666897843586073873918356154906084384771428046813782851355209719626239657664728362899363114316608821525184631303626039797436822102802455836409336166325653357016013194154535946653933797563298563667406171635786415154913640445101257963736345511496473314775020105185460934427713331800819904050638136515805392451050541017482241653978613388724484307829752075727021646382697214986056629804471400542029209616429272095163192134773366664181804415237319176025048128725854572640557795045047930517158895113320387992531059719669925675169574864455932625728230858547642116380667933768200753770302848822394015755873165691287590840994410187214300348342547048890210454055403259725113098532767013953965360227398388958223311465886215575156340873425599739194019649967762426769702346430968188137441477521121310704390716394743345760976415971982457189061090584246260158111926633511377117955268143509091457607636256876663093745177055340128582127207974478474340623465504929975754376209011407412424703431733690050014567326622775867717851668854453357290512931506333605465137850239291796969311203117184615951853789421610297394043008330725407180842140825370484694953107786292908732397412986315925693479776807530360432327692983271327672207346786619288034058460333500855386712006777919319131296268019397542679849666491096133340540577079039298922441921700453041173487748707173122722699294322487838126127155850689793782398000259125857562228926175330336022223138927311445415502050559276219045671583392276242937952054143281778495998689426127987472303337280955983503350863362789564394678187844654043908253890011795324421310718785092888211999946332064244948330240985054787785203394839424248528934247165662272933205680334065498274362240244336336374586086458251152917306604972918878413442893833818091160769607458224805008672352601991123152651059576414703927213558030881898385297145128127159512614228346560185273596795275884143267534879988530975234212920061699386697547322738384583186638369660033700264550932899178235616365608191214903818823803007866036523183492709642442346277147739707623926499025730206108902775542560512809156815519350795743850825185716453837874353747368950919748126661412065229452685423940428699384681059143994000233037204820937804074546328596602829288353569981965098648406603606759273706858164162648631345061110345665492487871906053971245356685254652655778904400469884858672292622146071300222295987003426362236173265679646773604680561859542900795238780836499982102933656535039683533619807043699099699177671527251939530167230712865923826025671598855486754035581907413843461577352070298759094778550031805881556407806865945610825560895612717283589506678188083466263816426523372964015319974674838486752353532484180839652287205586946599056098301424900079158900632907711391103737508277073430120246340468213956727632968430786750107721148573578843215764620827543663132597823177837331570908180511005905997646036785213529788395011508135286900904717473204850669046276700926703463599372224236719545455926130668021392750121219432530563760653041029148373213940069751873868082543554825228113881711292279609637913629874316646112925367882595339087817268286377847475091697491868709630922406080195767791230008180699520545002524603479273145202257569137844379615575128265731747062403694188377113410036304304960594447444370643993600997763029380820092016730114288217538967986607514347248496719214381086370575862458845016650403832258616373827044800376287909880939839117341631647787064110552842467400054576078522110416722689496657997572680536863626300617852769938904983184535294813275684134544648340130328982365915428132923966210630601122708747306120238380343672967180758181491161187118418069960901373476462605440294719975883757935161080310271037499025062275471226027532300689080072161558252655513629336981125929193768723372521099276302708645862453495353402663262823993531696842268177492127269375188324248952838054353084874645034101653488137071192593478461971056326445023931242337354083434723561954111797324795132110219102182356466888202180808393212258446120475583337858810406989081230546964812733429351669955317647094754101776968734414913046407060343902472337179057507819339218066056089802129340436867078568583695159788834730725909853973948624922170077274386002338704542196591855916019676581402192476123211801770043223121726064977667471896471752528454367641310449189474169550179373984800019524196385033040858721017368522728717507528695765518492475422359483433662327591637226343187855065660772353645881304990740322344864649180342419307079193174412180229284367947801792497180233565247403351153153098172731346388059261109241588724882361714952931223894051227820398164878917392310583076350523764277808589498366543459023250075469944104533186108131885029417081602563563652300605948626985539056696669495889658634886841686559100983752043211964059867222523573536362986949828620806431514169447326711440187388161253047567375172227603989730236275110021381291761146644170376022415535992056842871888171370245788800149433353934928921862836726813776529123434701352588364039576219552568463556889688528145097760701879688858213233130361987764886066069161462910860896791084636636358982266264928879851837826274560514177089246614218557964538167047182282166865335029247688933998434054007522038502883476017337784710981165023652559563703593214064802738254938453068399119951472376228297500366337770567783796998660019014602065624432070093276755092565137255464520099675823479640498193450394478224275813166696704246353931636479371762507701733550961782349099297646232424368485136326660493207595317531299018183355833319903501187368552940913164701760578708040668826887928030323461362892986635885968849521636302956734372498680908528499607157381896055621640305248795005918057567865284522155548227372718988772251284760306837855877463417596138355763539992636922743304577590895209482106200837537722003708033752045215643396071960664158375010206832801114934853152311937216972311106678683027498912409917453560243349003540242725522365432281249843328445893648442674090388846718667222086250876299789130473013343079943522528431689132094319238754280985319796927224432114145129177695137284220711110967706522723655947318696441408071641450421014423631572787853279591870752125759856604572135268326105695170957959500841576784958415775078666690065671391170299109204180546232564854885819822544617687131878756795177431276274543214630855637193426097082059296446383138497936488064287085696842908325453935483377061630744870823418002268485684257136703812095440696982497766067522828938553874039060400242634724725286433628360234338377336083965067435691775389170524379110568137364600887213800567592437800013255693201322415027868435941410935899300443583405839607575592489093589402379709176037241891508643524596077680565557760249743716212353114455835012500395221525797756705436775475078671734408396990764470173360269750293473846838358575377575758753677493430643422297292599146916937968281904706719002333951653276822283055415298759751555009162052003056112152156375933081069281303590803065219621398047453635187541633429866311501123162541462259534590796895783641062693647039097214470850648646576662134561326092622262831276208584971291354053939157561432817835021285498512639589845579475241872123125389972837377178169961622942483443099892270216213203934161544654043123407759366133851867456533337592422091651011510820098864904087971492172205773723748035743340654556213981437993639298349702905028108155817036873795310121017456663664272864447468395506181105930139718277475553717088556647661369919327324487772684622852636053239789383397605113273935359142735289733756643190256523471731625260657595555193784044206149073174521130002205610698437522672313357195007400982692309121707345824769197093395415949093026388149294982817429171911630603795391250869318810794712528352517796994360728391412580926810535347591092678986884183245193650007438688472097309549233562265403315481319557571921584316858221382255904918737649261130667764291630770940694662937279101675779469327038765245901629511026490781535731340108944681874028807352639335345223406103997150722175074311491832072678068427255138843625770346204054124734637661186314969606912663464692527283383655531114699355797386835418550475155960786967829413479356157825205767593561348084428870989587704443666329108669207082105441919230758820528269270860404352737623273671947034669416887891758645716078507651637044092007271091154843233363098418552449922465681433194505348118018480073333557030319752522643320361092383589914960256871252988755798607418195881983361292003857332726785113460871108222430018683093382704386853739629878439971644445506728853805757472169650138393773998412680378227733217462493860148207746448719290684447172016332883084669840007680674956689551914625809463628183416834993499935588781991784209955830499573257112156355106090355983957455795845429221833817227594833741632564552475124771979829848884832264257490495142930071504820267224874145735623888401401881639328458924764998743834041964733191598053309965932911531662886969207680582891972182758459195661258170738405676631987702086014482815499555310388107212861865965309763336188252467427417428766307564266813115980969183163780441700660975539499474192832354097643746573487088015368310351423394463598857564674597119111805058796662435049583009301115732722358400760832966355644898215083667253782476740222134022236734300167775610179385043845481893403480826310525730278479238262427192833401861058861580487057095016981895451020770348710524228564474180196390879505515774817262601109299631447247518054885248495191756028059917443263727023791121878112355234682842932311539591847118492824163557196611340636137322015947258282029553334868753956028201874329518846743581827656769861219383840033918078489208683489121526918078122043325590793900768145405528677965983258498449266770888287730529189683009282899420385464041317667853893433807348745140358972030328868497516987181323170165721365878974718766738732266180924278900206593149148656697148159450885675604452238539507339138607083635228351718516700586423196697294656913873536639224642953459616867844437293170153955242367338636569594700406127511618787808394439995680268613978490422987337069658608267733016585792555108253322389447837664802076886722273970301685049144388630131586591919958502800532968383090854022212457391322224356139860419744482063998417307830042448646912267081790029813879077471352482983461625181111878423416944306300670490831977621219621862880111276545678352161922740988680733956207249554199691477523461182136505277451783167343425039693525946361064702959163421785200716370228539544498224409433223520589829674201618870889418264449709185298960884712873279949689281531846379439390053210725595294324360603645363597864969165440859957992044185309792071329082521729215557753559203477184713300327903940699955402835323065382529598953150248770593949659465865268205883261881010486847891264696919300591968464327288474461188087727782499539544454967799504724430784231073616127938715582140012512729551198563907971094617721927961429995589071374800163143043497391861001794278970054331757497314909134912453955264947354777202659326817753774214205253322885702142155490533291467847343349790280651766862300499397508898993984385294805586015109418845526461390535918588387550065182774606657715845773497895452818534296822665839666499759104071727776291523378814826858451597572875033672722907153750259724533873696528411595359555498647273657351606433569243828279924255806481283787502927017016754200300060034671668788747222529746650464084816234095776104048998908529715301461195362603404041347103421677769361606566210869261775386656907724026239167346145097382642845617061567267130618481355520617085960227061818262691848557024875036561200631312587857292468087313580350609080443441631758270297124744204928747477639211162432268958375542100630448814069725247750585390052098179510091791538659910996561441400213948585052003353555750655713551131326105568650110566354929843062559506139856124755839047075449161284415489749461736132100665163640203856150706906189047400450488787909172957695131924454670575440471807205923056574915915624090082662057908933404153682288345051205962166495012420195579156614224677191261742906302227075761361918335672724678561867004847125185177847611965246849714179343895603614834994024375956675814891490927898833892339739849238184279083418755265296442090825221262628423276756346127935774026430211767991953238359178399710512472243113346606019001528478343419988143159279558006327250338001264179510894432308040781262358641112335277966659515559039644846316515264086822249677998234323285476018908506900462209675995436964203208719759588765898229516730519168447337097238441602607875126044982031916197732799811388485940357657945511579457423698386216410797776638051820662229419033390725577374846234677423743238367194234850205898461779412157333161390053901883579886554874343417348728887867202875688276303018704228122302856809871664339058727505329843345869714722452144430260212086702775714025128369392208998494815017706991743304266393815539473979415359509061477605228865792991454279437693055588782615532474469098144301473358941020131500430889909716323845937291135935768028184427566770370070545393917211419017221606286640585281364345759705062934436497666183400668846823196502259963487151924564449507426182122826037025622924342390280131002817932188120627275009819180961911412919620583275920960025825923481372283214589805221241508818597689729715118318435944860580523018872352438396192114172128013080154375173461056922599211328498405260022223965459752125565700172018631272422512303975229408908331170311379781637456734209379331347651874229477186229825635698674890278153488955966270991680474082742062341676958499501291308432595744537372164631557915649879155321506913814206590346498765726000653361585132532241432637220023720695215707666811563967168129513508260403739177170901961338513603505405446951403830432605087858184408168066509791112608215786610646695730985158898809677049963738762270312466256992420081457562491463067361000795371699889688220265642095938852631433312269681964683835668597800787796458539960663908581450967200327813192189813566439031525378094647110648476335511475461756261075514405500727580650345483584348728444714482873945288412198320531724160592339862501743468670074396922726974668390282518697974735185357122884585190892550682010435292705881383762654440198640157859159209355809491782284262361072464668516744619259718103519067258522226120535859721069131633584459676347715239277869125402179528652246317024573146390421158122942888841827304124749162460676085765748547157016791950887124742329511252696444107486696846333631006221830938128382950761720488711150402696989770988081849428981368606147473457644757104222031489223085045490940440975447021371229280195456902057614474355733883259652995349681773926790778470059641025079875625317987495905674821274011465119386070585759837903463678277865377437473344817878024532238009394020663920226582285646185230926180226069319248399248060973538562170808346992261610178666281537255575882292934041763086468786854443324221091103300051850297592389957432691966816507012399597331781561401069682088801220646117873774767109399097131307541915176348348765264562698088672382680404193912078234900029129920550650254003786682366383049924982356053239513786734633205794780314485467526737554508006457992249252398094342587589647883822378848913088562170047088062719869893949522117927798849436703222685674278834240407345984918042295649080289327259607735460905042875494168254988708033164818551263202475698821823318088543957635971577227195503385521411178918904538038620851438981865449885165534027236522785949028896343169251527442856922945896007890499961109708301282241778473370941358390660566215727589967848463698571334837931105063299972371312318602528075195157697969713693666867071528474740308414397566545376422419663938414774096113936515410447701637761086037390251230433627418931532368911918495078733159403543420968624783249608433993821710923995628481359896732426787155843420619071118120998806157199835918455270835958123715720306079464711425339031241782885919298235750097551808784668805389124619267883393487630245857615172813291608730615306508911677312335659224611535993458385730692018572199429776647798540774143832439529117141907414308131394189870273260146650152125651632003751451063081408449323918909296645352736122523894646194899096755223123868416121391760177938062836594015011382950747248965033745694032678514525530589638691361727970508912074651876884799459669552547734713417645052832922684822979625918051543158194194873336377864166387627686599966767397200297164568529063745739860525302048596376828746529196883097222321677625029042693989628482141068707694778063803599786477866706884519416400484828465259468989951322665698794322258660636998553982374478645483855897188363439056451455257216857552273287036896005612363520105446775189860299068164377113162691897448968760442282090732754084486692843634102157635825290430113327668535875205108240315113907548653770129772755006089636693342422913815382807062673959675098384783739951411996340567889633910651128284787569896593795891757149651309612483776962628060633764976678476512719735443902844468432239270155805008060273846956048906307220798931306986143344586607560165394957580161107567206317713496978827844103707995996907120300105991834267823626275524529536317781301553609085033641478476939504144486706863152856744360864770042152918377398237109412701076321826010315325833490287983915443672725247662344949912196489834171961077297884443420701719727502184096824195098907103927000516802365390418047806473516917300127370158280953328273392589121713186806054522436884196534951959304997045113615300355022972074493938298689675932254262674252344667580709500009942453024975136336741076981316836660942263160351660179118970721678525465592153170829744221795773986955018285121364487162253709036206506134228509402450824408967389033105571755601789000986145474996536656928585485038049638418291698881179574284277070915017294498620589638068124040214484538766691032415432533575039194585797039099131687609277347574557500653076007917296683100325437457052824482186269266967482104083969006459197027153125302936948401736195320083718642637686764568372004649622622163258946411527833985245363152503376390842546534039901978459046013843403699446921997315023874623162289798089457445642132149851877930782999678207438307385030479285570553865643876223020780406374266960739877977195374095904906841175566585258821233839829800046947057437501066177337514118186108968675629194800942774289474117132468795021002570498430949690607105841921975977594160706923611139137546570398389142789016477368333868146985261214391498796358639935942696915625524566291468027395301767882061036881992428405399580447078246855627996730725508279522297105080181750539960048856470356853021899853597895348917404033898451034681642687962619282143356646316836048075735879669695089205250103188340491046723846725841628551445739343917347433364466750388195236488200389547885847011926964950695945717701300622649379737895233361992964323796827602876817600797063431417706219952271763301656627525051240316345610968530200771957429811447921914262678601308644999494000499929470713153558284033467901707287159338834710951870366859854558536672476385209994915410323395272420310189890507980935130562641957478150905678871349993350791754801712210200275080312013280695817846517906646862468135289644777614259883057475394665897879622552365175939113718793783390282643419691249879982480972258771975643569684233841786553540376815595098607065198578862447183292106311127852723406191065931372955181533195950648597718932842952722896737902741108144944172682921401933306177293119827324982105674275797846072688896357391664590065051887940480354405890352721797433575067186612425265467714451420480211214995193620290636091718637564538320402459412413317903872289590054372129302857766762432489574816253619176275629618019704650600563584210867616208595651348893130780964439032407777920408720375832272928062033852875886333075285855990123985805666450388434343398968464476619648210566232763961068289508955938802116913743420342625591650787152981215600599069636264134191087059275311726504420251181687031008929517678141221959024956722578677005200741082581966889535975729924668215936234812977883676958470932319370370043723079856176154222700727841010811922379473271461578313321084471386240911284052220762683831602290540557185882750228469348627401771248152749714402345838236700008353094870158983913127244579358407390035355170098888445204581083389046280408050007745973740469724465805967151708463128799638066658968668345956445189563758477655352693175444997237670051612694661336837924942948215215442432949394055190442686068856766437047173228866178254118310511642510097686007965947068274925031339241568201886635407634360441710745564313399771789670055481550827072875969456224942345067450395083426335669368705191283169298157554787493341647967534423527933470270804539105536618098081238661894639222799042764076097889424048506066671068672982534705620168669127882043611279488016674701212774466085752446116941355811952982973171118469453662805267899992501894096394426226232221316688123911646186109212383339122290927698313974186437629908532920471717344367307353471923224227563969368209715214718731245325380737159224979976124094767480840787784865942970287153810496709065860960953719517219767300807575277658376314309664963558294058243332130914632218392734776412938910531892838891114410748966207356328680796131032366061107857953107803086712809312928966039421505033097715570482236175881641566219005903662974951690808118369520906098149896688369495638807813326054349580538637824830049949626323353755784822242163490823731479185374658800121575398926524471488361845799220716907862226432716534656707715480417835009759478663315004847957710859231471415277871056867207304320439191502445774624343618421003560231585755281345226639304103712071247053233994492072435202035618621484427164340453137353643988003551111348714573966340857814608713175882349112257102669112419625582008369019965667359119087727489941762278939273346251561346114038940584186791617638668200592459956204918181054192183713119039125663444276405327243448108500269370180012165353248695744777285247916937987506061297215499895038116535362140464477149880075978407918212784622867708090742642661869890773244525029877966374688063798699773896400801744626095803781467916827010103661816419933679385936548108903593590183117429495484585179294919771759646565122914964037082858864369668767023993090582578185381543987004946178504875707736614078792754976666134481851453958317871453116034724232098836088038962234647961668397383220290941084589696727426970489379370841839337424887521386901063258014729054520370177740284836345320430706284488686482042537154060030264198628412474369998255980524956435131403069116126571932542983527986586857313414155388703638081087857032321838357214703751597114142094896607395692760479030299684124618724973440630649274023691264180010800239794830234333620704685362299745471094784384907376664403685588376235191719573405385203904856075975592128915952171203750184422671656719937284313339025653070376977468762605619460546331709690327521386385461247092933626155182841372736616252149226704213737019361439988637285682491685624160804542257385506674511769501526887225010487193967272382294493372120712093435277032516278391662867741710139141813666836169541311770008792032891360295226156872118284361409589433295096015906641017305574792182751586097268878236054562449846210102863386310606814341886072218928197597654615377162761226029905284596769847310593242633206786422687810833602179051249188031730023594357635087774543453454873698299565450483220745236514135422130787041795455560826507067742537652685249747401619324166585230389027730937309594529676002368960877094621753137332218293562364540466130462960808226605967494162744359526341348252377714426049632714538262025170483502777331017256420334996617069964694253402790346669897449838760263916451943797974379793752680548553664580641418624139369206751856658316725715550438298634262264020687610774825175791432060423939949075681069091890597794255510262048917932737885945490988631526068070291635042150522838600294561295523663703506082383976513507019460279687253562243882353832256217659549767703748575160048535326400085602330789501955933794625181546277602191545129797457523443260245419673698576960749727673889341299643417283800309815689825829756981477787477495086606499908338793979658159302090633687305908512130995256850421223149204011905153075691903600353224317917830500809177084155615660834893797141047580246729650607414118570042925281646953017810932494693668420022761244654901058683227384228433232058840360552660941011363026453628540185868192126429175980694979215122983054379023351871272115254128073930205084233035466859987983983417144003885514492137866038805290979734475695448232825599940687428769667356660343975454406561091341810037358809451072128883040034595327800270262340852715811968115842619782313855352629298600798275373009153924496054344560706298032254374993569730324373990431074055625491466455689347101916457771739521332583036188343784799146597354103384660883788896871654298211096704121707672407119815071334540581718337230257633170431792304224389347195473773421399529764658192240655903179709914714065317963530681496834994138449098804103759925267816102049191209192541840928754060408907061527556786159602917970830789750643896271739338942716850523290610253588177914098927025867854100511686981331489647817045585717234044159336590047211312737796900171943744691169472328025572711391982133957431369126727069734185699461712102840294388088461984679984679155110110991027702538398175280117481437622188079483176735988108669267949952150108098823597417668373282549294181506318329815581809269458319759352981030338179909132449822895106218516187230135223115327744038976560534681029220963882192804916978999293497146036303943112275616407101985450197413405882952254561230610888435184301535765293743932472863254149665786164879122222703096905970044064229951314161062456279811122808956627181873071343024596775807563858671945310478284763000774981317112790507842288464581383312898586354690906497358372787506112567181539977764737321836279163462807316524364139687497525162853272952811230687552096985122725903632758359143722910236065401612237184707584807934707215620363280959246514986320476181880327489206996264567534921405731288548090132401016004716920323248651623115760081805492787061899166464198902979671784269671506045950830120807176738235440093741318253405227788581773578573208708216108435304229924329474335422155610756869998523187209065457088145248790527816716679831624380978266227450930947783068918171988722752194733566391882542798543067206608968545937748392542826244113083654943344390920820802450507392075152390117988505833587635474369693103285119496451321064650898484772434614235029849005309344528951468508591163529093786177999131766413111630172992221305137771313849143585738933137902947035440321589185578396619529536194533906833080578178684922893203189416545646204796645520100270139223045328258958036293743056544899795907229715756833706796482167880180595980079570896192069218257826074088583424348040059647737249792747776811089059016853727015878405558719993637247984394488517852793802809411825063903910998346707659108518367909841839505526601320759672714587337605887522907972031966888899909222552317538556603130377988646686783617576968033638585967715880478265533062992498435499772084508228486097140640768153661311057383964613410757263635673663590444843318920021816834224193562061482374880617085824367884578164355705934431293284662147079634972306634646355767811907108953865908198473503945739640079645423871452174261190263779282520727927844836409629047301747937786145334988887130390717719604643698419110830089496795947672510349049046801185024256455043879893863874603533261217968889326852986343157855838312214230040863900514866797689281367427262441284601826362566115925887515907355411186694020805940582246560714553007306632927513674764576938713236842231432117824389550754908995280955750904447575064102612245754813910111952544277742754859805635971302058760850175320672204915808157834110052572003988198417989034559667208643397202849226559538081334565396542032584941795299142623739781930640302900010066525036323579638789312945351501518894996684836177055444059594346682180772164505858278248690344926169158136506548157866313449121602072741171145050000711646816319651707632595837227505320232417630164814774029930978192069587421286198156697526806918621288713543377742145829367503783215581040773749046840239113219609289495806460228738824428376888467527223366047199151114621656775725319903164576837077557752784178287039960747854562740224979206747849125235198917895689847792591375632067309349493847531847614895943496870200497888753283725272239104621310259156660446093219758330244508070623984327601236010007498386979182943268221955529773652869698265678551029088600694453456066433972532385161837525195622744516418763788706328886010502739854562895315717077604473118168175336320133424372082768432079446416548970786947472894540104187601711246386085307335896631795865880000555619255329320207230533554261567606167504920136359056893954343769391206108958578661798332083671560607415709295437207084296601291789315931836803754446311042162048621883459992917023933278857768979999633180051136178099854504653774923220320790943959526083601885256726420185455080502234913349374294790915560203439008260621680183550314715104534835583502066488741548002621733355662066154679549318961035840583175650291380170470989583048787989755490162337614676336308716771008206404101625338711055906167751658072407151552067136081348396823116271593643445254998579692526827830924571300332022184543594882765813765862076108073075524565619154883410180506371379168898159460238990460614110412596252773166201058361021996585784316160347851572470413956283028932048569286878260355735879348257349925320999999836732365455987184705350322955459457537966922706342141950499908039552379124924957786344221924602704442526013738336533613196107963147709538396345063149766320234137938704116687130822509772896215967123835666625916319477596916039079351277812237157382738186117946377363157210160243530358779715817255186427512577221023008660989378961421516317008534643375783527514020538716776286999044556866934395098696213603477916009202230108442407542721023646052379417360600114132125366462966670013000807688486414386400886960035670297631255860733366294032248203125327763938903753925464210299727563519697208197890331359340081490615563922424546607337546163054533433955170202186574525414234792304940688823537028499727212119885761762134818093938428148391515271834702209511340790977127796617716046203537569098951013486339395529902700424623941669970202903363132022130759838394656391985137487226820395661439258419467675664810304822023847986048591079336099991927299969977689564890049503429405400484439789618068598063979652920649763782749962146092344200557062593169655773625353080574821631432412258115886149649571960851503425194060159356807208582848602812303769370103848599545429142938484896990643858840586734643957645838301566016341563985101169283166555698343774463847429703822965265567875489090434431696650784707993792474517296809317054741631125939574005971156004269487479459531364683806803414203622149323324472486730630889233971701341276568235152610315796543288474586848135105485048497592889224427423468255166144740212395689641013667152751799161431397470831387517394092128702548380671457790374506633771539316966235320728527194842441685347804435543907704255120277285718719716803355757515507804591176958386221008973893736509988451541596934062182505785778850569421062642178119559425901586319181441431500960448479113602099550588334568518288408654706817662663336726415615351661393131606439752645622459843352222709943398440631451786625702720355897745946977424401396678981824259270301750387345862533165319741430815040337770229320399725006242028655213022332095670334206173872261920147867340500551799174330919613128906783872961350040157185769159543751164000227285294896748511633490577543245472384530915052266824741650882026090713357709326971901312461824976288859156040506484336058934171730431033367215123261616110766900263424689671178653725578148109520432086920999050976831044095104333172278844043854578212166390628633232341063192474224739214055076409360827334556397268236759769409856553185552547740201540329929622515398652138703293118737660718679570952407636518306618201601319375719031212608858757899556193064647699608799133240365635043422014706160539276574318004022452711064238766671633359126741071202660088607274564228737610020220213276760962482852008018134935360137416761109278620134236988127840517502362095698177188366997826608055753578928391896666437247097394728666213277621439163606917861340084634535062618336577251120041285108062183316933799653889371408561951862265869486344655396733289640926232167815390016789307432322956430083165913637565753741269287174815145066139484173963768293732261160857835682498703887174356471481715285773245209730853763020180586893665947778210424251224554751332111894649826060310701046731741449711583613208454043085593349609630736641349567467184345314973712454984557136753990018916844904121280299496321442506507893120009929806069302326005605789751816485572552820684693859236655873095051913481049403544775639786890546643298058759678387794676409991741655775744685588680958178930978581506708302275231009083247498935883515580414933035712841685471963119754889946796858096057090628277738801078028827810811194969108115604359839893368571006523967466697810912085664908921201377871241035734037645701781336308727996312655455860970348302162870647486522844755380190694978951126972640644316111055366891471413686549909018195481106281933107936252258563501196301462213026344967744502000741324504362920190446819458321078457947493605670483867427865317346427971775040011096968863085327033999895604072130220563268708070033643886350272133048309931201806388466289269927657326591927642882703426006242728421515869265408012391544931813698175230322542604701937852140554594765692065600869716682745050770153212018262311728416036452534030202396694043315056022469940726457918099174836520348666774026022131878395838767365864563985670251682361726993808113464203129807674913890179527527473774527023139344806553637317689571032952638060009732572918227434964264946400456431026440162183539385219689073791477732429138548745396916283169816886861601157446934065108019134790213363921118951074955742151003608440250384198961240731879807532810525289674432764881593075591258236943074525061445812055929280014512855870342238851552026750667267671256782863300973564912978770489378047433703585140476464679285974823950956173538392990704540861735387472180142697304537387508193359642229680258567110309942055995560655355139937654355725656696755999466981792543567229087771273531556458088633552072177129176249600643618418554680884625379686832485146361472050835235734741674387731406660927308840811110559717260817609566661491529267845303831809749602411745346191166790648418110364325409116457523052047196724767382385435695818760663554612597823468515265874273172218565531540407377630992834840375897897820741625169879897482791441397138594794551097878517067484715715693345600725354308232032209280494805662300799494595486693560322932181287307798880221423213243709068639807510183364418155181366457666113074226709938117970183649067101937995088959560064112834482410863712639716896537933451729019494144594237079004390059821474864355785072845375386508881379316186078959804294157736414467388843014881466168651196907505757110776239494882970758565212550713983511888259649988119412127191483698489228847643628875574269045668538651656549633302542937480146532986675752513195996936413516190713654821347586390394483608566151251282512027293577210830024660580596548408520925175624824327886969036469810592178090876303695653063386196583343585470855162544057842356618063120440810425162325424009054550547223711023831996925638126325345310912114762586885505838352779241540434294861128505355406577896447241008447421095719324989055385996282766704788910295456412697565692237657022936807323197050918425587149182091251895140828327924148620549264254006261825257590731546972983538248571100471772685594138557556542542553735266860045372690446406204357054766404865657016241466001447149755749210480632925676861897119330299772318810667861903447896170509069641981759040528514500967684027376618722956847241955083837573461575003462634305289972114928129227368951144037108149944645892615171852770432142276749827769512969276068943408571212567202483243505727689132152338144014299667724659396104064148268544863733418602427219693475852565574206683133053770587899422280408611976453855263690629673711686230369581901730920661293838240269246140755499836734148515070083144554641405546693348663889116893581177666447405465739333068322726575167177455150937811455599889106270537584093091416250017892112681737079241723330246243277139070020305871934616846006486809515038593344154704354528590711936683821568264784592606446728105848992632428097253059259644507105900074091223817007361463862717191664985937977433813714285537839770188554968579273017547943850831198572692785082088736856813181222967052439392536613410366341435611262548543837459696964362870405007406454017910151762296175169858464537602102863260708074593378069878066310394513622489642885468388246460373739439356815259742769267968500302695831552224595237263930658771146338146294584899841395518275159544154684712243890874587675173173299146211402205569167172130262763424955609607091976158996087200732340526040165779970088813923478515036522470139446393513772316402236992028269392809882371976816934306077940826187949388954452873646007026669457924245237470477026844970647092239961351845864012061936450050034163548219931873750889786680919804990465291299100972429083632852976631789797007844711504638764619941495700575600654489518078929825076982041472802222511139157737618212795632008147434709527538760996712839445786033717370456700667856288177092346694784616616941140433291066771808332644287717352340202491885834396360644040423411587110023313933833647004629088964097479587281350195492814363997880853311586497577566214347533002537596124956057902169174153275551573475273516718067393971060782735446246993696070962631040780574971669548354641587939377560337209585213110587901328110622345137647366768879583355564398121936127374772486134409910082915274990312925973568805246880374077555166206979692114674287507983812253379790468482674416219294001006430389770120873441296484162332549692357369295545244710516958388365945111172357526618140844562968913533567156825673530582291194823654266787018146772394238476607140059361736148804811315973387423107663750443162492915304923135511899142323654967338347677253721583918697458275082506427074439243646239630022947458229790304658655778025086969974197400949469698863901499729628254944636706285995675151231092049387446223002112999202141636347077505255025848114630401312508803221485298091878582244640876335618351327749442778331631337274596946582867191498128291976101692001580356439281646358763896753250209147649267605877798257166495906506718095753836450769076084212945877087712328212175972849564692048043732606672043834102306620077641665761167739862172247006771091032664436970827375906494560912884419853944981482723642951873631671717659794741890997348088664936446260567550249411568088455902434046111465276474837397390483507797092635639373393746127122495033263906888992362043960840110897649736549682421670055733085020876604264526952519914303259543609757724157977326830097632742820429374386139460219151450765416406508085834139803831768469634148719596739625335210833626787938216373339861260378919477305990273177683040834757858718056722189803842498844318086405468385592494469352178232824374389489213511962177885957857524801466880844223018695938893101588423066288160830255510206084628495776394997832955427162662111903562131617802634447997383021051097928454819298090097109347289394548005317642699709059494164283952042600734361331389918087062255075039406929521108848260666710975898492555407967528268978607141911474407066795212358245452618884111480016946933327589842107624355494567524390835705893822451198627601256047569133796279264470959708705036781267386294689711685086109634813583114182312464065382769863176419488657562160769623293217241148422100296218106548355048564568419369003117355170489689134081173992908625555120375932810213008448547484862856380230664967752020625590340059720128912028672149596700399150208057866760839690625598887492698245645649279927310306834297193837779796738670318584420706845688718695616412958699314119529718809248692094429084804892648393750839650362523377407960301246147476962622631012913163428409770940494573314142607200010137415795902877599200305983413793474023539436680558207612011070544755505746514615249183806921631152179680656242064323059932583257635723794701763168546050650471454749943750591868549145010237226409938146176222843764885774867421081085530634780789137450486405586955079761776813928965177099771598344471244626273809684481379244130610179103251373146850329938816921162911336816351275661301592392641591441559663931851625334779762971251983611762802612363537390223549179699562777904119629643077104554418464947023618923104133020020894045307577830240707530507108268878058566369119521606638613285715343832705034998380328539542266691868017529330682473113284869617529919187911872117226518716114879423548999514989405376660504145521375872190668687966747481224577828004308629071168431750791018043524962066485240035412391222123122352530567426603656728153477545496901151689398696834513110725321375428670405875570874913525118094963629880780657525142105060207840393361299087146583193290627458064054562323835703868675432435387731484978735766621395834049968473537728998581182303819029132856934079630503495752475762581218450015932036593209419027978153669754554337812012736807307199746250669217178294291442628551081352146952630407343670293320511324269385705073995085940233890795226234519090982199670055292629412068589532062958486100036720908074799281676209111246885683091981532103885132384291925351796116708882168601524612976298101875721744540082900003134322587928856010660090507969905913528046986102144532993352463106075067382641736749681999061223192207701577800504877696664738676870850804483925557570208060312828286473067176474810077148346350711047190005919249683754684319300594867475952533293308386234225088798156566286132865106007438335166108218142602736365037698826895046178818634637239575066737096721940666503143818782872656468640683516738946825212107651297280552044235532084762357079052942937842719014649399114944552463262002902821804534883874765464350259730347672808217025531733326174025626976123921324436888597424298187325702826045815136899764864599527983477970912059668837709461548704683994564585051734097328143900830179326310372456523011038325838715723314330282879514777985858706670769782261273290946691393372836559754856983319942394960943166004734932264464501695656223177735981008538886755105740394042225884708581876076837398595140999430718505886109052643287129601923220582889923075641612923902777751227003891873312852333652525520341113616282360113499720021344390552793395479289944366008531552575716513684060722690453449040002624709635995281689390878850366460518734429490816247419704391996867760511946478294131606645533156684147193777638476788790590807487481894090014760316543705781825147680090665844939866418612378043683603642819066129350673669748203380670131566835844302402715978916185776970668597495175920955319351096688441563255448792809170982956160214783397434634621210759741563684308100348954346165087596678202705993474659063595745724895824930852238946529529726842806117999443440967628821716179311996438752293604402078812394223860856634936549962227045615716309146425974486921127257330326952785177999524119709238983301195307215786434936344840685652937904300613416025281099543335617223095733221428522888897697442595655727444786537196462022849169595385801394575558613868365988972644467912465362933037200948083854810279909035162768618464268011234609762568624571702754752904575591743495364138826352758288131208620398004242037712212821233718944043288663573184032436186247982027983192875901249845187640606380172813019826921296878479348905386288136395147273224197165244546627531204977219997542038296592284684138507359383276013468509541756611800698147621593406723753692763259126772271342489033391569379085870450038973815386305576523327096850785840074515851384436435490724249923183221370998943740512195807621192259790748172276920422038675145351451850453403754411773832744583772308289949297530079817967855019197594497922191286967653060346930459822957912904250628832016821926887568142641572268581489101283862859918713286550622497753211881062409644819737434666307096222075137691512342714915837206231672630442057124441597822198976038184790197109144466729173194070811342309545659045200525867975067883330884646547814067332905312117415522898108911955488716772759949067744715728050839729835817465631326104700892229898210140472037753317948086942014057573939223927051279167067397855210706647010425777261750111909086101674565362920637257570733476065599778157237966702228021731560607480547233150905401898537451464267100856195048406711502414710081574975668563451706898992919197812543215305903756956617504987776825351155003854738841967348877553860248974525130426702135660463273324378398643981115704084079897028714306089101621632724569066915858312258545871413528341290338699078954198698525667004941451703791586923457349583866955244811233206428923243706205454329429719498764333635016581381538688859617452304976006344421841784651297682033649437520892245869135549240273275726156477702214322569164166586267731562477027079458436114480463491158171254072855071363239325501092570106665613060064632951043542256367158898027960805356002810543196200261034009032324754904550441674303257119315347297495638426385414204907748698527886634429176310706831720478907379038270897951984072446992368756413736222214938053232832611867247072631382114315881691793855922513281130706333973812062440443856749043273115012687654561960634772958175784551435741921428635405767165293341807659510838242287316049299223833103853749957141561967388486469553215002825082419333351887824430626996109589909336460297761551549099098007327282229835959771591888618286362500384320367120076109044713001647390720335153524360317069287159004787671990501730471948008239309716183761011330966281921377160405329621003840059675155799983966213455412968527289848533689608155329159806162426133945248844896891756109426690890215491959457167380706515866388084252168116705387591277637740618680408898384893236051931269794903997203019297609326781853107976009893603961435442888805211068009439698007532817828235254926826151685912683823383729402734244412447520656314986496249916596986392477720292422337726077058362784302826248078439057300134780150868295889883369920214198578051479826589082188579228160147038969888692991746823164140322934320313423429455336729303775118951648450092563973133436230462814226608823458307549636475375236738066484003027469083649529158335332540213997144497766087472764106138667124237017513585298668482285125865613546035032312057159449912974533206080177127749233469825680979645587605095435714620011807389106512067167229936579293112248084785996058838684106859260613456303348244143169770068097458615314549831601608932901588050688016966412762633153005327556322919733618325529695082275905531794452772567839140801126238017941992643684834313842237561362686166244493033781898977199297408983368323813581415306382639355932724525490638235240774728152029918718305027191910390387265614913991996591086139805423965092892879759655335997717252440306739602953944796418706939655014193061816131670815099057181584132721432521150068519853007165541931024032726486257561161486929644160397815625412958885122298315077158499332987758319082918152477116406149825197362054930201578861535541555103036987851284381119464068473541385296563942957017664920618969572845846753387749971803817946653170442099013788047795539917317269595647474121919980969081335335915397377210158873104483765713854496561219881808181140260570013187657245725763359762345280370879818402442817497753601303067412153688527677540936851155303695712006608430962825933752634040904238044330675084088564054746382711474880299988239517346703649956707773405805047717826264191514205183672741517621087638898623336256349828474702554050743525174764777545063484370268097174816182728731998872705433854524466993060637838916161274182659266738365307923326895806235389038034113983695317189712740821350358107632558445503144568456414012740814460086979436387132450599253161145631724072647378972366134993523301262524716844507236043338415988440508040353092981990219696055670058174636854889711300623552635597107968638471906042368145238713338145776754684401998627210947099011445246412112474131185412703318784415509117218880623125349178049164196600533256094368248895290212765104673413939080663770980929588876328623761257581428426681830493912075095419928779645095823219256674207844006790384198206918202579037032691636238387799013148046755408748428177708057857886192383375623197083869343723271592752792108731876083565013211531212694795323967161330165535602215511547409883810272118398719019518169076081435213606420415654675471096496239986972735109586191237801149753092247907926493221577293922526138642689710722431335807645163622580390480390566414799206242297640378837854336558098064873296446890813915909969584990694875621021844850694211095381241015689388956616996023123944392547844225346461875614362770157305170649410227399658723923259468992935746956767111461868265825964650049414930842789679828894051424081123911974748299900822969194190007442109359234458578801165363786467433889272075207340390271025177491992462965485760139787947345773855179750046753277920616227566307826800550386351755101941882651122463149098948704426458097170157928410967069377122417090262808994505855364046836458058972763748019888569678144393617801656540281604442440384598382661284522659713816453033744013355883085890759828123984405613755577670157866730310731587543152663573866704700397727386279754843952534222330335442601485695255269798980503024661450682814874834908536006530373840896459938782044892508020377215580272760812799526529268621764552460889822505833373054131758635206940339217137388586618144832376268895133591569079548489239372581765426973194230187208063204704142623903737056758113478030959492390714848478564675679576465322637323086212642773872183226944998909209617968160511495592568739255881551880135089886309813457714475842761467447751748438778656827387722842988393632463334049618628490959883825566224801505545790110816196090102093644115286682730771558338347297114860110628495742177284940437469737308814117385062842590232672267588515103942660650353653725900917372282000297456870765176347875352483108271653195883324440071010491364411058076852672851776362697236948846919803497881376298241035309794756623937515399219419404816501232936750146738341615650872718810367640358893508582579009008880461475676333161141476332346517076153085202579666079664119551300737940109225929757529476031742654746220935974202689925942010397558477517155772864734301949042120656274473030051314199680718224293523430970161303539249524780944556213310093985232517115930418350877794093567930114083554448982883628128868856766490923368548564831774152512785371860168407607478401427532036955174737906882503133121053783794860959858842871026246804772439160113397748099429594161564503260138761617305418351304299890215930419771913776348870667634398685347283464757751102491580600622255329082223349818172174025837122109675294938238175835504420835505099866701287936747922917170005622939402959309359743453160412909177397742007907012121874797519456252763777746162502207901138178562209707690682164103372869391664794428755124490809593875325101969810103057909834657313003460472107118716750664885233484386393976982449534215863704070833272236062725056764885519275904789003237940689869657642902410237195214316741358300887833635916616489489738380950102780666565273895125548678804011372611219110673352683141336875510213080313113846748223015087240942635893382042092972794280680210886538815559653266979552076132733286546181822265374220485444270937952796333229887761800146260585288850950456568626368898761096396748475977555414331575483922587110278208103825069871092307708807706935833349447031754017574123508971341863599546004983599069888305929310367783038752671458588081012653987872910592945981045366546319641754625132014411293598327947674767120711657035975406493084330714521002112001711966933909140707451031525372653185762599774761080051405500874319470609536672112749778660903619417279464404151616805876300897368796636560737561979568894669464553152756546011225637588458653454178296887235441504896337278922754718065052490471617709676437966843776646477557667731618752040794580587141024874848466341483151470926467068945648038374487846494420566326918585257782106036304369272893998683291836500156665190024461866611379214364320272862980182742596138313515305133881167951882832376711540309204523551291541701682461437670758938440320809289638847491217984555421089844525562436530165413364533790995988869741623269440332447396679449674457262716187765182616745561792059068676606362715508172624224645472860183776673116420244161635178710013065210943147833200067456087068515228213661184357835711116279252687469106482262268811635038720946392082457024887825197153324176727536589197748395466396041829307688859541662534537085439871812464824706682588916448217768795304387797459494786445301087735026281924369535466757577179615327202038846692048272670295793975493260641638740401528931112555574967387508151021916730423516585303421327544208412887207640112711438953069622991631653747300097014767052354449582593759260364972325106873945478641040423470695710618516463803301997157482815547158240610197335655997018529956061371592839210584109165798231017209901807875508676277181060222891956695211109285452192921429767420479553306267216737420926922916554939449984213427611277631225456975352435313103296934086853095684413534089526425494705587543575755852101316253783553624579263307777254471648240238132764756035145880619458773130092406772213704683692287946365659405523092507451272864693050876665428879752367457392981350258384744642852992195378494325860750081266385805755264048472518508980695244859181815165139955743427710279701472150411379147267204808547557943099555109601935875611161675087789582876759300791726029862117055392135187005953388920803196046389841366449790306049231309253527058803017609406532376617824145927942290902680645275454969586931093753988920574399806512809310656127274268897047580607435510225111695407953513347324246849586031162876499899567750383006306089170649609875340698770570594595693054762367348027118813754192312181847907549009572997874857892438191306098315733428303535000713136360174327064587169271084328301909514085055520795843272499954016961231011968955968527475949444629855354470264887413166871163361611783082614881657834234276766374952838419898578534720965301996139842329764671845760110337615903472859442858145191871806663534362874603424342608712157872637583174947658621206952863070513707579990967120498544106980511278004930802314792917477586988630181943143697088549827777718776015389569377682407418512754481083355720961927824477246356049488836283605962197489304870436436070802465977765342518443046499450752755828706810854346985524643328957279205924501960155316383117219536440879977654300763802456453380490820811066983613157728788526537798114784161788247941988566835970484580134565351116637047916034805636684153555858924335863578330759131821343538093004657535105352336220754191093246223862090273877756220535238303050003984183881317023944551012179751865451997458291992509330184527161385703711256911573472964745865163977928695434348242696003243240148623627498230568943321133735536608637108075696018653862148943306023193696122426860853878071081740296936823116888339434288560879222220908142458049419156562138189429882018458969790746429047049938128605635981139229600225679901256153287673963277915589327160133642899874645185484194169520311028895511679680587877074518733409027400154879491714319717798145440470071380518363168761136840377634403677013629823498845275937399626228548087512211922694697399218681772454868790884122480960193564284119359702227545811579836479969242013216436390126545844154734342140686845599474311573063685106510720178411731562610144277592877200406697634189678237942050727524164588937990777091107817276715681532161352481577698794529895255431475823678178356287970209825800438453970503614382487411431586552467024502197269042926950438258071505614656564092334836349062986291514042282943578082542595986641561115421796179696610228229422695692310078628585179944520617680168978100621061929146344790132027635579617522048906405692304910650495733960956538768022053563735371367289082061254138648663273727169649329639105951629750712680056779205749241749581535824667333497212102652247900533426236680104044699147331138118373183333087899189188428801464614603057567704173078220300618026875638900004619174100689431511875130355497190403274704592110316533541637434386135079248976184846127616418050679416761289826267359573436525558314821799653575642667932043918154082250426718902004933529353944025285929981305387904002330610239361888657858033640376657060923804591771661353226799399914510844364512285014933381447893063205074736343578807339695719567590459846376665577999196947937278426141615935014269927750830642129215576771737382490686986082399020289251921395875534323283948225001360020265728245967115541428500578113771784932332474079091946191349070458658360064036941609577433998325339640060206557026752278764340341231363663215629935273799938257292568181230285377291928388351263779957096220973324822115846319879049265849596602409008263191198238447381408760475655959264701665938796409206278940191635973731337026051735525581558491965053732089028548034258117306017259493616914743311579988092799518602916939158722715040643912543517734383720629565974356556635865767034343031569162008705903966537343446414808024029639406176166769826051040538271063558838556572786886881202758161365315614201673091069594276010876557969766988428429295867448767378323435265978602568418650943210166469021131258690367888248591119357244268208186093694887302568265651675667729667098434827150424067286858546738026545888388391136301666502667288774877821125894714140351342885897765098998412116840421954876497807840040704094225504337655272430143372675828077487687700601590267175065983843915739358310285916021234021370437635642676816071405685682206701994829239257910201789157235573479905285040607636975469463048350333294390164783389931281763485715127374482714865040352996517478639858892585866521148123977373452100693191471113944305957748658816224444546264690529339724340830193248634442380559406653824387513511125123046528226109449646538837382591865845310763929200437927563064954842779690244132835763067467001112722523995224043871942139589534311801301459980119806032429129516975615938918829053840790047615650539666912337341446026236750510425850585261086702546372141858559319217373436628795590187439994266077502551104653767742217932145245344723780877356285175549814348676547575148332616896602818276287378089982960436018020300135051519088727895630957352232954197407633174387873958327482651092320661058449887491843916488786482342401403322820073496172392393206570993130466538051297885815641800921853666425342478350058967861262099580628551154902458216616992864965007416284674989136244556186216292462459347024031268553539856005476893063862738935804299553685630932810732730910000406675948704789197821052652272850468937633061242795669502867435591134150776485605290050631796876258377755117489616772534284787015556492927696769862756789105152499946999774258873221661320346093382331745396412955467105585340093296226612513709606986183062485738377273234335726251147012447995438057178040867471584977520098638897911728148194029714881896499836555934335849161528421883732068086713662843513743260926941981972659298266080998310188497393982832032566362079381752103396469100711967785604235858836722588826070695865889764572420527189216032396881304994789056528887543985573096925414239428651597442119618519306528614148252376264606980072784037626011424579030065519385433283864042694000286427447451721666788246265997348874943200051030562261561534784100567047522868353048180045018002402841189448582887690301163648414899964797398848622309969482574969164866413426774974567685897502359062338872832788773694802735140118942672074533411699094755065432463398463429440194007636698083985406514122110504796307720593881457984309595605217403578927410591739985854210762879753229248222317957573417522875041103898566731778087773929944105413741613182981364870363842503243992978082096306938795660901463685103924703982827202315445610082955262312993559606655688038785356942947322166601154782691174993836318298000915713698012804746413896218057592037824204528115300626579974262017875653272878937704871663608666139141974116674585873153807748160852646959303389721771656460645147134387759332393645612782432515502958148791180790401691094963140464490244388979222654700358418296506367057229342811155974638617597802980070633789194710765636288703838750742335254270826437089931017446104985106013433085524857621566410929279326877452686321261252101976490664484554358697643287670099766680987215424994891469092669692579083131714859594165504304914270979985060035484107732166726269129781457363079620961605461589752591771358192317344507006935831119145407222457599804245991165618465427978585827730345902955708445716706189308336710446093786143436646076533345373662353002272553070948212820464988290106166467543177339447051583473581876576747947559839639398658302753692090977439986975368188443008207710926771786740011156433610429752398870162877730239501458327873761955636066906938132485962008490748552625426939056244100116741900737555658102541381952078394139083038109104583917889991468097272474137782150320672323751632867571558032248948427104168189431910530814177225606954039344079098792244689024153219278507023526795782232352101158506906614437899334467525207414119778601318984574175356781787408957291741845131098397119460150116880536381039632470837105868402415229925708494219538718105212209302310731325023125155207413814226280954836723644268100875651633284151529976028233644973225207422963427164902190287977884918234426862394616796106136925800633710378204720873735933891126579139272078055643329832861860558575378998925205916799061295587158943658720922005141138493909763884783158937532593170992115075803379506162765211661965604765871248978651359073357230802708772684426056933417660825048634220382001507495131200213452696144482625169175036315592742124282720373989122256677684437900771317349701923695507490312228714321628537358320330297018409804438077121791649154843030045236869433974049987939828454974359951607769052254828576198512761180976942492754023833177102044509913859367641859411757981103970783229431824872863300521118230540767150377750853230928396940649008938849987964706327245256287093427726190196782171003424104136117946807487918835468978487589964740488432397777673276121061421760308799947784468230923327163853313964515736426947513664729840418013236306606282788133681624257304988920819104285568743279104482613933262012324455629208252473943791652598825559039328030706935713537234131811148516465430122612276415644412023271078444283375761786122616993459796660700042431420740971455526756482632499440834976973871313807085117860911620634203571269989818937074228601829039655513114687444428359653437083006950730723705098885885054266611626536051395042906437830290007089383712062226524619022191267116733334548575987836797126995928024872222222388998215428546514552726641061530789758698204432003959218834548372476735372884477799848250478897045927476473157157570536386166624245197648976402444994204369403187371633071476371227978380364563528056146254925301143522458280111750850730134656607493467915136266528793573389480525367550607755883684909930939038345200626499148536232995642067896011190450956764059808049602737134965202776548454690713590419337296673567329794589982562530869890224189813863796165303464553251986739199580035009139835303741496646501605620843946870903941271483360274882863077923355956413386765180314121955646886667212938682870152838872371990603007106017274286073576545173304194521012905747442209543648224735347735641372340325689407201431583087270164449920276165655665570135579729597748776622079310093367550009641109854562706454143610534322803401515014559455400471194827394505604793610832415292060622658348857152440905832991316144055950120092303077413058271622705446761701132453972356269332074396496148422077155147217440012798848990947722389375503080459932505760216656109396716078896889782104200596566117156139012702616741187549603289242502710967016967110920982209917071038959785233734814277729439102900108702491826345197417105617317127917942562128665642578299921280747057000105813766607245484601115714977399974205381654747496769609978527474275603182485300936989866492077180737831656097628076800851460210831975741564833265508355995064954679716166867055871787847381810835787815995015125986266247981112690743605106232515705165492222050760090829250040549916791521643316591995385720180209949786505357157083562986005858334391382227717556782331132903107793342069189622429364217244889151781581241203370423820238821958556534846436662033579568867670791473096013415412053550716516934564862169899565628181628922411301012436050060389071190367999710612560954312002113504584946565027750340403044960068808792173580790693182984430065865558946961160338744438879007160211566980348305095180840204097768647464868045774909834430660255184720653170184982687178210963262520752023942567700475044057573899805931008858389279299424518599777136283830762887545878793565473459848476141676185077606797810202188344877442995905945513851833126911689170428285406816500115343204849023271647867999475192670441887542073347057016373511311444266329334001797920533057828343792388213655258041803014373823995852125694644111418394097219514819040223997961367878524867141425142269697975842684591888856106867159640000166973470390172089781594441850320548352672558128978196366852727523408506582514086311091530331751581690263710388589175122009493266926769060716324545794489931225400360222414896395097719334715467173153357046582189821154863251272751855800756586413594257138794723703199554953600639944673398448193795141769616457228615182144321734289551571600672259008293488603138230308761502831452574890119309162623502436673802005616735184385967312007774743018979110916407856592220206234476794796629959811876150931497018719026180569212118660029415970763503481449432463899604867672839626331360251510732578322479952633525428064528313235574797887563036126736802985120946364349492328028462463657060188856012118832411522708392853924287988787703623900492568130817835650088379840514530105041533490447599876897290276941040831793745810264255666502665337430874103689022852641810456747653323503753518622512466893002078390607788218394769750766045901978625660520403626960595437309982552918548504265987393365229392343390026698731067459687347120282671471121270706054852710113558231415080504712087358029518732349315323779074284340162845685587789429743826393618910641765589639088311483848496392097498896681371304465623310553524568600839424291944191353655959498879452528905001202932620364539767161218948225681224425448003234506289990869655359604365614833520319159284349927998149822323981345471516783825822037162699172933741696281423586219098901168081304534683988869994809708235405130201734027935089223421503259476935879614016768663762401588394185032426744415997700561526466091957749544535718197553147536243226135899068894108297653159762067346419474445075302789075869922144226645017318405615008361455589646095127875495952448188145912012000551425189324761916362237334874099026231428557585792223540803864969345428748467146188428760686513187522032721927780970324985337993359816202047122320664586218398596308553939920648512612266354631115753796331816370200100719916298353046170142784327612362020941564635495441167702530188470749361522670398377748268041813523941163021186578725823394347290500371400193392893950165860862963125292023739831154834352898513122565741787732272354678141929596410739741073085519939748612320575484847569353849318454688179941393784901694455424156340464280374271648233466011637681975421774969776376195236434216243076918681896590209312157582585014646016442808096987470361807966584422097498999786025802247135278288333248806692358755409473882791364542832172385452586985419178079164261292260967574412746840312716508350275012478625648926608642163605052252180383171772351781149412238801269761198113418883912878606465395426445298993293878327527501942164599477737179532406267634815916743384870218873231052788762355854227094793163556493585882873429850982591486204329818633928963611448724234198665027634079769318353913802536828934095910626973917437887576736485453030065003095231934584988350768789616416701195466822263530980418846543894829077069196510911109480541426716674721519504999181361365576943389099481258427570284076395891336978084266814631475688747934733001658861664171971991550902006817618455742265512782479353638714384756399122387188978607937759695243170202334729271829815160986117030281734900165151800443665935483311399110465433476898015465011597999684987832882564790800591385545697955411206385687658626711632762747928491382836939327302798625067187826879661610542133832423174980499304796766388567075840863327378627767338649756650644870365100452697297975398232451029792904389727488048897265679663432170739174238544436509467562757779063262832827228847130270645344944706199936362520064284250638960586855809946014144609937505618613688684106270706917473726923402971960180537122479999535833351297040346156217304998864304063237018659272651929553898972805214886255946734069693354935801969472182634381233003733881276865217341740641183765753357085090060270180445874309587358247179283710403519954687392349484355609386829320515342081165732500662514018321281247707824803626133628329066477311186858719376816559017361713788754873273443719413247262526192845437205254766345876876962906503632712449866954163784037088780511385661819430694095652063195646748025247056893731311010072376215936783231834325637991751432179677343201897446705564960637926649781886405208927266054115265926805925235942628646259367470865119858434684513028954249092005014930306653440455367659581029775168550311548467681063519418710571780047384676678567921508400991540548786604313849448333266567666285289227775671973861128917916348517533577864347462138385215744691316134959962878631951150934560760648497079432137232947411403589490952820774381652703828593889107376322192889471832207326538408569565414065892778792826201990240339136899299395676894878172889339319152333826171416395000597888652173992611097789723713281813835816311576440042003960974054936783374722829088839726584861895837681551806947392468062510422411136654659009435457664328926392082412567453564385409507192011059203113248421960081958573938549081975160611740596110406754387319188960386338452983944811586516047613815670668453734136765696765610793098252665982830930493440159296894098287672300119914052678983335163979590792012018503203376115701465829954973508495665242656936179027126824248848605406266119740915243276060051703341073100758672746066192637049477239594311577005446806500664661255697404770889561168951706376911060163004969996521337720813080592419022587553618045318832872031858430004494812774548519853070982757814233831462474185642947578090127473710633325281222229272270979441252737069405965585539520008384956487693912887377058060587137911021015403597399005376422930773493058192749097461783715978396357213180904650509374574314853199107337172301325763468188428043798331598512999471730149588031029232614249256854302258547717309054949973049372220007878084131720712501873843425815792378114241145112526022873613970764171449348107752805221875750163073497516399763641471996912853825562862058636295277703732206784058204204312195693359876284012181105857008490961105805809256509218269552301671817064450937526923006628164067501374714367066970939202686779409787955566317165364643172241072098721063965789390973759444251343597475000233393783247634168458843768750418028185456322909922971462949988192903051878676817654852129727987306078571681384290600239417547452607389025925907759446365904329003466553579477181150057805011859819036852936600352885232830763421751954070993778689307588354454181232323914213440112521884724910849249814717172879298269803257568123252658855243800914681208652425917206391402164127107854631104589203780739826107053762706599202748308041243733141486178682579756103109319189744208033130874180251149897141427970947391041174355392304771793826728319146976129429274280993316540544146767400713554164107307726147595692161641587487892511596730427054013805173136165847717381507021581762935248682689051786875168257615872774876566240850809603779014208249891986777648916835837963633111016329890043591004586474179547412653985708611521370562213549047641328815271844835381954805227930282787173865229176243106880483121376181975096467236490791001467142244977532779447854992651618596738674034768793408149448529085949650809679585244537461702221779653972481301883346697248055620327142418460631417958124237083874481858827020823831589096796756664034418390375968026899258924025633425046358276410590559011215606058156912103340072824028563668277791795246316414555785962891002034064620402080100747698834545106099929310877757692971537646603261205796754911769372212972747020461466954149092206320304047977389955168073286003603539666347802577309293742415403922567080247652486867286666861037409428958309998607245641926336238266587530826692326573974551414458351974878776196724744786508546942435371309219879996494989258007725090507964140297596060674938567260392641043155854728000288446475259944224965160058535485301395725248016456677201333814009381537782247450879185660494657779047147693692434716584037320473439020947049768563754571988623732657434220864495501861123913663472373867706928234745713732899127539280851844551699765135925667251792639192515239171125952249318796164522939824406264555126436186300278545710684256367091901479381434171012358971583664850090140911986463367656274021406976959572956563003703718646228727713406898869548287904926585948348006354976117871439500268686459941866530258962209772795864378076280902290632421759695595090137670880691291108004976856855270944028895187970857253484400762647785882267662135875393969466965626779901166191703547239861473342305669033026269423552387946520838534767475371065892688407990155383761589815346631264659443550251883168984545891198544958868995312823445848375720444174676650749897919243008207692396818275838370165980066655550306784924646962153601948646415508561276390965728947882439275128627151652023608349652132174242720827662607405756059472225309451553045306640241354997367885058822599243184585009987826755851815632093655347152069468039130627763418619854930483123994168083981570722918745459878983014430129780107241528158495875215494343513895257871188727679768139478889253165630241857965813615850740922324606363407179518586768620659687111349588005660355034703642118603795816787363136477372310989620213578108082884687030920941968831575384012862339409663172460081784277142521640399518156499157430339242027264095027979358420650168944931000413137490320306472012731954745930816723646013131184018888431936842518343767991239141348103310433527943270687084291519477359960717044458141990977155807265167834525925363480648648496228501124614481711805071182168589711562798672887588476571001133882030321122737686243267106604008533270348117570363687921785248429615139641943719675561860786368855721713959394535941242992901022936467435865497723185715019117124531432033038925868698853542864167295191267341179386023402020526389493640851306019348425427287316679818789289742880363700052974436662309599655914633728836439494529337587871678019507235572134429185214220599993364133350896275080418409533609672112825247375481183121438530161489199559112331291136977654674831735470651066476119069050903190047690710299404485310166620234186761075905918564044478220941636752569143060863034647428826075087161269969185658247940847803013384852400369195327810084324679270769001500637839973255578316844391103164512158161010316335366172673404089625721029650429380262464493192673970332277906277777487208605994506815583888004255791097549453814323098463290833579842788036456317444933717943899903811560987756134156592231813041003358288425621664111785806084920817523308816572663634423399110323328961900709710821093734036999864251148918756659291898225671265091161657828109402128228828326998792934638250248997734436495704575678514576122793031629190425343146947978521740939403452140378976108789635314713919175479628051814318882556746833644532131897532299849057081499373700809718661398661853318082785092494698279247340434014241597900970789819092414527575025149566937661343945390361240683036591335129927436583768445902832323767956484503092766732335652818421821748014630323622160413345154405508021992632315166495189722671698031094961825597296738415743701043613047160514698234245537752838262385574241460744344300893874763642176162347726853106023533924325319680163648555938014007970408877185753581863483474504543055000557529832470128894459552598273068525115612442636392094879117240746984201340639623130825755655434399904554313458905850996771889276703532867560790981714477051957067386157813045987915606711168811450209913603131472758960694512421253070906270547264462849363008597301558720095961179945687017859205171144000263671123700200738764517259508212775694377117645765547808170342495692252630224882311494491203477070775013987112576572134801443033721479761579225905999647529217826675053049001644730198479126517160908120959149762218156751224288985098323669052559140649476461754592784981858278458768590773405814515766166308113775584506769744405585089666426458991323500859222979317804220754550862015364602630412539297796944076522670014073399263078686306523765685558913323296669350065133094371566600172539321559033654304580620371859430016313306959759211281700034073019554989500940526476473229300112210337779879960691769942113173465437806086227133703557870061989753046498911109612552525280889437216878307876893951529157099123342699102776449825889955337928473797318789136226739588732848254491553503082739299111936004875410598996415547472531983552874134497249193029422184599224365165650255947681831057389582751964030664415486794998131926580478568441770437246143502406530177265516674287915809384340194406879888458086788402697829469254186693433196060888277338861843257298435567932306084228129814173086893436968750829823799970429921962222831762415219672053555871836533672920127474982577520899907941511492370019519648874100245370475773984558568005626219941754887065843543793320002699765647628007318384182937680402605635207563188019717185823968174479198644937137610762636066131706600626510423023948439523104586624076665221284675321162081496120874349691250668581108784262350244768561419710419889987285545741387400384879649414034003265018241568933172543289787046288428763246224030461518900821577202891433949756962592051957921603638371840624929261345989483960793166531891140500958245291674390651587123039061900878396921878885757507076504400493112913249684906551887392339060073289880760887414404397259731519747189221658356099991319928449194600610178006874496005318942577879688362452270266599896555073155989409582854853665398064042289532685826366151736026191643339541769835333892085151509993496477253490701062741722849840274259808555310674403939517342118720128914178968422572346180976603144553673513906872081182517606672223625570434600873833950717366402137649374519621290054359894384781649186020690723621231514858540446118539477032497087934708952312186961765426555609436658769706961161866697332618846086237910600300815443014034764672409341781090255852468689344665434097324973227865580907870181619680127347393433700168716820922077252967638997254061477871731210466346475432811364276603435451041009176810247899563298728449336965452810560669786839035727253888683810944460467262074167622176476597792909327721775157052934433336400097615394997390152269689332109718153876689240174181110204982409124734909420641015507010319283447671772768612406614282655774516762632462069349520475416824962354396085931308095983677705665587126202430543116421986965399215722876191824940114227741225211318872383345612062431896208225978936934671166402037645672312318860793145915618484647291809384485470231241738997720911495085741580397297083877979680386947769685136495864645913610861071456807492096973172709028426870201082200390931427448870812647649598930525139784843846849726579277618718144848052318610748361538847931221061986931627154132443459801215470929916264290695674172884123374884823084249334848984780974876496921455646376429362068378903703706529047015134659660754591872436768256124291215117449446448297206836891471119038457271109579155783848236924634277253930467240052729386311101834201143381255666284068727421177644005656430356082626503130626281447370274826099457724031806749411392831493974559785362430267571820605740679273776595959516860050567701768603432955528254740316370559785765286818750962794121272425018065057453513981015018429717451093736517131406788450106573324115561837963934188260739619604696751839680854427546603502255043331734382305364736049406192403790214049582799851966142533017221125983709843682370144848120536553019709184124562194691439123100169333669619709784168843443231629738275437479633240461687416251987296107715746638907862486389796214417190375094508049721125555971044955726106446593983594371575788141685236825063024078798443204080191991682058603248325513843620140801526919439593043004765186884442862021950595284339759251918577502969039195597935181838370287440480969103688954243501999677282116790459900237096123441600003604725291474917779328029648115675284142026564540756033280631573117971622375186598213417645873943488956336432121370021441293119580048557460286800315658299869061573638052968594008579244014135351230197899169891459709177397906692364247564990456848668903539245796512937926953310759866845748742435547646283656533122897842633706741177641156242095574625704497225275139354308069870387908014533931695418204260501833717605235418935466222408874684226848063950370409256426583169877010436385923777348444598335917538005874417412674966126070265917670702913849247372896203273804177641052369692312628243136111286247976043697207429879755664887460638808959223599616897984622488313063336567855399993768346600142021386362177566714235878654843350166645855157999152568523767663481847842409570153870513597080812057260021443574042972512495750283758972237541760031658152490263689127832755420557019251049894343915604961734449079552770599441397834656015274557841410455928462385317999450780842109656491999930215292670974464365876191472779345925710816489591003865295639403449443126344544963622696198097613092553678898959718413929119686082936255416047641492253941126068163962793719437035698110982337915994241345299110233857897859086584291448695203812040013640769969184665855175524873764267298642538612953886719133710563566753829125507396185022383889982608553598517132431934301328078689816469136839313891784615323818320966494901122332573152994850836144091750228212219355645352608049875978301520441548210734607314402811432593531005422110941025172311965421270520204565609716562776460253311227611373457369640180687173516061371860452430944572291412488729125288362730798514179608609244723620186563671206317695965804602599994195591335076661396875159051850119774540931987344234939101214618699895229691986135118293597262964524593822296764717831378599580378596769757297140242170506464484915009259686946479114256567834416870176006735626152595938676484596776518983259308684805069181333860977289012119731494366583784544330364509155742808163606578419007858289540079158648414715337147817365964386351423340303936642854872841729927202496969601875629902145053640485689498956054401957698273958548156745445248689233874871559049195021316367136759329409037194065880196978986054936206981073762204175564661066597284273052926009816183977753368414670275657569809722199932975227112190638498532480691135508914632777821778916078049062803239734005344832480307651788485271224129488106689277767142263537560577000854373033961362611471858111713932326997784331439573304997418688845933828925908271623928970493454864425232784627021187603235321652140682397058201702501753437962020112767453609738885391050092133853210936698934429245468032120170689241868142914006269765982483697039166792284065325506940092265680449401533256257106580009454333379186396187506409565278877852902137238572606340446131954635073235538659210521216695781407938313714150805679285197515488454400784003140387258978731417684571187322163282918427882231358599004701126105790948776091675132642211256220503153231303570259551772664470127529986461946128954114620076613966748250594121116221236018294358786724330022077132868028793039779392466758863282074957917595419208085487673409258130299555306802380056933845572969502781657798791468262220015867525946895480023030811701734969549092392669866146427960251612018790923496175188601463137145391842510472341482133710129238698682035151611043175468281680261120547715626165738814048666424606238752413679950542510567750616692577317879206285691252501809144532123916278184651733099206990608939630036427778223056674624191362134985774141334013838911510797072636787423857011496799482326157294287757001929569709659678658420176054572846245385095451890771491814371478143064609770569399149240248623654015769958101338200625033616820054942481103259129581778870171462661542872227604085831053199003287753962378385270462741105495562923416700038868896643033417635195257023008354645824107807711991499521760113428509002601861701234577066785852771055424050435394715023528721899165565301078850974374773787091950411458429952769365221088922523760325332322565835000728459431625200785713155088562675000860613169593949346367063792415371420873773711143843233983844768348605863387933644740142977779192332453395261526992558074013240064598937478089595547342276659328140568271040233126194776575314431288742784486819519965004296625140944098036195587754236735937852942339604703839990560798281032100172719313203468381243859108337763472707666681579942755327479314579039296528135261445483318045684279329250472100653536431790106638836878743653339411081030390472043110008917177416164361793576443325621445626796353069579513494879180145028868538783628685034307246828059114454607304651766013955841620884742934805325888840159902077873616912454247531967323374739175725777246014593453380140877918835451771312675685387733891718236929403360515778893624886345988983669251933266666774835544335558079797227759187722726091323364792468156707772688992829657918327040977878741609199002527046086620633486767598522940337460834062157378208668734179907823063804835215464731415675849560358414133215311289459967026615080170630614186215762665171199783035580398268227848828509877654026033215861472539289603268426424092525164359918054595306679560354320949185621824929346297031156895849800650776647683567775599380479347724649087723794773180374320378483802267487716737330050757620111472590498689914820351007263520183929181311880034632923935434878167816523162490692130817481426142405441607666449830699792421776475097961984414491632337120181656022353747449079813311663384920739619451036813802695509241025033226322284210742916027420944201043733923650489725907544362066455388347173752443711223274750322152219899133032445039353926444070145798176663602294636849984407574726628254397120390517512049645229910396332687072409323912450866475324604485663616861069334385178553706079601891499775761513859247004126105140246639751480284194046343377102440545166254281124285756395784864964067879547360926378906589501676662032356269217010028801201903133053359194427803853810521267193492814793664385980182046384619000625503554040868040934412561598410023291346744330965726867561082160916326853781940459947712388223118585574689655281486454118389032824596296236944011406546436474678034768246529100716611647751332630964758890146901374140052751925849376961449834050471293359890216655042460384798324177915161407619889975991070443866793307816181147815859624533423292173489613239984617752619265194969379625652133533961595982415057616090981651634687689734219456302392145984472235549784508910401951029562365933106122409125406731789604667653404794012318530021711726028332369995181218553360373949466454680733294308287179951379352351756038838300931348693790998329560882471543847867561595780050480813241056847943000202330963908025105807230378945814871383045109142942763432259528334699803679031761778496796904970707249346810630880384781481821510446064368463915415856670472388944812662451204921765234896134125629839296076556920373573604985028365384616252964872777897927873544767049069772551253281075932379342269183147586450250774770786346787558825345518996902722719313452647943582600442785227644025793378175775852045254725302381537999310102908259700193751332333523386301566915002664055432847370032161820458732618182288022902931863098582471666008117297542443343079305952335045109630670963680809644020148550673320950433588905847577886348666144565666438639305250846502290067474923662121816268710782042889430555444213237048503455951455588045935059480245882910689011337676547839163415280997675319025910281388620595445607796782511987954569369106973110733544731500440486220597995196701817644007064184120106935055922871436843826305873377112189867545491229239436591458287466929325723733551064269752402411250941690809132303344922988577898632406004971633618984398328856770539904547499512716928633644922111845287722081616673287427625201816018060418110695612271199976736492108409452561095467543913651071538255392373031547019513074497087894046779974945684039468180522270019157092278151331123681773280388162501235303669575099826335743517268165889527891879504649784723858774530384169021502564001111201904194949917165000250856821986437719119485356627111617111540796253016404703296993792049640610106360715859372962361686972026118711673691655563430374401578033231710771974396974251231038613128874590713997953357555932059457352142643102245933555674360507946834119485210728971011913641914711133248260136967499590642677122840892137930335739960777925670471045898334420840897049674044984873732608393210035387119989615547597989514762296644343722621202857634337860287916485116726185861387226514832746906060502373415782358627504224353553231698798756646879779168724836544161782408941924046323531539139672364591585045149972240065936996887813126807984292036804229921978739345319267510489940645134808709176066255632442389250984115605155783008409391733525179232758943690956243353779337465707653110027227862309669321154923148662681910065155242897070743299411727123999892414908498056468910065419582903949039558905759045450698381294410131519145434054181195846386082176524276755033213567154753472913941642480564495634139155524053151000486660610099756502544010113956151101410556069231121247931872461628866329688580824294263806121583571558529604874203614858716571338169285208514059986948669696569091444007412533657269265016479775123937193018825316857046451834270138639217610221276175084358352174921742093682869668865437854488010660384290221447218317948982267037586902401600013220830351331531467269651776634246235617625594779744535190332824142690568126704389339614265050764802247795742701366606311234901904432112671340100607122782739783818961903581122673663763629345506725618889804375102758020182203132122804080005040664932749913414441385962158032454567300852724480856603414649573244067143030608815256886906657138095507259215812976547442463381795822263519262559801377257383097793897014053538645913141243499608348887309325389577744558801167825263134251120094011413953519723945936754541574378441243671462707528599305559031565699411657860873262885969758361872738649088329533150608728773722690381663756586854615943140339320923222717136387832625407101312614193930980161477357336779387674065488433367475687671245775625176721167942254036929757216196703615004109525245884570798684605466339777044987517662854906706335456218517775216561596584017140207443061657423604209184200049829758173664880692521563879505586933776862657112349431909759709807343840626290436130440463683089890001862804913307453325720249252827824893640346217924724880256098075070715913443660629705850049758522951683911654011738099298755158131275977892059627728488984301184772976388303495094646187583962714415904173213015204119834943612341401703887549242861475645776801471681367109190750445212774211685004670365127089720385774229940228303368516016349583694688932456487357188795043079420963935507942886204553913183264407888499188075702022307447718985157535909935330154320671477356969462411706788544669468300097746405545303317157435649076095362131186147778277744460832828958583414307200712079420958114305527221037327571997016675103614841804916773042052207506785617291894945992124783044156131202138789313375674530147121602423365080726293167364853353862800047687997145763294415061043951012175921566733377630270447495017327605004039264602522691783389018934752870146521870785911465873896336037886083694487418309057325334165402625597049823917795271006846171065935002999927575948017112695633395328802885514294561318314256268029015260921797923263942144417350916323494274009943271285423874610455925487895886261273185741890666624080595772109672536606238942972875816005873988913792580798324736403410042927366458226971937148968074357525213930112029329241685403019238536517323105062402560876623426467795660091920366335143098610006530096238368193152024259295312383610652747646384748199156174099503936247733036344873013690100181698694376276844918187759498705444973057967197354414870496165260004560967916912962002982677023897416208383741343664653441561560924325729661527965962157864207749738929311202658445885724039181571655118784330627271360953956854424001257469560312870519606916304225047574609431541038330220524226690203237793740422093302786488132045794154035819249187148432955820377676980828738702776787193537687054033137505441369667020460349165620548401664329048447583744609379506643306175988343567100550914106134254636800961535487412153074465343008906241261049471513603287661965186008799538382185084508816465610675691333852418742598227543743649844757407207464944651364274072455961810303066269680434176044907837491387215240771216091784886270833307847108062776658452109381435318637279640208360029340086506446541688210273188695169816678753453556485695357099098539137331992232813724181966020680895203169082712821881670327249011904436835089197412744197684444972544227295206589412244666249726040953065256288126253469898371822082833524788731167055589337187388154255454999990458232737658901250573070784602282128534676841000419648374073626532952969732421662041972623750923407880629478997151499157631424976327776295916244228707105507778373654159572652401143392670549584504835809737418785745373882207982809175646759970834952347596139024569234432237229635723379424965679573562802176895303168897054856659069159471472222193140362962089079079668087103124375382881585393832135294518369773491796000064120426213128615614218976383296667262553594392118254624491544054948727462996389648272397960334784536715311324664142793245395989854444831535814494492505693311769459071834723872077588397185894673166960321650239427391304962263014449442957444864677917280323125631752321833667718159421273813650817527976779553821084561849351847981873526653443332223989275444807742203791998711706856488345564054607502279253383794684974169156450049528144624851790853655647630634282909101907989987197919220054806574175970361915026950902698489556759318085737713871891611940965570063615175776596419228748849241184674624122981750896724810580287609316797180115916012379429890556328580217384413775132232141646312884324813565096244718355195489589985445955993865193780671206298868121285249713692436155503110587708830413890245460223365333566657503771222134672247155128782265131902016320876164950326267266551027071958867828018768737419666768866126057198540396229521587442358303617083484068370760925875059764483387692357864332923466689779345831684213582267037025257909136972496901307092136076610335279303935547250805592488588864928017091741378603620172903366360859011662750949108835049752256792716701200848524336003850386839129163898427869131004932074769494029897435792786462446552472172948340146642051257460416527719874751401942850701603321921169237424636462197326277403875309501302201451150847658899754933325046753505282188246064002579991117506811966605544218840444675302459741655764539635364841994523273068036614960343155080766818847808193423165203099516598799345187473824904637424334251592486224801471841049590424977740032916786823321908914914854249431533502659360147825663985394582266197954464255043630702492646896623055246271689924436324333212869609242233528758786420496385180448199439764816074628928368272724511734858836817672452201041891601109779130431281946975984625062625270091812139343490347777343600429948708126459358828300112937812487410968979978494700082357236201052024375687708912628411818407853125212137708346914473631274620686548219714971438538959085103327797484082985360462827475405553817768563363260335402073685685383448181608747419435160848932450512606175583027165357960595157627320225945310559860035825672339756437489798450580852651139722177447668368275816254444226843016499941200406607361438412284735301740670701588662228789426389577322296122937433124823942859962741968901820690693796505282328435543434859672580714148782672767743305916345528014971942033855955194928884000886843640068433313385396169802491499744787015004198700646091702926321415048393892717166880350382967694550871920216609215715153201710796503378071466914380928217050185657495846696285405753018131779167695164462750832396223526094307592487764087316586724130094314350919377784706457389947601770053361340244411117153856297636724798744355778342644796118449562237088292847182619125740997955353757548851055351025408644288215843390729763052466420268886277886384062905829788518441754955322500094313089750326065148598894310699591630758612352936931709836779707933803376918130393639093847112862654195522727287472217222892129653666113112763615355876864185322430164288553897178911444127744628668363304651159573241654218146625986675515640396411837350216555886940587807132290020914625815197825629377058021036420878522537399163777404763474018779175383748706265765233119125005868352693799549292824153221000207654500392360833967234057302619045614837382869829237348571004546417930160749281685467680753274749038567911602502469024799586910685755899108375553503984500759650548259877077517366479914302363524467644540893579588328700199418181796421076585921518104742900131803468903727245117138644940616757519527488846074023510002625227415741338146006799106771926842192806041832965308926613958774287630987982929484126687388012601584729765807257003578513790737949581205677678835777443224086330151126076057335915193610608766749007596169682286205260243512152769049373120173515249412677248942450439400702818347119597130385391859295763351018544789293832353778727953036823756460525543654130026184693550828093042056990079309605775349403882260307121084718471000349983307917272209006487842840568761311693194829305599524648618321966381644593782270895202547491391012648875428984877097342268575383839491208208116957848143055171887868383656843203599383188226062429379830852619095335651245811135354418561264995285115266764508104771713254987852798710098141950126178010866491293048619757411855841478573387907515158006391224400377428014989769658240400203000231239888043414252308366633135126017118115450050389995440524830401440044156235759391575088583431983202643208571686442869703748861631561659380626946881733757016573262167072584101470702732531201560067967791783276321475426220280180426198251311001016107646503651027978106311510682414493076615700819935601291789588392437113180707843271299483156581051683656575268517389609923037941024256355603922259290528025725645549508812654793238846579941040672576531216419584170361212910878838135041159396599151201644452623263292836987449344566536118199050131742980617667652845460117815736021348180475413001365729770620339516722804881327849628898816833191138423113862107335967644214896077198715655940930125107887763362688648954543201224771384226041054993676656565376278264814356237861187493678912540613696346978584003089276431211219918988943247112447245137442088789041336532847791096376689442192119407169143714679885194110862140870308878786247522116394792426166677109041174343622531196018785667782878262313857926651641527513702452497907110882894946167527708458391702764036892100717228687385336936087652627464356436464543054138469855357721451035919877686352394475805112954109458260159176162121392094497976927195267500773242831737865018074711305010361496623461314980272603780648964832815301974144925502220251960064106642451037956787338735049513611641120134805739712691023185482159236463705086013864976481637971728732220038570919059758628426447668537154802417500692407053846105788129857176537872226897325564386943953098658061080345872108170622318255788745124085611853464416924384310957068369461271010211987122841985168458859988781832304615325075272080188615340003057649088095138600384027351841018112117671611433988302374428368952812656092362627156124373124747467196519351585258675215501326717852460355226213144778161009147650883916284194804110669651590975217705647511200478266013047125147991208441674179849020010315309216362286171577427833014277552250924557439854073150549284141455464400794344186423214185840578185811004362286054703214417841046361643548006719772904339137454987338279082139414790939319852396711046523598582973396122135862022402413358404606544706410094347453309775350562418051387045730255388415754432764196639212471143097950417643620413604067813479405272606820524082147051598627410724486372038668455650636381866981309316925394237666772100260054696076463846348034264875182443788820602140850855324583665818984289392338941491047034893965270164414837987239661287846465787448142338894272172986949344575812825059838855370384096966616719530164613905976362573968185450115805980176849952288589067734952364444010151434573526789717850252231303105156068481423139457255730345736978164579656794515878023176409666584365544923718458088136221139859779960496959854354007885251489820664793287077193327713512336642326901772919299485784202497204506228873854670637529951253643820620198121825918952318148149395775147927884293111698561894193359697472514446375951988943491026647923667879927295105098686215194844417534704707959036751817044840872017766929623592906175259047059131785128670432443192051735231285185048983315344448348568956139471041997418559897989389432104411451471718012980570826919768778918661743002588168049941035400904633143978975845448850635570003168427490074705317144396041719417409015029301254495391417075131550941101875088861537129984726824572696869606805370263194817598038704929754877112042332962583540923379423390900625663657566707919558101372773592552648806972171380388121796124435747404820228741411550960454559606830485134781327155600270238487850226611793466132227060049926242998752265374710706303925309592288291402041639333647783911695861642203064700578891566813555277351737166046177010469069488225640129630867588966785238892388638267935503095414309123651022548962275620592568660959377703802940729646500356471365291378164594639025566333960099401083414573891283187631863077970552569646235023193903927217678742124251650541628256486633157087312118395464332997839846200450334980319960553187138200736904706768015948195464719772264988735791220890793745878160095929593899192696118882928590904269572551775121070879721774163608705914367272626082327019285116636371634875955424394493579515480155109352299955634115223064117007868717297887890803435698124169696831910589297753758110861502091229765276649643356000603893590579889699615079992642938718081569159581827779691749857496864006230738286564973072878284721435648274011048415019838314803271710131943423213423356629308799172635307203922156777580906789959157627556633922909832522098575779994917398337345992976783018531379047280001404352893159076139849642132096767926954273624816206824203143624539192604475708969918908490058005920682850247388577917370480089174794707879516743361301025522994950717160606232532819746368608429740451530912714750930351687687455191632143714146505152168412016786686637230618242116096713854566263737844785224505448094776420984474457145882645989379176910678675174639578983332203175918358697229866696328353661329579749811780359451036240850188079679010991315394406988452183787964249325158398519079258727032300259852900319924475860977931720888678134221869882216531112563415215463175255763875976305743692515273043679781326517966126688304568721997426335994188923025591151516166058767471955621582261637144390265887615344160354339869854821264853758201210508557488989098745462912773962434454990207607898295097120637431175015175571433414611665480741884168471514823292465535255475730306979398875184317726403262950179921477173617470229943013453862577108543115988848657983916357936451126535969336684201230646446845031745489158129248219366273911846615668338731018465838852966071926598462753868299866130334757445481152340122893057185270071865975775052509046735705559845743914159037614108226618306457933879756229318379962399941374815963241057505392427108563603740954790459329695314516456309268456465413717113047209324208985490485224525452589209394025235423274985485038203388984144415976660687030963826049633371713172640661942482166357914389499578218581243373159310751842820191977371084132282783107264422667892857802976718730374762400965858077694382420958845728164785939098602277335231649019033834442432215724428893322398650498437055931147168014423687435805356685453197915441787271638920711538249127696692504431631292285204016623704432634559593447987016676922268341269967728648480590043808037404455564329669111901985845156659791822658166552508634076297180126223990826021067873433441505415418981452689063113553245566825227642938072786995007106756962434900341850406766287780376623083697269007288549695076174995899297141263011621369883986654744202129148133904831271068756697052524495798024448382262544240920373860254110630051269279810484893794889824420102589701503380291617148795823180147727518603536290014989828879231385180707888229190597015783892453885021410558363432659799624495527701673173119167847258938833749093740582029411142441542474698406317289366694457071070420031800168628659840692000014940520167489174479899138050508488792286717956124781441460144827004234988362874298339506188572140720673141149325065093901177273777896877563581478481029988188080541080274402023772917887555043238398599695145130870824086369126421373084087098684450729530436606034479472968015118835078661489370427228378595753818770668137535151127977320022553890086581630658927081743955353488375925055442588827029717873336219607977720601841969729927996372930708988349720918500961193841092799717185155373868131478729066651795413286292455345637640950023339294219316737308824785817762033838158908684976934876440655649134230278887773280807424923169827394654127371251528042727066230451626412500358044810092519785541908002794014280444644851271172751820298303811212237656772876051704288897515003096756276381876262680306156168638042155346187551209423443755202968433445018866152744149728951652381114130573718353682163366020194417597010092930130336997843049232511100483634178153318936640891966229146001379679007727259420391898807617033278550521464749706748009657669645551979633483247662919491458963398974745722560918179289802944447465809984486188328549934536744820275560487212178295196516118704588161486916156316927294070486732086815645569224854433575697101285199893040862473220064912200251514517648890008193329462718589868377973151563909490956949862890514172182086153153754851870006920108096935872975315330252144207731721730739613559124225813435401803609999072817900990221444327509805281153117736822876117184876305935039419101556212364458541988253312122849687289821924795851642811223415659671085877943244474372418389167887178750000133114512886533551037474344027616408045117023142505529088857391032738489321587089210420398214960677690953770684508128855321245238297901284689621046532399027175419102999897132135377861670356847574426352058647737286267395327944655371580719565321843995898490851139956713079738039306826709704939783552687257568035508807450193772415413600341401606019035346732289898257282675283871240773200360805718873707508750754173301067867950490708740358197809581946293466675106912913968424540217284083129941269340719779338790930656404161527283715205905647987945435821128131383646335547495230017512403940675064987833557222393648040019443765540070373327790722853687977935851790865189702372581934359062006319433774282241087098020667041700398770668130751872344339628885794324043148189804120231610880579305881385982528046879583101376740412423375470855061724138323410160243277624307145561089469024492678159887859370965108872829531705430675917593314881223762461755836032963982552560493807087511123357475372258078074076491221183887092825661170422628840022684462663146650943307408740206426648581010808516614226282209662969490031484198381742516603769895629148250223132152025414303395198365645697192040353330599455514915575334652174284408237964375564083532074066041384304770276284230721115215012291349901194959291232109884870401468849296473760068409872032114041797008797770031130395305814058857382938149184629045726982837041420865319139492465323037226423456440162123546619292475972782464936911202786204604701118105483191036652169437559586125322783568039706136092939105323576320182411242627408108495632971186015828831663810997916170694022960591961743837568836876974484005767620995475790852986203538618956741324360461756514814352474866160201882438717799158268067018512450511008774250056179062664918643714884222167035195046733128868347524155270301326515040183436239995092275061872154341528707931223761150622155793646436944384580762806318644541869777941923501705645252528649971671468900207834699947297973637597470329805186368177969580811511364668240416636031052087321366717159181034591717526310722799635810733673044173775610455811137341200702732423915866542575598118614466798208242100354649586911453415003219757914811469026892467259489287943226082583759279000947181121870252125430955978589895165203846614903554043420997381369307648796574155948123301259344307985518456228558206181141138775123392142160741786077945057948525681628304634907330281292936626702679684445575837347645223894088194657308809306375023767995196809126258198086221730407528098614137739377798355740840482750634264424854601505256194205554593832292385012171612637412697460128778124463448963133249331298773713546698836470485464806081991073130214001447054474443919746306186372465526324161536467976112363604302412162525711243143972455289658998403827234145608280062289537870882021401319839681811128721978203544150999421916069302991864883978656420197106018533711221482107123162976739750768894760119592034611045385363900115629243302621927770117095824596150244128746039994633767325375148890853971319463252113094888022458388682174044342432381336800972514325701852306026078752632717516354854086658344599786381307260219414485529291765222317942087073085317107106593017870704338265194677416222449324435731279374001325410128052114465442067142131790258792337143979651549799764606995322727668198537914343316335921061550250607112998141059461918922878756325020583128003723378521909815894458324675320885745650202796944819312162656775123964854223242569725785945247719561348080313154320047985548373071880224637624724523118928567336942340172962222819383957816245728089939298959162508170623203038104687776530375969842733872961302208878067003413508356741893599815947278050638783604755211223798795052732083968370505002206711162133631871436487796432802152492233608154201644895824909261877263012480277600955644267438601010399618584151344998095459231284818997312404119310202349677546161985470417207774442781706343126979199201143423684244743130039270857944228304790628283235503922566486550619549476462015824809970602201125494103296056579457514003191007066679785936670246741186834938711270516130515891305787932682689562294764904704632395700367523971704353712391148204896386055882324105340502996573355630090713449171285519150687821183663977737547530399199479622160121873322445032012220792174348834703061005361089972719751303019173078111418831751160166533160273436619453715801443234067099328402621152061568420173952270599539215454818168246482413707883766108493436560239477218581155811262743380421326752038905462250496534616562199220827974350450082935207907548433205851014129423740711114929049193598884158508683678784447586160008586075853640704548755359961056650133855669831601719995808332009159107871097140980509312316792534775511159398621459758132691992255861064391369531569053079639460723254734708700032702099878584974480154017292731023242771847970336563168189095152951492681958584110387020197495555472543022792444791610777971421393348053494346171357926551610113562378677676933374469789579950822584747904515504310881505669620734817168462013338755891697478545995645918872849506737244226140220057688692384739463106118992325604916824855319969735577589402782274734536431768823401538408626336429616514477149169826358063575236049771441400012630651152349387327143234954185246957723616239718627220760270168969343061823465039058458892504848186823268744160122186536134560929713860511691796511440032539502454653092164789189900179682836584678904342143967111953658237794326150894123871856931100285027173666132485478226289057215665914572906802318442961474896549192954801672169835843129821219269842413569350242494532537304457273640350409377565122708024372049768527516631897530409213016445115093846161683884183301487085506562998201578651795792055480817950063492731340224058796727636495147434742665363102049840119373624843225126619730358535988387272682166458931980432293959510687406280169028171070488355441932464942846350285830952597036638643417944675323704651305441567291730675484696682116387047507824956424437555191260812463534280490212842982089407865387162735650374112576796549435988490539052710344887469255802937276320961806819802499146465151444805877270258171720950384691386779515575463023241192420655792587462644401488557402327326084596163905762523323176040199726263603066789014607584984532268917493530616296731485167134446376590149470496082775738628830691735888386917592162995604342006697850425537313049868387882549857915174837933164255606661970676600961365875225555165996992649633457284002894573471967062419211116639436778333224825479786197153665356229585727072598217007571734841053731833127578212498909496010690433002954279110407668713570289586419067317050962360157926848338236582505948538328054505756196317666511160729215212380720781212562184482506214276178887783882215641520746898627964128273410761645061462518497424918447110358532982605301848573774374061530960515000034791442111233688822159636691435359454468218184867636360185214462644477815139576132502508463786145380792257055198979493444279928896649701462650706601111720023874365048955500808966598934382972174078890912404244877233767690931947630460803263940396821095083720764028561276035641622396322598531497390348796802575432140355555987264912871347268551453566186811459956821923614283648104111981711737940712583926448541721748629787245229341985780234189571682398620088746723410788454445538445474232483874087025335073568004877264789261489138062193428264332770700743888909912612863167773015293364554616912837641941058318476178918237720938337455877354813661001687989848305327234491056569230228922749132783144550816501357578061543932091185910855755450997843407219321923405876499494571198907952347705303444496044449328501931926772123152026841342753249023800676953830040437749759615148337054255898220020664268356839743072281115507938414865985587508891396914827796187598703475920713731530282410614327960402228526083176079816701393651228302582829743796759839633341835982119937353374530936194410772175720622849571363682533385075775883371396953499550189936856587842314411002404241856905869648528889583952908336193283269828913641301324196215480667464958505878230512583561883919483129413071940303003948218630791913444212540697409509260115253248747330174545246124365926519483110193620390352579688882117838963182428656460961159429037450570187846071190569658624885270284232200167370103312729762063903612769962395196373887027731211214657186763956160214054033242697941360631129292275061700957996567986602549443530155077080123185528905553260832710989810361639285237851480243096413876895389697910427150003350267372052758448080227165632061955534919140855769667373810229029962657374245259401218694045831120223066682724121124319932018408203597508473977458830600028805716825722000304803028220620390842619905131617094976639462338977980921627357097520236235712971155670337537876400823398577514810886806354809576483578643714591811265931027662643620773029414535004655322649929528425278779696562308748374215715933140148546482889826363850701117163700059131941249227876828858667517701925495992286633248938832417602596621731095127805964750959006804190677170233600422640989752647353339722781518752949502016190864415951209535281488881888149808246091221817910904414088784666480969975983499503491779195744531133013937449982312611606240333908980665767776324300461391630615997440634640853475393095452607180204679805863476253078525600599469856595669685143845843442545389629588187036921536283502554000981819612395813875713368016413686110962455259019203721310700018746141543348335396101769193969979470710057886348436553598211451264677619783776324045987032136042105836660489248832628217956765707456601064463736310845966399294322644772570222962052806628008670163579819303443140434327938645595404896572720765573271859040805311221430403250897980091722613165226348690224787045323327970154872473231523275187800788145437787527115358787475514028728686281006915297959735865712032976424337803707978695668575977574387827885404278153483293431213498986420446810285102204836799708143581327316273444707390124821813404158422755642331991819320682421662169614977415695286190296361107667097315463800388829099230506810916535211616392220129181321033220790953243881124581052007805806316211922431902053575114005827785172498716564165264269827983619867532101431278139755837954445656126871615400969054879414087968162734593635342434892531467850586746888284954276806384223691741583766923318838610480084566313646798827252948580069439137071582786613315331029347137275409482284130793958452420606019118075372906885386571458069349051869425572929186618582623368914326503461231218243847529991990163509998188848266110015405948357208440668231893285723339032697273160858283021459377654040967005102544284279798415263384905027907436028065813601168454494001016206400800145249780930127857006413423340417876674774544678481341645392326807977875847390201422493876718685386769492996145163965451061556043254913539872182899026659766023529520028249417393294047583794555045692964791835490714010379320003987019915783314528623163530796986307631069673661569522396475718771392727776469299024008173482853026280740446930269778822720762638001481736754096780929921050460444520750615092355133362517830202654169840881633998957980912945872129628306524037496605371637308373619079134374003477688020200249585432175162895175267859115073056731800907662236952519601716496377095553247563795055132720627555201791129722781725087510187103488218278982853947546036944877569689929546558677588106199775926537698936889644819334113848568349384296074978150584369223068906362372052059039974129347783427207640277302753364045862913633086532175390683849881501744424203058592031457463948267630624015037480376204754963698761152999431887653721910420642954010375955780729214663349257318459563004591524415991172391526689588084375406426875945068855495222050207691614168065713368937279207227625340044797073429207582543064505163106505822069443200446629315498287043829255164462526310847306678640804038481571815091545127123913437989348994169869042560810375545925762317528799556525280956308369526149074123896021109386652973704975664351691899792730642836241879339523063608374362578477047303220693777639814363107664414373396157887284719419529090533351069969725366069480392171934834807385477565873023782454043597264387210891829288342130451797411663552974812430362062661503280608127003661841322004537759473864885128660113801790264919633792157272647482774188096318584056455304230003586216561091557239941250268124252745624922543064193831557548546405412916644433309319085767843936179763306114857770598034135722463553881963129990231901767074882809330525311535582221215771859184722197677313798741872901077901540889015012318970539592497344497142220026491169011814162228238818700421546142536909598265155409493292294607390670188551047849834759511829809416497258285532538827333141833112093479330801669933008107604741523343998095547921866239892631811682480702607151406864270946307883454902819338397644556358352088585844682891909457636861876739058627532213517009582494866185878621195418627655246060771348391953373889038126562395898581563418193483606027343122193436382565656684738796481424307000072777622114129631263377476733316003573766847311358421865552408081120382371615159957050669842996341268737578057834335843552188534022938830933067218969505114826518232759732095132453010340914436161863836227828422110469693796409866592083100603870286051521521934817900835636865105298777545540465143279379473177657599982484409390575484075564120170336721089419532752480917268597620340994385316727101924329884484003608533305611853756489929360833431136694895706202722529292623848117946274877028896356380183682305136247802461757880571390091146348143974754580599457169794668899397932512743142367917869215033522793379663376907551654544269923540033590864580158314735622324563673342444256156752616437112461776540272282614906267782544583752384183232742278027105702696588722912031897074728466153840198049445118953093757766505948091700629071838493455703882220917551509824268196115851868551617400276960507940823095678628080250669785682919410908123793607020133118676489069729043424307992815676782205714952118459741597988340451838397493523865372881495535453305914362379614777852362390267989022988134314522516598681813621469455995972481094821419720655013416793777528896617809989511316129146464772024353154946711204939652046897600283263284967340278236924123747627160593406607853821437794972437883146904717360323458077535268430438046182624249524602615550595445608991845244141604383334685483702150188545940201226409978821543192405094494144152798177585580561215303595470244735968846950852304006776260761739472666541599899873901282511409417918367400488690449040361025291431647447186479556953990819356589957965044268979516632541783925519941824911038660613255921884641837134915747740541702740421912082380220240226350239374623005828414038030714322537355743430531428053367760717190206092949693918738283771874987261336408781419017084103839080613400088126389578168954215297575269553757147510608504666885679519750581086575301227824313756835502334807992798586358865647756488526101566173020438338951496467701148238151566595513126638408729957090157871213628662192556458817928544182244159096509255297095094099026052352838018935706037020853662897506536586164629945462998783973592570564070945118544419394031787144635618120719614303926876444255036930879300986720944808031071514909488002810796650118887146960889227167628066057460134082519659920558819035119079852207126683479491596944765959897138203188095529394888280417382083903868025222429036548117202756870750995191830068382781507740910841606328663664797855316231998268265800026235141107292336894621734907283894754049262164041286906460959953821356773271082609958546209908015799467428095344960630966357231297054604448642081539909202092272932200344023495092790411474394381155643117711956789843065788888073761604967967230397999631654519443312680929996339132057096615871703514459584339883398642886761863596383876055049869220317086612992503142778735480068147896313809564347055329356167272410494186501907654356944770344551842237242709756611994257679280234620533687912638007763692297123296254230942567305664288757066355011490863380810253130868716211032083018196760752144514256680540373533772736100027739752105056545234728651696352068484252383470885094493839795965568867770699183517150525208262894035383756306721842204571048476912713403591156845140041084598058898952767138926935919479337519430920909684893167104047590402794591889332217302130355893840264918196336413332466133123095480886742527479501081816962189131731429958734159688903829977466886940255167640645608180509088624295293085163849612674190556751064053563846963131146989302669731910100883000628108567978961331443779550585784721175095423303947948323471114196980957482855079269815122326207785955941830745374680471001510045805397202800585293248913941608200507264566987408305469420024690357032708184950169582515001005440755891534526765212062262932194649039541422762820427303206486799240620204729096076463541423872066930150606908849578205207774557428749987232762276679958469945039009967738267180053402709474750273712578278855498288151102042447415325596034292455571513362143536193195472918098024338809524212387707262329336317246195895966563606822537528900378999836098356990558123559117548712180974117783907164598469580353946775810231954941000394654256765926533245118658283947261206919278001149424932748600987406408415693110243775365219369720388956608258229848906841887881816950604877521052279806193068295612902471547855972837734694004814882753180858473764975401300119296216488738205242933600090078708031643149040435927623252204615341266406657744213406705965559102499862873796069922305214838720946784667409010305908952758460464015177636077816399337085117923777100327022045638467846586328548445914996918400927749235798873564612616380458160620663736274531518891191387888812730141081130326424984533008234318047901271095912647659706386662637706063480746297470400031846428532580847769649306633474172723381391054155639063898370376693150636227482567377610386334649764981041019434288286708289851147802006253959104655946553673880457308242494562105051190575373848783735786307042123418455175711952329692241920255871296355600409981532268994195841876706858094077726575905385639994153596260309335609019564607189917633560930934012061077134967219279465955272727154436387486399403450371313724539087116063645289958204071112207733968207045536511770724587798437191911464400802054869435444721756476194699422664244051395605203601975152630788064984552549632903213538445235743433292619743507880522339800317546815700473681337180643805840146645922055755854026258916513704069350240821351134256723435740570555553611189187389937548774227179101721526802311806014273022572530014900566666461171502545654877513819207096327845561016943320736996698385227832672801782084921606227980128422023795029710239735939010917193771326466705063069740366621930644979621887566274255478824909330543324691833819925131916819863230517593741954875126840866687712340426425897602157520725442282302071770167054385588645528542202284726920148102914925907156633726966053056939867857403381970449970067348779363589678507631393628995231028077924067541696772201417397510757086000731716491619176878982529199607789508531622082969834623812980519827887655647762128073648961299655132052815475055144040504083519366043062762663816364272674800858748670089763921202178988063817404812262816368254444958197745734467649035685070453277638533137428020262062597801288602873541617712547644990650137231833093733818723741878626900615078167588459121918970989971452590770969776849927073182041962188696833462376018301972014487233094430082055106248636428391307318512940048914450741382237955476900565531182832525531368859795960333810225359860836435490311269924146087445409955608362476582464985118980146289279063080994461937843618049417986709910074685801102899438724518127202945670275513711798914635998220649393631238598017517927582308210721149316984267205206887842818197861016927482735564541535525439202256848086789813616050919504921621108141904691349346828262159305947642412444832343165980098956885114786126895439527077306742268503345461844482227795271055962000286921230509425183489513996916783550071243182400484134207243372437638079011494040393670337491804227921571026580846714366430824068252942470471343052896696152889858728997578463061837861152167649252606927060014103157017255544622096375467752353127038617053649185043864334478883825211978152124362153545716564540879947008318952916840296731683013088182578915885035503389583281592831417371730670665210188517933830029189880566476015745676279361909589797548614761652317780563228950530549625011801366331513875536857186198888444272544470364125293454578765318457306083008636114957900387941171778782830298701366354600275779136784957775248536714237281074272445372219131444023934798588842449890076735345134174836265666371796392596342588718806304232366463968972625115669519493436497977746783316744821387980458145565608623338508688501516683834717554089889472475171113646439246411249629865455054539405250073994601047134377177516544044295410007163861926930176378665357876119143693149621447283801205312828050758818746448175951043492612171993816277506609538165581203849564718961971319571997643135492800885599193941800348235692307542797280299077977040018552921319890959618600839862373625037727933177536254802636107929264596380018522246344160710413635214228853466102543409383471948463025030904182277823402490533473836245829053143225504428339065434941916124901243218652063354984640425285527905402972298919227237762875125170805872610589529472789199881758208909629535660224233836003324251923150265376774211050669568400138737374845653508727598481332052955783536440069438936152846574185779593077159239262563506809982544091377224476170259667175227371532519321808553089641123034093589190952400587004740978562784262465563407861646289584650162762569856918673612233781079916107953037157672604813643697493443123274978749542945177549793759519341256267596592384776224666304674726252287865470811900153143714733615424485293064029223115178879996303873633026087773083895325434716540269809028866603115537595920383816169700203257981005488678488827631324762573279271516508778485539362288011770480536981683877842410284659940989405748888480800416577266905856482173625491889265666271841077932303107016055885741144153393593040438445418423046588571638559328110364048096006015029829122860224874811814606955858697506412605569998143636058199021493701102933093898709074573435319807899436219785520361303606133964159176518857086643279848122436733748105951636120583586000867175942379956036299620554326879103176331700212456913722053616449899820649912046522142140336710373133240354176263013536935422869498757562862854503998148300058448631044705147060277794221552563959385083780503668861882037001414373278090672722700198867571803915212774782217395422515044473630226102588558982915716384828674528285047947860878635776880236924633766830265015811524118411246701134124377920638425229236104757212303868208348405898171076086855787868197294344354504299449636898221459305756901310686122137204069722815963040837988653596410355376462637896095534805979776194325822040928593669746604039671978366220171256283523423021456771517658547960250940788446249835716123723565816714572215841595580215480614630984797051882741420953035542685003276962944963839280420954036079142889435150281185964418082081452705480580959549183813367376399324168150472664735724719512792322183882724750620033488680108526444711160838484247275206566172773245139647494756877017584731192160650278324022617833306703450811724212584205003024538802391898961370078795640442243412415569767771657186389662464233131225406427126839481649992962813042777640047397524414287265309877033201197168612276853298362748191756114053273985980598792027984808752855948828922628979299094076808107126106496710761416281005885246902887089582071622040190235118961957720943499274457583750465276086695488377632375528524343659766620783930423719448037221497439908606248173016964721451669967566787945962487143116930326963631418352235322933830960979121864653661181647794149485761863612660893874887181141846979595143398550015310496985038155494960825484876646538476468574635521601913353342566502258036029464716705474575072729428289305120215155979595918388982463273551810635418985583112474511265299207519133247390251736361966937603164206110125816948467372186501806760213049790876359945138573379669156760966792592729381192116211859649174329019241063929621294421486114215460478633201719650425024755496086513267095885780173697290524695456161329428383986376552997984100219074394521768720620113298325867066778270167102849533117338364418069027790870267950092920833638553610427967900517742602108470388076622619022588425553385317953499377767332028222941621630545831378080703112323043836384053747468880374287177900440191711948422092656148995306401629228459256568644467156095949575793182400901734723055069171881543933635789812472144598223292587984531756717655389287054615524517624875583771706066241805758588593220452767850849338752865764536582558357665400842337643983164166416712382648357274777297805113595270611629731327024270203627177195389516262601118010788946741575463386622252014240160779167263939772576181047566033658434622205979155884526290899256819947284405904491280897604171604635802873567474099186769574668384845147061352069508306942322913802035168818922630240786092796403740002210448840150692353132568257642447428623638873069086757888330756750147064703588816496869817817146047935389959908719644722404389194334369075851781404982518609086339562960893732175681232198044939177974060265766892078418978928951836941764375268671380463809534888857638679227820672805415920720327435107038674579166855739169673653642263660344269879195891306955408535059677298056664187091217232201317289769283165848943562304907808947980847169131679059136055236646301951521073703468672264155336652276243881750410002881160679982287876391861385130359876289387919087529653344293767234626317479940433133654055271900017519727857733650036652778776274703399385636335365552745603767073173641158905468816869038972593138536990634855153427246747153834913273412864029165252166011845933657499932669433084658636534109792418908979115267917929835048555551568265271358648590690030933332566686068436998562777458273507984107178819543144362467495802166390374092318087157442188694378678096927200496434420424374233592907173807356603248809437440195498243134339872893378111188482410710885437140027944677296787162930130690120176499666006210695360293486161966078048133814987322220095682404794334103080123740149523570180155458169514509449241468492789600892966777783019821189613179524809291318370164333349803073700360643172957156750953281666160141246631959832510200644337875441669600862586052522376927019835092408617149143089449361302717244192827131767633073964848574249253957264868803931525501963705603328720499262362763810760856180089880196795907313324324007907273226833577855172944743540571274979575485230424419967339374009675852011168692993914357720383663258022266779197879906230100062390892153279498188701001231459959129799784207864782013762120943671695182113267354332366564655513072360210164683691240550933651842422788638676474309233465305183918302528662301894481382761875311099492457042278878368718076401987733197553477006199608776237848320924600057411932807832573219545603938972285814945816585631689610514465070619979106651520535316076775343648823114951739042391957435722622261967019298569464082913657952848813307010100076653705412132318585512536403759655667284037962962095765012181944432818544578595622045708220489074645523333720127467846994852356189561824779734403730964727412822758777645232853648324432775107179816505733534823567858341869895800217930409043366708313536691218302982754333846165854710832269322649176758727475483711957601247241159904953618738375097241414654373561453627403985036353260859217717135903571560068560694994644015649413344989574357697278679572523228279551549843686627807420251228560403797399030301137966658479241079997301782150982721774912217545977339543370788335954736290413176207725482950345348589239583933445501941758388761451171271522853024737162318960935471044276720557455022817460731910020776729868854073389405914589269048602733982967785484945213071064056198949348066868567661050123993664710727082992063159969265632754143889353863986644545279232987797769336656953259339775065024611159965153428856704579340388708439009985847589687962811989367351862677960440756558892644289998992913965745363117768153929606551634688015407731085520412769266228279543343643087229746621387534008770803062795041985583942059991912648027144664781893491001020351303522886771083302428639209316314474686183497026763015713985666172999272153579451730964847178811636726514595919581685651556347081129845973399131282771070062372450183271571317316271803219898975085874770072174839483760583024394859435740191658798676494655157024954601201967222096881625145203353817719578888892114244724312927958170512482051267068725211375631422067237927344294362005720610650951877591186719376589232121991453029195775231591245107218372931944154292183354539728038867705313967418760756370051721033769983385623124905386937904007963306292017629124400923915003461510900197253120185855291652105101222568937857100362002826631155824705957578650339385770861200255608497622718412628303331092669566668602416397272811286562054255679267278588994800617680706963609037269682650666566841387116039903795236299858870402611314159839710269944149014776069381847403205790311487004765470213368245755440570711991128909418623582855649629702122469831556247885041725169511781797791877853215315961134684791482161966633848458777399156357296499510664481665398072884209172516599468095582082057125589467716605441474255805586746130912912231770438385476467357614108460865450731172150004407108615271975456597410859653909741870677258665065803232871464848381394379254780440169984310906962622880034909333687407811550076551285790078954833379779712105618709211960024090989672007997124691603497993773581787645382176267619400924495845082270070670993802175989630238814794816412055445491552440315517897936326936833491630878027962292444821637094732387551823794923235179796407224493374966475270404342165468185584852327448238365204920454502018919215726086563778073453669591203993911858644707037567836393526158893239267565992438481552251645643784785200689910784366758921633489680350755570327862952481326334388479625184350416566344906180445255759841015989475509259045392286927466539207673633084810461595157670848608304827851750173839173156340412753077736536976190845910160231661525140737424503011507245164174426478032437818140031003071706192235549314479531924653809790362635240621288480166222649319939829979266285835176234603918919674058385756931248749044371473018549594179050168893525053837566434777903800408797801538589167040068949602320994017577900501952385194885122867365026626765038049612797264756399766150038779781782438219293575336068250079231582253369435322148882788640735655290310920192262295422751308422804326097038540554490491609434862398852254516907857783608253461961315846413169594297919092952977541834871729001879409526210577904364284922927844237469425285597871017958076152546300539304547272205981066064402904974195403695980213859903925529646284984544098865940568736414350161907580648302863289666660857526471443727752600351287203699751509971864106772164318986372719542344015321361435115959865195713518524358641421928930247340862794031589347528612824972952109471940516576948917923484391980728676083221548858718582670911085424526913546206820616292663093150038283124086575222467261775342483390285720086376975279461693206080222352961571561836904776838121034600602819534042601624501688830211487653714019101547301084563705987159902000191906647531505863167791771198525082205424411865038133645560048519639351897422027051904944617692949647984916572372324306885155047608764864650836566980835407252362088030985445416758748331538087383327193758674512100629737476019858439432048900410007444120603747311642858814027188325973914127924515073742330854293251664743130421599093358080987436391958831232732268858028099892081903753941901699702957244177483934959771290173586280765588532728962195922165044754705865196685118295970110493354188874224187718971914379521232757286978593038936135687576283921469391317222241961365926989230834181096866506808969681534409982105299645518424519415789499367589931723210287128200406089134731724139540628819577383625446049423114615362049393091738798731566270520117829168682269568409399192750406465065261891256450393379333727027671892432775286239224982639253153136468167490870962178449136844796513783434386887713814891326035592087338400013027647755941907773216403036309480137701064614594092333705408276241720131291305859043584816351789703226519028142569107180312696508757905334568298522438905292023190839871829845755455089117482797188150328977669733608552380135987263472642604620883763593260546596004496113868539102287646441088885079704811476362858198614253015195910036906874238691995253331703151828954145605861274449813179985313003688428882736809857482696896635907085137444524469554743029333273872767614549320010001152487244857991070565073718437874353245576322062906910248724639589383291086714807204072919454679845578682944661762451751630861602342101805244847556976895446395098359997880769492576226695072947361435596559541862645801046676955873597200367727729912861955206182563581234362803197178772761701623780515787525375119154530050400507848022235216997552341377737298393206278167231324747877042006068627141968372736609518662208904710569837487578480994226886348178308033566586680812303902583592489621001801958282336946447904004092795643256749102014524782663955026061163629449670437513346429524932639515382126850720991089085500183703697509783061815239232726406444655864271426248357801912967886241867014579484118110550800696605032853154457328268151202105700303440877697665224120673297159787063294458923877566059900551383940758818971714176808884225700901545918201716770092933926338935068934610482226914203708327550523312675438666630037447603280745767996157985881677336412148259439186384580607044059590473960847627141163589164448477692704027885784268760647670717089492461483381600310121411611043398422114438904388336366092328919447189482444113870818082225120992003697738486357529030377826301755621562617125727132832364304985319428408908336181140946752081062350495517659916852354155031297912627095125528471071233922037477479795922026120564767478805539685973901502677971355576508659023239020327366734614804190061436113386985869584244815213032356800493974909343161760598780025458111356012623894005370193784255388926852121623527612348091781539308526783783090991468593378961374723505417412198844097505295179943922299094885552174544417445827451799494470955207405990749034684703065451825359611519026106173686719191297226358020878831412429285872941355468508204807897704151342528550264567211843539729918983659184451058012120084142100097399447044844187210313384910034799031646720235124637051434507106937807563457176842146031138061856659677591257911311055222742919718565567216733785270929875697605875904243677938952702933009037757045775601605606325937405051266804298152971464050212337571262225631115149106495572716593013275615412270838440320114058746712486922804503687027741974211175544270070553989066028236768368235261367824742116925881692063758335833739826480315098726864654581697348729255576552886186396005720909592111416670280210344653509076823737242203212921815418231504105579649586368903674471107178331038531959478395924226786905909262500925553003891332206535634055982505076320758543914143172766290627122361989907451674230428787986265530649154894872764839054698632888234367380874862372544601685730346260418408997500419851496202505012981269828630194935556225348529531444329928697230533680643960302279735610768969824078794474874123081716033895335980749433866509914582025097959305658346934432211975982967700616971522974633005411680982382080545482644763986225820308813439051798028685574635907454356748605510664531152885678012996583123208134240142752746352371213664379585277002152937224623246223316741012084113999800980541279919145580228498567185906042240627972305251498913433660560765964253774148116652547866636125512090803561999264780085165467445117775979616082117991807297219076694894526397267345481268974982429498679679625568513535589458940591716874638919534289344092259488070608900874902255440647815615983771276137973017443987352057151184686470787885080562218916100129219895609387003060574876036189587253176402167270626433346079174139280416670204377639585718565241481017387947048305278604660017674398188659270702434833646711171745971187064890899830532065965731458082463589804102324635970939253736244691948859068665386116419852525150966196764912386695407416502283304485130325908922640062816004354467003014047386226743634610164025497087602284714114456753903050406235996708612164446600304043078146353938987849492166184894133085320462119429919615491028059212744134868223528577034773345758975739775696954044284848630664531962673177591226055898821202925430080520051475144352228017065323701558873165562828647013172875387149412618435225624798885239538215190687999445069240506321757943566046262553641389250823618148954310148593820702650489860529807769708306584244777916459133131966393606903098676033056156745376648793363796806810581969136115250539817503965664156252295923609920461463504189971104485732533041386110748857605152408073366138761982656549262214073055468825842489944522754601617536728101834588828590729014546415170227199107135703699393227533678255404600227959368588880774084882940895133402325362069268268883179785353990392783102173224770595223956106761679183225316672876176892131182827685928228966647964139666693503265403036457353965418310425379829208650333850214682046679784738350562613151964782722577383206030831846315316783715559646242221244112826498085505093014244508046048878701411282136178221832832487993281993200223112024538122863240654958829491183890304822841861282374459548630302623547832902825229254598458095114974663350603479385815726125474814795450120835521782728345966014489603499588985725103551815179032800672828882058840208725113292030589289029636208433681227074895521742857626847024852264127606856484267478388399928081569277481009049858137806245569277283468093829994971672381541948499537662810259578943103192103479711132549436923780166472122689110318603536617093297135966606339652261427991269107135817439020479897463942750491545480137512050229926323061645815676171079723971202788068068437833967234894165851818963433497559898404263093415449087154994530053708627737821684544357531457545995736942373082184063181877002715389763294632373258232424265725184378410518131953515118465288163430063175720699641589132800749777352374538091363458749893938158407886136738380580445799665959264648566076431204027528501365679460052430238380551709865777359118352380325071520929220790775690706075112763326910439575448330295507560085581811627681650413776986900624073491079029487061742509786438285102005987766936097803690709260140219266994337404526881400915447326971561957317404325313188149400878119174552270844958039341388597770978340435309190630807725447628855195083643964515229212136947672178493896884044146905175581862151693163993214297816919392842232396476964443820339856659752453366719767556776583295997243062676279523141738817984690175875488521640759504079078266174524556907499398202349500896152347749262841944110485469949496747127884784022862899724360160039950567327161322463731812819437971499769734074417293562674729958700032406850781619612803871815157956850629769554528461495026365459073086119049293692619902077234588941886788329368054293310422103488400866984838170573199273496976157524305791313809669380369073566526169213457907877410333707854146413349905871249463282553550699929900454731857123396243918926271486592149787331485750478983669762318829988419628947357902301970597448067672567573183597014205118035994895483873299898532224271071778818523593388311402190503354615244902980614418402018260987183794491678179849605775968848935640927398208825321649863363032200357877635390711847318928076291105555574907809249008027316088082190392586031608478356356960307407039481000531321727854343180411053216359324847698657177966008514270579944583200740902053971556492904352145608614002448210099329534723286680849205176106147752384839186617346093914002140103236102050647175147844545291546301397615617121240166997372650610400050965804399379255841228412471435013345173768040076986633528486719876718977270168247232813094482721072725968381418196160377396051898386284540646814991214357079810584709831320642416563404988169753519351186573868521977770402509239768306599281102182919953681404550109123003485903973625625452916041208697435789699986856320847575375441874789554477336422437877495352636938600001922815826665614864667690699723036409280900525784437212876530970043736415427591661840125636098511998962954824846961044482758169710163892984444394986026387717789898028151813588249535417374992624641632156467114239159197389079620323981141452678563384959734550035986786772714222739544262949847246815590337117679570431605540141128999173070111799312893443822223180317900126707145482668520944805966396409019554438073088433802042381691275132525051797459965312936992512035505801542161367914430024845464579057770024614533930206998001672226580970015761110210870223264111664763182444883460325295257552930561796384206336518260541436982383338444117974062407318423103607954115151355175596118280576557099741771980326469756223475636754536914615964214336640170911401550644627233843865934471202561939977696698595589116846525076547709309013258713594667915408473638427342689534371256952413639690874062679409334184760156276635573354726094079999780872220104260404331817812153333758922379170022707070297078613320144591250584759509946798929843277982054441379286337465840488684481310824294343040966856880328829558447927139941315415426870299939656416731193034650775287140016215015835162784113526347700474954422985388469126182555798913156726554475315731268448839815732221762178961120801090922846181727779194529813404323022163157625535223988728068211134332763647427859860376205143585176298783533497852656042077178070634010075771511958835991426938909948560233586441919908950240871728410032522082141470480785240660559701692484802140172858927720318097682837782507125680682671642898204665960295643338519864420412253297298304695654561122086392153187857878674182261742588861246079513659153164647627474307548590692413143309948125152643776772810246491495278232297584397081749285297251231768861976451686207711936834341901776902655642831073920401861159678348142221269432199308351346645558108448813962938828028916219561290678500521523214584929835319071329253432709838557298400736614518127670058807570141688100550077736935155928002721102505969865982150053020351287953190823350304597302851217859442345158921906024219995195435005693924580136305089561968788211517707406679283062962716385406664240086315032589835223381645098918091691569833551675931591598633485589831239803179744971717103335001826336727513511915039026163855425298829010179540802322558150217573575149845609461852371534834959140722297017062821811599843362129507923945546286712048249392335842625618353101824104537389443545686176466173582031217003187371236154592729959517391536457824081184632607780710217128185867859266464212975943711590742484008834674447943331152410343163859751827098531741048532195541821533185164656523913552135929739070981807208432125652379053512729893123683946026363759791756792721223461342261917214321166959296929945744683596722920169705993046310524847582720354013349092342407587250598896839613731894195214242440242696298799003276812156895334817083484236016088773570270696605214447737999685149414963089613190800071245173607076794041577649664958006167772562162748573707590949361210707170937793706650306583877728512946465613162231269839805872140452971995077334747202830192972237263545351290355824618108693062475065597378205023887815282004084787126660814554350714103596504046072431559819805304372499270349565179464314843354818740252051495712365470469565640361602135283354350016207861658752764599659340331590546420294365834491331552463881445789531542460050264807416613038177483316154230454792892048176755058257599335807431604530108441057414388739484114271498950436209583480542539351903581414717418639043401831342333497210114294772295700111696834132432453571199518955038409165919354235004555219477691659356830424608905888945518528752021813568249745696387493513321897989392034017986101607073647535509658529281818554578282698521468011706553050775402801774924057098506382028560537710075491105785758782192699437472303152916671722514961384554592655376061304854456227982015242443734570268150542702701551464103638510194457496373803773790981347927596899647552255885697953504865540592883110128197427086291330192745579765830707838967294144358212384531936110507378738759134341873687929665123567820183661262685789182532563586422905350286380820499791997660882851814459220689052483473829522762401479124402107511161699851832346723496536681866256112959284459812493359132083415766974626797199493112161974593022214915767356819708436965445027407142879796732667392771098649343461941207801408551826564012464446228450379300142700930146382397119082898486779265101849666169887939721552959544582021136310763344077972404086008299615100289904900786394930195825821899141692835650689805936305154151472865216694775888498752681645138726835660390033673082341773217557675328975915575316555125075278580795004318622851875417229344318916154659666574163536213628585028408825052133607843202049823706704882922797366598613314615509726049332799077749927916446784616975037508537462748707573079311298128511366144233764430016462532630235229858365631341490905361377871725347641455695292684228930531124617089550726705717996671235673093588912589340663315868259268411459992509900415093172872859743646459331332848510712860108635229778523010859688706672147451636335569712636781457510311448684045476877187125543425775459804430335483427112630786940079637636999069748307682361861057234750089531933228910411828750713800819251303133454065803112427204764257642535653695260821400787584218414993652343876213184888894674982674909586689749547366395758876209339004266527255373165879311039367693540670122684267883875686132181256194205640065288331408129200486834666139567308357333585449791279401226479007055885523726432120262658816063538517746317376781238716841947466234914768073277242310485864151784167519886461048616224364897320504671464093079291200187092327253576767792910378127788999037884043021365848762272171527585798319538674227133166051780201147328424202069231482251803900036291481506275946415588034441356297269955689786279148532541155067545242724129754391108444764999742930692298209243612126123692849738500948426562671090990264803085121148895712190525618192753445967216859956682120227646046062660633450433668869382509592873136076415514451604178933336474171484110735535163754582750714078817281129023475719440722107989888416964157560031530242902748477028044089108033702394156230831128243870270515531616118270723995700463073814101912450511688862053406713861177533312876165801306662366256702980673248718955922887578334942663296638930719080250975162216442308254150831478280002604013535886803203866420331359442466222833819374916315547274286055997486019885773825576145774620130147748592627838991989409208712315604569162993639811545581719323772524189375799275034488587909442343411812706904311285941775176366208833296962648770994156228058779042733262350447517618239823000684619064841935107017401720068816522335978335655081748446900961581944061902425778672752079983500992105575067231622027934804438070463745844703919682102078604796011993286541968896237403684089968122109995762843497258849902841858482821584864890709900008211650763163419519270071581471092064230246755666276546208928707916542958587388611240460544411409158447306930028514196315165620502925574229461607405390577026488170403419122603802257178052628201542913832405636257988500970087845356959793497729780422453329551562957958225400100812912884877146678005101560599653153488094104679865388148598540131458723985946297784584973398470566986717148292568309407190202183438032584988396161573681803414794589839109137527453444325516920373980809218827204383531984641961906614942256312453205512702615648739800287857067078579147257649082798759125547851394747021047777906809778496876477682751464043470391662615786583159096377174730602530575023501528197222924198575181105348107846647341958968569400726584875109616355405081487738068845621574572127648111704790650895143613193898496026605553205073910789819708561710962464256950178791049655643997121394431563623445088559224288440725487739791943182224877754457379411502931051375025245271151339771975176178445928171330220150696116734548546364636297152605940874095538976896812791964677517890687445343413160048125030176469729932015483610779145016350102760607745731840019313566849458300977635239949736252964486316799133990252809467546756959282441510069419643912920132929989901750830041598979587167631382659428223185079099396011713343550852632529467976562519140266171773376774661651587272408549646133590062791529257396254767525168272077439081656849616570107029396202866786785919473815607473673660248800840066830492597619834545330562017878199693484791091900150228465601809404370130849970621269929828702733536040400541202978187144897416724074994441482098294885295287395534404397040708334130864982186154500885647831846949865659686506101758362533807664841938179500282188183087009892732065970275605174048020138957841099015233300070230309789393290126428325200126164470699691138887256919999554761756109756011508207863209643962280183680085322035501112977169031649234824047460976574810598773287212085062068077360104198602378306638089055577025596301876239883076121335260319072405232916814785848406324146606451086639805938084214225692769697458422060729829166474446184585737757218729103535076058766424957711898791108696378653026118060719279540117999835785629675467413714034919875098936548584820825174024221447169267347774039293037730554251597877810528033956769439433340573912309995431350639697683915944220633891743914183225829037567101237527057141936171783595833000657214069599737352927602610148129840774200514481310421465983179095999045643504288164055245724426051170580914464837352897202160927122168970617256081684921278164640843986899111952281184346456808549261334617650735168337107853018075417773095421045771812468245372033097305591698429115784920717309954333740469712476884001798234356400452325532584238771201183833141189646662286591482283499194345364206626426929787055986310449299924727339017837317912227220989112946427940328994260765128424409709146102669174561639237278573927311930646546811545309036534409902459583143200090365985163327339342011067917232851320464838454094134904345640624162667875691117972842119186142186710689770053614050902799349740591163673960321972538698044664593429010055704543468877303238049674275104429979441676316853292294303377785206386096024454575721109832430817006752069422215413288382637643344786091695528668560935086194362898310480456717726515644185650942057549794880054653577342823983779159777959836444660020606591296191952793948927574817628369617546637752518310139213415166080445648958996033056730984721515973163365547248015795991830761135706061245571647932950976398471223014826691494298471022188934706972676408282116962412949072282782030883275579344157156506855228094199701608696014968436411216259336813573524703845824470369754547866368431063944522117596418116861757073535879354864217895546943941622574673255633317589702064956459297949414814599722883613749837639317958416647540228836290155393087440489886216336425615582813361322380316844868640061091028487708198873062601898989351888298037375096203926058150294271221541801970561370554242977911852347545508413537201712833386684309176769148335028264333779743867698517668549370815349559639033944971136337223659999081040440230153209268039831192638166324333729556267349481932372300191259376261400020841542174412101031986797413880631281968110140301465156612270026891616923181793166206236807491620466648367862626954758493743822964370090621781382050988942030904298368945102969590604920563560445658590395400229249060408391839345222630470157029566142273613270539006349218693088398477308333888545363859237721560005902822051924529641086173490845979256554599216119812211130445571846704908777291916904276352789444829291341173961063517931311131183268342791434866385427463438481377740864426388292128707352579156035108519588700807150664378490877860480823596587453566838215557207452818430900997924298492323619003355823911225564747843826967969575779396128904306565369165555791057774521463189874974574956574626035645689737547142206803528007157222640373296784578070812437772235665587872140147899270929395511398665010134647859164352852358562940713980427324331053841236414883876525816284939740907971299491110687909342255190238206389560754318287551410755472270632200066616214870688110132679676438274398328577870104610499131135100957829489202262597007385495595453502735427572421337567385422557556680315880665150885765764364879778056950779505340961419754851748051241416052678992003696210726958830742913521025792649790664023505123564927420728588041479420902467310528322576278961914419752106931963960940764845750213307677297633423107650964866626593559261576740364395917706944638590474752699353857522784935609152984857989079234454783756539531833797547846657460164490251552092827414929483919870988461089385797271738946883758540555903216656888272687342374265723209194970158252451933899172959387885960511956920914254059611777450378151208834634252042980555679613351507849885252232764171475856844431169642273595170648121514222809869850432279811626556130883932807958700326883854717720679626564551488299973745749103730708188067985188231047771481477953644264590469220465389333661848372553977476096125218252834339896492257719987476396421001393134436660249252487419226205009654461749687903306417040505912977988356424266330387918299658415466687877772920335098151992239265902030362101530293490360117604215018727075050637849884979939983523311310695706336160593125179007027404556353936827671818379424138320407600957739824146164853012013987868916193474464383189356559393122283796905380508883102314673088562861033349650441625562139287200254474953930051913484099712352682134395218561822026147636366763395531993712262133808566681823142123031028556801295933327503045598705325943531320129508184095332544341726725736640698487235602305560523448329394584655914156908039900187112435359782603237266593192032911539164733096167799706909451692742036187537045587440942560891099414884920522541951674982497972946041508559216805385624972090733502964563838228615299968436122509068529453127151287906652711669788620984317630612385352581918100748364179809736185556851907334980169450888637514079078278601601651964596970934484485587300388309800712179238570917598048860328149799980250046459463659511315331113547539044129630403989001700893364804430399407821707014094860520301201325599372561075652287172762194440422994011936641540834939250696101088722728235990135451177496299392980613959158688407116831568350858000953591513408295640330523345027598025365813776269923978660136205185865492872789854389093037276749739169670876731678941364830791772926859831717850718456032292325389613730033532298105429215017134548329014977253468379875103864184516704217310516159523834195851231129042317376720343159197898338491641501109681677510264711331613256053226587331900661675528593500238796470984663869022669299533300510595142994491625526991792565220260049719102203850417424866424042862587004951805257556738072289916803641590981458193320469885887305600743088717435024422673299311587774452764108088890274467311685870847168987841621060096207829251653695754009632170136738582307758445052534536064701528769673099407515523398750553294600595007251594722737975776468275055984097142672022024442151501645792696379178865836345498030725234380763225319698531588192294548020112054237883916705915804843533737605816337327760938754409332760058974079642541206932061036247794197895751950530685588463176217012788620466032671209396088431485572048251493165405804866916872229482371141377325609794709395684365010903796367861914551224771151085552362235359975594773845890145859660182667911766898255675104172273701968285497063861879458859348240561302835884169051299636916195950597447291394952296352764684930427046947747592395683775750526944579493961975327893944183589227929525562807215853971046448956037314386737792757707162604542448256178869302334878412619099055231914045579162612398874980323288237970673509489768247774284651947559604806930093674285030108937146667540723139166322309889218504876595349763320086142922762235274669736223594551584112599546486650381250711448750689414069585054967598827665349078519760015194929001713095829073493091440716817395579486555303234715320210155645368366498814797257292515049971111981989135166913206947417784797701745496626568025714231075086084359231822720218127849488716597404492984902736593374747646141102291696349642859347337562126082397940564801191400530966391712984173693848435421999263877539325952106209954712532431338326002957521231203030273467914873895040154707402473621536358689083721447091735440656078316496958364636937085464867728472456012806847905716058813542278802399695242301052357341577944661988590937323411029158562372304285805770001290837484387159673942315316555691771798265224357371935820724932043248265560465203010411579564295560492489174934811672785522867384172418092246101945069190301770139178293205933142292483880196938719705569091457647962618397653145798224263616930140122060854774175733893992985222823197607126762302801500875631179556874115386107906116558980052079454600486039943118860280681481672777414367148734590604369190716132331764901389489080312585454516106936717035570533507272086039965978640872842561461342021692859187770381021890158659927688867940810462574751298001240793929648952839174669424186820264215210345990022885706272728764731287983938407035551951007704957824445126083674151448329366981079639723855602449340474214033660701675603297845238293463773533028556983185628011675794253511469563238475409375968411777527724610687306584963755607176593648513417382963000944076594990848043383340801683524105677014579076200206759362402754155904516884679529779068520734423047281102000805494918781094553509701713562274019995469624211191780002845638541476075479577249268835843457532799388074768398703369458796428059923890169072961245227892144771146295154791444172104953400078468344612833364022362137861867869840988423221042246762238967907669358158763449665154509565373537176182308329734974289185707402722567427309040758896576236205122524658662318770282715213903826866352990993311834644653903978890065683564738810103694469288868640631260759904800545345777115147320168182766053254566508589835083162857318688613958099249421714214804101502011275392517828078713731053817396558942564755864186583236191553908363086555309340859664266595155319673264143028499856318309050212640103750820503113896964942641984352290472747985920844435045979890162132802990006874996888618458798261577154806421647851761368252347748422394701499497374788321734830556745531504541625155720122997507969064108888066377484970853685005174554022409453892035199671276969465960647634759975289142060676702125124176887135247418454073424231886260188015990702945202919682841013493382519896553086617236344905392700969239209148271162518417061870351120554287664727838085848209980968960593184479500157870918953513253880435558138350767004850452857755568769020729906944480921970281322411790117065224310192107115508194772932060447405552908763147494676717295857888978015583046057794608723044052581683557869374427492827978061185155889387863338535545545340535905160291660949139453977324951418876995492456475912273840232454474223931476609817294696829486166825542589490918075661214611534667641309145231263390258672966642310261437557064578742782198825881060277224693910799600855715355600064215895213251434804250636336348032915989868217683235440994205494467193043430678231922500522677596582358460296899346999098718394144320593848692363634997668345319273761393202376179167020856558316212607372009091213087949563385033625776712257063999262461440839456866963592492669173279079385777742952053997365645688214490128617470453752420734134513370354139709907520631538596961531394288007461418347763243715029604962584508211620524824272319506027916829945457390113854713326913573725635116942921563445647187298766739169414017746818220455349336865420526634539605345665689389607799461568725181168620362536836669232206671237239137741002550254267416630716053230114030238814178897406216178986971348775694174907640025238504371722841972566073717938146365422609472524597035957243578922781637083002851705178693864379776228184846439887149971469259382850126704725748633762868183890243011865676465571035629101304440864479557355455140890000547975838113247079751018311189863137290550720907576713476001417891478916399264148308830503408049792084658751638846801193717438828720033953346563146905575596655919480263787783455788624672894369402491489711741200021350344690644906606722362991154607430256254517503476886988099361778918495640806437160701314792071728144844728400753998858390917495661737413351108572494607005393417204441600246228865270667868615023928208676670728812307762649634353277776484677690241688715981049978949980973294944564778122432002086310535213280243999371645180650766280761316954060244133064243113941463953888509895223610251242201635008271520344579063133205780189957496615759146924112727579828911169447768737729185018056284068003072600388415316321383194008044190507359298525023025853667325889349149212738338309861087052411823472550086473780277532957191290860915686010136568813443148253684747180892680749800743564705842426318874307050050640690229325199732391358254669174749813165016081802478511332464153473941036636084853824491892066169043017127077910295032726139404407928255401310695095671761962973228830241130855855974421468716027638304704862238655726352318173519169792393199970863308366464740574237576302082828921898006086879758193502513976828251612562207904189657589028485154586942580847439053457600516118367908762674577