PREME/G/MU370021

016868343928133585340177614628316239787745765008327262416947287673909856373050522491792847678705130639919577906047909595371065536545525061294591614574759892331524248361946574765685034325936083719794942290070170266063372354105425255936353765516041840809734816905224900617965199597062474663988101900113546553080353840391259980805916249897828381942060295627866368819852420267064084473360548620786559107326677242724830745839099125214857571995252296131398147981584028569173789341838489525049872173852316358099621092783365264420593287035164272596688048086167320837949414987588696333705778104390941540641874310099109448272020280822044949158868968237179463293547199219797034453616014963254134959106243629879342635685513916171329576648969983289393433342019712852157111846247355079590468192529666997443003241211703254680507149817160634341842769541443998256979280809650891156771207129857844782025600466467905893159558603989023743652499234494615238733856181986856707195289702509495462157431494908991001790027166449764313200337110204568429487668571318890362520795268562130549601508642500893343418979150175368788437613438666841165382518309450171104639674190831095803193543332456536909690994588409394847249129050647171824794380147709698096269381082900860511649750598994048296114186861764428282344174411774024158599204368746409782351446425597282493543642474628604609232328976198923025309151278265984032659366071431191660681124464352736865417872553768892793662386062533734247775012682218686864626316005872443710648558989695781909812494010931919053256760528587717765124298695267236634360300109961273977819961969249366913863495775017527866701998172334578038290446085916680475428417002231480814454349278204074411693322307126609294605789319862090248857678671061011962765727754263041147636638637888225149425684192836043626004301740291058090975608151512469761487201953477874215546595504363623039949289142928085169119922440539187983204706795841860063306997041168270633406969185707352352284484987870907319270463551953003789747255138549757702782712401296263018880674037728773966252274524097538270387209922167318810746033564031231873568108330356467652814237011508530837709990472521910277152682190657009773363434833566471807996820921029166326600492053137587561618182719157472998937835548438434577483528329068728066558931653575549615584946635315170885457902109259945687271033593636065100575833464954959231105472912399998951153358067831973211544884130509951272778262352492995227042437699657094063917317804991575814149582112982718568697137826262696603104000578943887034192215559657414370234141652095144236528062394605034308542353724197997995240697132533075498071972421704071492622261104312761877470941453629054092569903219400385454040747953538636372752792613569943575086034270378408545185532298163103784166762304783943068054340631591249208204405245010780265876956131228394172144210941262445470844730044518740516411736244689983761875374526398627640512313899770958815319792291742996258696399477895061572078901137528524920961376471915577411506772375372479835905307367504318180033036283237872675365421083359620447095234561541264036012603407610183375632091408272932064246798726163731732693760242246937798369064962259133225083370374423856078219216684594711335159306680449991568617587038316354867310362223498130741403466012805865922501872565037323805019203529501304648888256839014625476770991095790026171604095000297793088851387794076135309726881567389129862794873981366855206923754113801988016836647610524694399562289566750209357484489417582959510646071547917783625722229200940825827423165145936442775208913359622664892571108041734493844141577522242751732521550199430489155806578968573971939661860946983173508019642310653596182035614554593839877354305463618768443788091383332156485318310327104294176945398229725069611023752637590723067379216545743710989532037892503674715248009224432817002015932265730074555457436282497870333036463765624282404138568091750835867078081791176800147918798694435290349670015528254735523379049802269245285203335915091802528384264103871720938441851789208070202828484536653745156132688259193291791360795149855549259410625220000669342417939935389823911736052407686479857889679988243227920612755598558672292610111423130246055296570696915796175967118522690697523599326993698087858776946369986983358179884488159432518449966143116320676605779963698581723345272168651049426090510548628794800277549128244422016709821598188959352908956160088461485281523163133294176411123102505608134146539335178316981035366725925211537385474984449401098529362085387088641608004676256118770392854976600172833395458386328473685785115831024186588369783466899524166846490178803203644810695457856660046373909420514747761963673333416084655235097606505206591599817762751748363965718107027225008063133697604716315045113196674007699435952526211307825386501011458062284146934037089912886002726665991950069388131168630996055146926596397690432407554567506423981288890570024066366293767565318478757655359623928753826874044128818387622073704745408641138537539465320579947240684364904269728980222163011113575280279211768235006499793673379486853753377560047786295212201491017062407553504227161408767798941994714393799587609586645772049365674119957109964016854249987008788352356274095257413772007807005652482212247552553496054765485258445129799025854174291157370836675656904883066404278869355753690284965304593618968790083264475150899923236814278224094483548458886343125484222061494488832912173748279696073995131585781906628848574190872100593164668649372350200006246583955147836863501386397772548016135506819671905760512403217840220114342003284484018955689900065323799173880224645630683653273585716851842184711567487953756775417323158180247061368026179759518559626687240630346315911537187421215925074335655934445108680081044066703720156090257055550287572106808492945355872838722416909306250773790094989007894557958921656589195378581283013954365841002198350513889517337704612881518834968464720723454845299284181935262738761350293252962691051525688545921427430209646510617175552245737329731108162570818398812914681454251074316978849686469434109318325774650769211595789377094384819358602769385498637554847189897755747174973802123822449805504781140026390439369308354304560343909612058777424056003923111974424444571688943794466967737920047408893089450798701511986939698866236831705118756534375147187368881659315413686993968125672122676969306255545566821896600296226807507660086202184837435782426572131215970480285148684332684251201551843232087851746465903778587486573550069078918310224199197054790232908989934595626792822539036813816333248831295060153416738214550981286651184014041087111564672788604555617629574154466437558134017934808830119362453937736295364972583160099789426738283320328473017749560751871749189217673005413840500462742287319511118309935152766204574037990237546146790544042654592990789195897842413557496427624658613512470037505519043717018500605087012674878507488409563033768653749003044799928933612671500425527489559981865895067786565346950231068434448028745329542773864006926139325894485692333313867815286647566919234756670930655436761450952823806012051019018583867790001544687234742959367419751365412796077113941197161298584643184385723284199589145760423476171131324011453710517603975146406614644612486813514494521998668688999478198300067511636728547302404551795675695052012912873897499917388224969701965236467820791119800634434918269604484931138421674621784617522085864603838525201828201325076180444483010441221607534399502623231510359131904392503147987915489062802583978393968856398185893009624635712344771005006465349907215758472938358063218521633459599797920471566012920707604546373397761630398788449185903445793519701002524189951048898187484505214165548401447276373221369953262267415967694633632570408682490458188647391918067033887254360436174539956795482019192210184599800229838768352978043229164418393403058729752020370011699808689822267302053161348139154830575053369333057319095509916879543866039650479710367359918320752960416134424925318580149560307735664312266126631590548855191673607091652969116333312343828165844508878028038069094002561660391525984898359528661828976849315440484063754851323127716953080390527178002720560027617765715123976384487285396173634658220769748829873824177730746933943117992611552362618089048925332488328380360380767718443515502940147482431222551499460840955015579022848760051510451656771291031490463588238514978395910097559098786169176830881443468769487857761548332372117994198503396081464045931910967434823763174592172202131066152846631095622449599992868304107514043006979563760602637420756691855308495499342909005322749428750187299517662463974905989780330777497299323922006631709863079818942213666021912791551143437723807609277090408948517439493604901216817728775155092044613695366255666921667768126491604040958446159382822813787757915708607145187992620778089278911504094481907636208239663978440941084699284159473797509331757939809854852269921680260045741237885792301758594399532243772403586979197622009643916654229708028220426675981927665817071974319008503862772520674994355172915016726972748917930625408670931961547985459838338616434759378584300260722771841460831587897536977598751845890083985246536532034611428430393074503586828355445316148676199434273433750338991958251914407032165712370996890507654524186566516964605531154377764578497977420156282168744938728087892638506263394851635055966740473513779677490107628016344542122920073242807962174182105077549176753598822385108399764731244889272333409711801251352867158209226444095278861077273124091387131498511972499516307155600087857571533955581090737092364014366252302439337617207755450312465082317019075415457997970933279511644974883464961672792820772268218117930215138636723085204953895464907801707314631216797323585757053970452849487386521549927704982347251706809781200339519740898511438752734019393347017260032185436518601465690662566489646134895944659715387367510949673275507228604352381578771813171429191521330769718331026244658557836059564107139507236995317459771607498008663886245931194352272525757308131643925964596789125723804269996452989226706855664636179047601395107922865404716778674389858325684770991270354324245440642877514711451131102112711257446487476515075467481346284950464127773945242458544316882503608066832368834866333424105619843916920468613154631153624446761517585556193263601424362668268153145194997861009815801648010775860261719964802243184069474981707168491624403558165573477181533329795192770511225828316842931118211493045327382158177357454016726263458909783980179215227186859611352702555093688633694994556829482768449936448403883279767588159379604355652932561471149897590355064095144899284319715601737220303884730576968136848451454384300537837085853787602398698297176825680922465822256638642386710542600081774890043868071842721700110010275445966433658145181518049115145199992968765044788623104340544222578738261153368664625167433572721540123206081043915524610188599984532552462709425394794611740385590172902683011205577364876227188163696158220677924687461021326307584272980358528078814412616557742457662982553551200110561655467611862711184786990362660738989373172130829614769526314582874326354631186747292739603528166735538815808254884240772400554468316909577490841329291582827262223327826117363232328553732707267106482274460058472334546105736146445221831663497764847753859461894983964056176661850516868153663695600383224602187979328150879847511789690531817117925571187486292039585412325763434702626572286432494960681186837347448624621185351975780751191167053878201261995124728382849556938230679835461937168522555382751344600186753035123102767116834275029795086682939229127671394977262578156556849392118321267491049172642324622760250166497689410377372463283243833249087141914945278850772873919678804689182952000684532031709851132285179346210478096789049643114429081818499204584305857822734353520028708928432677045750034716861164129061854407184961947623727279182882573931943719216379606064380465871984467100573314064472496716575708540965555101051137443009823887004738068960423993377685812328338958853492844523510946972619762789479510667106912933696088359002274526827216896520464180562336955656800157269962729108200640573495129622185484446845434185632192116024763091380928290255812148898764741668973333129041101651927666607366788435000349163887707116571157577713307999119640304037230438649182614766046167057240879279771625719445011574612698870112154874797355669746214889869187814676933122834253350997971281982930653959831632516290627061532058748521518201007105610275042341438553822786538547137402699822194132808505285372971946886103912358722060222770800913209006113388360274902059136481762494832796031875124313965305813833799273312448832336080439852622631593698191334748306940155146188786293386670664781422562650270856460491461680914914293168583137912307947583069457187797835215106994228846611127465085224553863570418848067681202307889178759961892009023185908534258751466923599732676876123932106823576135321732497591192115832322365065260760215372442186676029446748060558070150665443150473060733284528514003072758581640203367644978297709688111502614847867624472216969215096134128523002732101698049151582165017674967881173109584423782907162419283386471582462708232654853426478635226835336584634662009546145817555126419148481126700759340007053052135162489052885815178475264042420457492124609785537337304891201583814438732072700525955416344955883576139570421612325946477720298284471168622788404653884916953966098890597716250391316733189850088268850281032016231750715109509218493922315110128125375317983188104767203406978378580834537372059160068021219504188035870650501884881225549069197512285892626509042268385301485907703055183816742687751966188068516188710020029537677580447862168434016895822552280241492359668602564146825465964274413334780173625165753588180405519153760707260817624066800213797797472547982453370246717260172555510634232595593158430085426702985849779652174321142782606298691104711329197397062820591291874042072756194943709589315304825692359096185316713033793481996150666252490361661355303571052157920186994489843943591932739630308214383820766437381252415921742894319044855969232547905075554587388170621370323937723298079815595471522163916020810575985697951589595623328389458513000921705745436952498866887464246466650185714733539569065064414360353512999321913853181474742655346817737944612915753671435597754695880198998320448228057110235009888905733040443369732255392789241606242603669221510942526182693759152570283583418260830398052711813362517681018936587592270055273847974175800913251454785414286239226883546370681346067162600496585519932487822207355265390365199418944869362336570061571606951970040580235097900904001373495698241566059174019931488575319191185902776050721350162389187996380181607090003642084373716934501256698182370086686945449298465757712752607734858718189751919069990697726658739060789708709067120159348559638961939788312327931372595574488138171931919776590916785405539911022234523089043825877751205324039887201101064030338927154777745613360134264486117022396086422568820515977477758484530382940234079569583423458878078751774628011802364134502055450005802035098013043669923402490069261758687522259965441974420719765020523344878758071690420292045201241102354666930547053256698236677166913126247135208182256668362497357176209150817464334243458770401409361315545687264586731733046106065693265762585448753826889663950081825959250332666821371128864856722700072992857751091089820447565766613505717341040409431792411230185562075141979399602135081727873844090696468163813436217412218977800305771404249724218406068708159829051322353311190016323516994083256964493403814516524514723827545815434588509848562194796565695949859207517411158685409819965388871508163844217753984355694218907802862600024472040513055679893693134713947769818323911198110804273687503938768933882771489753681165370486155518198546417042084749885511877924230407498962441382974517910609904343360518376260362331069702712883871473504140836395235352611414935167342561387735864962599365743821859302958343365455969767931768562810387089204249014682294860939247642061179674763594958633394704825666432405971194104684662187256296302474753822463895779313096249595719233880776401102521567387722967154822339529602444278888297408095471325721230641441986735973395778674613511495248454545528186276393830680458133024818611460462309347984002220029538671236523812688201622773629333396541762348231405415380450963143817036781874567109680572697496275803264373821873421232499670278936184990299537729875460626042366884234348123823532461948636069003477680586165847601461885615898179731825962999860486317258002633270958052088081234602905737898312849900239692952533428411753292830095679374691387074115809372552629795777620535212841561886451363934800888449439350557362875203373381061973275339170899792501590080754354031974220702457617719647182188894697779190164746019799776696249739396968033335846443329360820951973401439769162000692788753562648624044140819182068212729218533337280463245180596497627633239897886288207834027912789817157041332029366579681789958135651818295263749667684873954562757237103652303703261759663055626091940501285992715732206770728864885987441292290144444366381190459375148492547847296118930686672379486007883988082140696263978951043379059733024190523958581904281950141379289714010462451955353282952020111009204139031783758163927638646062915998610942296911887852508069858648000681053428517601916424615505840938357566777716398344270023495413919161025870299693878160693786511799840026120031691292713464576557203901513609542301094215519895097275489891034164217235675580822776812594552135843424525618692560174716002447480384870975354046470207808800200182159381095382099274929043591972996729975732387082819461347012274477744595766173342021673072934596275583275440823478482721958571117586422925784314283668397931289579206623796932462512082161456645485459064117202953588652141961158225108606280654356544099963061783233599905504633946036397674086826870896524022132952340547336186702351494171099305782896692614920293994019218306221723605467721700316352322640595724689170024027000917845920781592029667144173158821057399302596292962715910565288291953995500172344990987981028180651126984147694711836062441170821930374723896720908259088375309647868232715628298852661005424915754078171527432096996393307629118766881230973322656646398228677463323929572009378920787714044454310087632989994474983558159273397084135274974824740247189336734682717152333438087906643431829473977798648107693303625075533070458800132251718783566079741642689272686092032196418631392318123879388750929713520152078478163579598450049601467438437196097555815340974909949145933055907979718542834792941623810386626163224454930299482003595625324109746738412655774817812119655320000541868695455199191920339122291979492130422741741279091669513112308356888099877727654773358629113204605092063681147066965476727892156597905620800360031750671011976754815306785012232391083187200089953219943598905122364621639804676168306943243811428565329467815381689470310172486304366198547117243220644415427413082820747731652277954551989323408174785820497152367907668185037198345426283609913469009604153580174398645723652207419106924978445926623723191514306344038233118473487995195837580619351017427224234796585200121899241691565099546052459773030678089976033295856338007165852397365909574860382576969012574770860778279259047541470708087431695766309297738894226328587250629977180294788057246870661374683106771071055477597965745431521499976041970001550425375429911738628338684740805953870213606107221544477303489084847227542160313739573959352523989866630492616549491258031686272184780146581490170130433492501395637257930719931645550682934941527873868952694865738407573241186446882407886875591704948069648240333172643918636514448759026037638012606847656723879336989403952331277785643394900975093479401207390273359946470456621231317891598303295067378456555505484888500900742129232992562688485677150709846672540110776523805651509059471538291064833668247393420412980190143291178072007923118768801325153344152958494145774766033619253975951087936294680031811103178242676370215122028382854947830252233226976516023387510852105445841728397201127641457154685338175364993822459158736451376236451251651204711576861306883107404423199577654325929969075018491089544325533001211162466182584738808388360265298387040678600097525791675140261643081871331983894697219181921008665469107335106391187843658330937861092860343693163000245395509130104652649710533820828816237742129942374382354165107636834177201409380399248522523811100087215355488029471334067213351000648113331583839968635092420160010727793208130034543043905476294904868508409128007161525506621431251169027334511223038272367036385923358764240750738388964069390731330790303566919380273305150793518803340960371407882025951336856759710110512372702043705026317849525442533265837056069979619344099568518206659264478322356114506372554168100927336992410099723675928600671265584885760019340281616995559405271711193215945046404316771316994098581251822255972903603856056580252628180035735508645087956215022720070800760223038405427459813175296680181225391493508591027280604694301153296797430856303953650405029010750817941443094273480934952596110987261864314469197950528869952078208368735893597390406888063371759743702999903134082056979889882272476807381949627589229557039511910828433918850833950171349482012871621274237556902339009376247633680814587801552620806234883773070911440307602748240411056253910036936008091625642730962976304598144082303777310406326450643609663120648272118775699571934036715540489213768469745679438278420849323752870490229033658105207814236772796209040238343575176798301002130547784451080609053168875078378381841105602517601771733708990477301968429267121432394905807338457143196552760685939222502986969780042632869377213854657470554224546202508573883379944105066213725447602774944657961112699101374938957089638567190798874978138442147617350170322027925489931932304220417336094129491001205715951338831509562501989206443780859925866120517517700153597040799311360206472530116363940326744581130719914929375852603197117208202153872246111770052830877700132003718953272365368996821317618682600687098363293048173599374842940298761477568494746223752364018582507349864757788082415114959542308131579524881907472853174626064289424894073760239384806498988495770733466905036481900142157544985025570399379916062795842077654515214780345884014137840314440498227018019482608938046145775687559771666975210482460760847799119233436289226387110570840679057484956199016830070691336696106355796265523893785534648859669613732895347564355106235005990082385650986592815409606139101783848252267982601111075248271940836514729613655222143333534462135276476818150499659574655682879537146835187830777850390325330365339009021698589923190583379760218282072206756298014677510437472199047781568124771814027472866668329944553485590036089817053622998637946384783290452621304524659155263905885396802105583917497007006472377853715660145173640894530094718241674657963844041112595423985597498210766691998330856694975084292621549288633374838865091965794556632756295032013931504142325851478276156130439694312228500163826863205534644649667666480680721460681910811621581053736879326613203523560870981723882100423685275622089472005648161203722054171972287123899136675007601627606955831206493752844136914743915928814821583752009829934705849295670701876192784506207724230559756052282953636152113809287594717237044094678428961495438882676215232749728690501234042408775154915192327305601247895871380150768612838741101009115640727846615123841428794291671021564997179341794120655283243558423858691038198816042540015417819684185741678555029313292665821856500230495748010431246259825054698807222727589505118932245892857490493847277379748016423434645817348278922576145212984598654750273197644395983684602246392691076989653797398292149524811370965272956031915999781489699788959667011049472304621991020267582265426694875596110344795250725819017179776554563204996645320241213660006957062065639769890603493596685116733356044254468388242417174598358067875682200244295906327666734694838203764686878314312606573281563272877522288733345340771279004537362955539530025962104686003167797051095944238918343342561403542729467737144880238147055165700040965427352733312950282095403966138591442472644406289286620687792544011900108047043781644813633922732931849472700932258135969299334570217551543857757193266413666511006714077906439110870778460160887516384991978095008297363499380693608402743513054356432977015180623699673035957023799905389569863362419616443279292943302500324717171796513850459107686389315422258855623098445090049057766950631408820068836479733759168526726625328347257515542682040279833975900185118122549822921079451788312878958723827668646992576876694741180160612998417604171110160337867499591946277816917080088960461933595269444130529612636359033456935115366860482917426017168172212993543505299872223860129813011665326927961601682554632734100441973479251809352799134906987080972464609138600772798473126263143267252173290682463431991223354621052584194123685309280229378978744532041575615068935758004518949895057926825126388124273193512730840353472921945429707606307222518839726561704585108459505258524325656657673503640959378088547082173755900173539698204931669967646301067490830186467523812679944180360713881694315960495733075534616969281932937101844696329215943294326423402355375491180148507821146233478497322883005687701755998117874554391046558710679280307835578986307084623003469776180497421504698366075547027808996106896077466788084705912792066203225546275016876075494770202867866810795942831112061263735794870780062493588638295256424820494708842543003118082540178550870648743913738264129288459180386072248393889516624053038433173629783193226545382328124261384185771337491992708214768250107220139839148416665389824851415343733420826695346242811499552490030627044465918955227386696243722603265784251035559965357061381610251330370543436724184772843877498425617198600869752137219016892138261869827037238601713081270465636568440077736190114142656437328037676134541158127832248746586557366987884852200341164464930321366845329150787878979863014993173920743604648093493830660994076402694397654616337932649405686629425910437210018235026120193157575698100800502912857729888467732766423467897760854156105007198259177384667829144668636365035004810295681179531671293171664029100876686287268032515952218562224193131238834566991917300292706391562846780421775267660172626838731127101899832201148610143555909425440493176591556034002795969001011973802682016426929914468572326698412352472956315012745508950690734439470870314027142897318340855892051656645362293087684576848139661483447228684801190616865440370178120830097524054838144251944190716142902503874889204589646095260687545829680828096886729076854212222943472123132148612393549502211177048842225211816446197930707153232980372373983427601832845106213583457089552353906254382714846242296052247944685753111443984913026713634806752414129728610474342704017265386566554160591338867570572077695926840321310538816794926833022086485035492644447260962515074633737917762061578754742693609127888889720085904167401313627268606182514420671968652933823165338160324041765920156569700372208108611961691636427325447433903266139632612906738130554352212995434047379795344868562927964654722460374128544060065503115741167709980278775307199726506656130311157155668194745913291043077256365445002480347311023575432211141657815306884759914245464965288686654747186252886845387620432029336413729226336816138514052995843705980657960248389884575568811509726864097639162944061867976391596300470183635497420537118498362829908485501742665227730094582783217907522531106742660511827634580270779868457654847523280302830332934216156772523071462248036911283700612242073878151183140444441229421156575656564287680747403039956416705008760157998474232326874238955640787389466026253195572816807379573858172982401300133365806233549590157044964570572046857945090884456913798114178059634567168879390168736357572285075625805190460439934039794875027766114939279951972550021227023606278231329027901320839373857208421177174049563252540186578701480849478221052102152367880499637021391792243026116360912094317442760089607057723021085853131941123554771531018761267402381183358908847959602844916279314544786357448723215810871093897888102124246759514058273408453712537264888954779246699441317385513869306930323393905705468510550547421846935801145567819237539794118973894572984871619817685458697613035063953217641611308195839263673319044910041326057366209115508820103216170330014850419047819539061266773344634361691418962944285630267914975140710111412866772569377520371751156567732297032996766218061382527058981432123064757434458387568712901870654680044733598398840914080140682851110792871586541961759374192342988425238986757311040407102144146349442861513623579478871283120817898699516011400178868587054687232223234107084517683901710439439839097223158701741155945958414633852867938733210035279084995477099461989580963616530426616284836902247442021548275708768585656031833825041140278985452335272858267817509209578750587350144348285041957576834185438555725730016658751040450774050381413756063211525100422702992938817014620320052870923641612648614854071688170144247253304783103711534919132917753313604159769941514393987694879027157331365838234972927834154095197858930284229693018263606585936084467179236642029222880224622686742514064488211682773234815087398993319394470800310083497505454867317955682319613190247446433059633707235515124975958335704660816520192141918765074092864134236878318717023122281133948948307749053320349256432619492095860743867396811072581081539131132056852356531750108926082916809087325226630243211582920012282066067209572478320344949830718308349685452846702168687949382624660093313961443818973608316068556171731793986018878338544094936927305099163871771529429741115705166959428139926205260702634811213906136268397490086953043087247064435504295858401174537841652518897080822019954726550988038362569248783906772697269572161472281025426930568899876884011382219972902894336806702298623072015797341433824215866153571357802424293123398282121160999706117373999234654452925406748624599256175444634286681448853737008610251288532090256811789932807262654952195755857893156990396672798133281478897267578588714149028538694270603486690206419749676397583838044571163680943645846047543323158441752817335446858606755624557820077966408544424245893645542078594789947323746447576676520928125555204192738972056850184299281154190290484917387202469823743953018246103366166956517733194024757830878776754872071906411182022796302609423203725478335407253669002113368715026057365299345285820942268617304063048640870464376254592950329139574078228379823771824959911973404714241108983789627693642282835623427269387955215107916830057550947703086100631413329918912102367440001599431782202503885188145197970097623218394107212509751225247853641284728990412146788301225247073500701144762561994922013096414175472848884896222411255211719848428620307124273751371701447638147211817896299586804843799146344979888979653197000149879930059207517406536399044011934100061365189126749382775696696545527736731343905902304226588511502759060756707464661381646553806451843077246738291882122980829109536676978513634704078998185429004251258712046898489022244972366325459789995725216334231712274446944000600753370518795730391192292318998207948858246580129618779408141148369571824983501890762698267932203035110666462968517381036330641832325861992828794045525425228969573451735258138845072680120050054489716604629763444602344082638538919726013888858720250958344518982894316874001851087898857802597352133998346792785008601835865387909416836696149147081452725834616190577292794453429452573670394373906075506694073641486233986907670187988991746588766115033263825640526702058020642489837000439824765388640631698795091975340964178418893280909195640655576069740013274475252444580747434631861017693287810047622338154293834231759915215565306764840867431439472350393537208586798695842368372839849812164842117221937235305249649178477146594948960360053814781190499761592512396428611700169604606357717801929895846023154825208987320262836460786598473343317718906718195824970913336263218986523072287718642257140613607838783385727056565010628277385664958277799330134634616896330660338776802019556420939431547437548892322334044720895337329787396492609029203728772070077861511203401835122550492865297114307549969853374889022844643778413502505816103144805964061684952263946054699113740149998901743173919022602859922120831680316756049894379255590514144597846096946330214550408219450571112453530657195080301605664064671128081872458689726342017412564692423652521487367097646022627018500510000595063627055667720071299474771529603188121557351808187724974361651480287634771100714802547570413028191976817601693450230839394060902164472629020726652845986874974460243182414682855794768602934059924773063568324104167670345280035394495107593290125316321384545575060433926078739763544887202423201466954782886218959633623764852639144575905649130379381400345656972692991119146331327834475435910254525588923633240698150813181782192358269865549924799362551227137678039375767626078871451729064388746748164978776885112528097642416429213087073077146054346073241541771403821786963173392412458153624660274934772788010713724452960516657037070422265036018154884373342288898381609111600570485616971193204580740834793870071051822007429829961889362420608463838384736648071297190797109337651923157038678068010778739803509200196672954825678047620350161407621137975105470225531927356021633843202134716141516322521482405160361547705845686222279074283975987377944470175348724160222994520670873733151052893398959198023976617386861345760289958961344920533918698191655944312907484976609048850208401041548793834951386946943520347795775072130812815760525427896309274942213051629467479260931945948231765016146807277337707288560040463490889862968752475243326174951945141487710714216896987827750151767100515479186956267076396858980127453051780895245356666676226248733280731613607639124335561790265952708227667475827566624969584004533831206224260006618802669512273875191304823849135870639101912741096273543019175950971792205559121023646417762182042035723413521208232281228619207676566501232098452702018820481330743931770314532943889510022123624644560340339571236345826744512773156588766530948721651407688030144834268446737478521145406669943757671462068772532788161602805461264767894435779753145231051528039092709630431670749992564220485632197838624117940551516188647001912419473294097419528986046852999182133889599849415628554766642281232123686106052666319574565993180965497420747543599591512422883778306448923450952298006019613096025735579077315059687359021409860679237003685724036834878130602873330422535418968713509419083228127398968388525457021323830778490069836773627481970022119268830438486633871743857831822738448449693302844345067270685436868948626028605032621332190093453999988787420635552989553445045528636723565165657958042361637299833043656050708409959327886004807679080497252618987909874873376078980288818225463449601000865343370672229398669169439698935186463098808065268759740795472469593478355395498109500929348917182481397033978434933582468660993699637977506410710884181281683767214692597131092556126796978741400540082799187565206647575289643042782048867564632758534380427740579448453731682533350856655904018825879871823677330455220088010524631528556522542582697964079123601247089125314072750754929277125820193183547936017707354414700463421689942678106628363652037795154268816829331431896962117276694009262052509725509291344642733987603259480194397455414604826900661897754524072036924038926290973813530417712092127982831187871283602652975694616051379900392539391499895896997135009058370446940366530229671487433120170270651991333703265677709108502986332125757092651548452629817435797626474974940240205613576833741244087704404563445570585939783008278855677640979139308964688496515544145896846933341797585197352602299176422106852607342361436226852639368726863616167250083760961506015967838946611576943183891743726557026861587384987867048166177989329381887479441228512984271475523198163131948588219368019933486252842701431343551565033401841436773395990707286562429872126486955189315762958396932128645061469780032681804870606144712800221316313216306927547986354401303332653599760559164371290272416940376558110609027241085592154675328644788643578413431903763436013990061791033486486074643962904712266312476548110102851047410107273725473345900469834262143024643080228499877848514478415267840405614959621084021004949515806616671252792680003205786452958208954920379517209837591718757343792230469112486845540863763730549417716326442457803407360542249101122162895021470608244019414120065804808874963944077997491845815770757641125039246432430596788747320430105789076663430149424612718494647757702821788891020987906847436696065375395005423540880833062421178729262677993682984068103013555120110388003018993944709276729303412969816706698886151872125264391520034977040397265220406833834040508896937369682449917728168358633712574333730197805475806588929515482859934161533120911525153916472640906962906250681603900197483075405639234005329691874482063487433052494613795329673837962293681486143108647104690043377354419660624383261345300346514897853970669836475268118283214602943606648118992864125347373777836653408705633039845912915893746444409945254177987583451680778229340426565180725583606401412406592690669080242315654306971320133293011454321261128322296491258191090906932245741750075645063890757144103126664876790474006210498788421095953414148507752342968264074120380820600370445496434946807740414595122834773798669569627780159539242328065045101511375299585234878296143934033514276926351753821496471833039355751366308857877411203839858905774274670093091555003476048656150268098608933341843118935173419420498665115680729890432816804632321772998502198204347270592790339010130677890066050271948884688605836763033699881444109939654141733480072219130518154721268883361448227214119085752452347624864848761951038684348219540279909383530622271551119629972210309733511204787542716427091697736715630636156692445662758993881743801199107575128958799319034888834257617867896162552157935995336541382891052042811459003556691474597048161574596229525229381123929677348443178615974075942979996800788535090095131002086442016181215178327936606395035467032391763111600737559594326283900493683259385568916231128622902212704215673927582125960873948550705235529492030764134866202709737678746409593658087424855854431346051193653928715286473682985436827227420043123113487799658790247327380473205130235956039369350300524880480025888360671319340786421915294293371362374858057040074163749889402426976746626291357565717480061176496964361115606242922790608684252585067700998635696834769261663025181940887948599625008614512705350529597763442541854398128950105734564426477773257786993445287298703477426048952998451487507088524272616029078150466945986589913534249364809631526204449712822426726674820583620456950284883613099283553351257506100893667174557956694867674782795614008504087304842890285858427883030062536088490110559405673618716045335262579102986125549214645643890740402269500106868536919079880087605372742813267597825591529524464108974026811691185889643873608546636082593116135408930043100770399504919927315721886281854481994274168015131486078458140858351145335178503247191137897062879646832726429701037708326389901312698166280107256966900413310663167273122575386739785408154830557842917951160289950581330175447190388797322130319919733463276228550811770230235528246629175305751787115074288201214758954321108254640878126900918982624318658862882047981693356806749342825960670523050256038461115053487456181416830116337929561570304678357640759612909468729308857910808977643263527915772199915311488074143973825104370110416457282571442519409390503642758598301893651016102588484966483562218239042713547411540081504165423131291802196478583906433561070438349697722409805062834489155997380260166195369950501724963231734974885776706191884288135265844462938412016131287858677828941198100161125154791445488633987734674858338154211567321383739409353082355783237868354952849008902220097041579714694262411816659060216534965155526519557594928090515845021392484327375327638823454697623639568577951763605746538675632331131300468743065504688024607589772244371485133056812523262023589154252401917900556464090433329245119411115325634475118152032748527576988787312434189701179709800196806632656615457460166945800644697376097204901755069732025855298438754750432487074175072679401791152807394736519246406612272576133284164932384179837062512942848639150149246805648093990652828391900062795522533472264792797343330769623419676872754738687862314127863741016719845892569972758381088587531163227172943093191001272916044374014220722716680793892572186404652577131680904615932373916949324985007264417676848955963694436989203190955423175613487310266173295331218385727423282054806889493917933065996789679574163643110110077479872840944878193347979870619363878353806596077495395012716281320115082465978273848163033122712132255980042808647261516954280219110474103090922172182439762022638501043194742711737007725441686135785020706157415744921651726931440719242385461267647450805816673002914539834211284834123470785320244088983921670436189930711420628393444319098948552679572902012723881063785936251792399492762676458610288778182774063429037543055705351959508164176661668144940324429730911631897717915729446411264919669026049784354488282835541851454497959250544880926581756857678750371827121204579856023421672171388773666673840741759065038599991557180465382866622233221351224383381289128503318230203843991185627107495553126570567020693623367342078731861230299947695191885291109703884178088267140384230806698009907322691962733251088571821149281530266829911799783202534138016890418810156140238788548882275954856006084325818216029766114404803678242475607505767078508951395658300547964547499798716758130484628450744780242688420667157260447654670281886885568691780993584666833720952539265085844829420306776998596345628219983722781823153015903655747501443079180542594432851013894635339345561196381336469926141103553238395177257729201693130624558476545402464947154391835075853183748222396869587106520063197483769523206282910990724586494763549544187386881876651531944692692917797604440019030749033915055193443628203330716194035116682593228838086526507716862770154416043079730050201792233257508929587781179182770808050014390717602939998345676351619753460513923100664055975783629624211726174718544827718843861978651169338052712819248032437847407396640064615052369373580499228773687430249965708287458397526332325216092011275674781720611082562345023549001174852065881908847318606865266210010939143767183522975826693408019681565988165902626527988887539227271817242354170928561195113920191949067146250081412697728836707199945671566170481927213286984636010294752831388579450880486690548227617553388628485541764698674490200695238253334592820896067780947088132853468697842211742563872204769414933354427393175394979876966428074340364602505037841022737416485525353539788076105962944053312924240265503794929304726545859848572541408415281327440037421624032855652943525767177219534135904497878135578278689357663003114208345699043810676105528833063639087151835099580588596287875897630869648247347628212255589293583507144720929646076929960949423981703034492278059932966618134889180705727729382283805863844937341554883623186151567516927660587706941599213850224136277916964835522494232279295053478544392312250370420218170774695940684392779943561166826120447883947533599916096502174651930217733589478502985460359380282455239522991796742880772307114119001168122071522917392981986864846538558807638675507691024043647762289639228302635029640797536999827566955864220841686779081122134617128871886107922755024752778107939568863498763598401128675982191941531818292444022141276567263562064413012108120855492322033780911428849496733456795659089438135975780772423271589635708877118789785419769815927199222832539406444300415937784202301910663055334714810420376138898995161250976571471416330455695160673953458661481665174431954838604588014332541803864728000949317669876904813665650747148805276213748970232434894494340267286482786265050655703939456280402421710307672536418660407994616936940015976169672260263892269330603971288973760293910529411802109553448808694220075661298696992930515512559567782129766284849372202017627420628971112825434211374741878977115580304051600316858033248578430845665196479795243169573741666829342835521893830647158604144523375225870281231841812610453736966573010072060973809254761382130206067366249307537322546746143360479931553333800848071195851292181104730064476019223878680138712260967934585333005002749290342993805893027988229955199590800768108764700992749727476069420752410031877489309203562334992696285102427283923861568995976676357632144703528826619415894846395885353430445708264644647400898337566875401112835673824337530419651750766807789561523661021729502563245461996799011227689367111103792990147821588935990927846383602903599270740269962177518545100952164681244651631590822313406438850163090419469356817241536378279646686720333850794676344188500267860667634552512797390268488089510825734249766679239804180935235138722244255609716766123194788160739319484438109877670945702184181370808032411823799350350597412486018963919740243074068989604638858547822401988128928645937317823407433425988015819369734013551431019465375410895189870327318899103912209386574321311714459549961232221771126084612486135586404425974145310387087523294767149045538440259146663213706113982909827582844345061575772697192653331672048207378683527512724898240208453985824653076879810336991374661495026692001800467637241634992258270856188719499816795932380265587930583168388942087833297554871065121340160665021796998533568203846486991803075457230179100033772447589999496717994608547366928944967517993054985534732793015587171947147468809647699254276759682829390422116170395090516753972511461732582156329424816192969263959062883611810818097302614126135138692867054007247352983691491120540759803168973952425703611454037907828467496933567991840397052728939999870252504175743180217595244747322947756344217998003075359659205387987489363876245571635613165757836658494649166177064562125050315343937659537210829835401666240616214388531428115689513317791256630806364777522693446877355442852719377149362778465733761430074953585293586694090361816418705421309909203031694660492419512489772633406676624609549440924355133276441932411152946235588097281461674035611174798224160975615308585403879078929445231000892903273125683983181097872353165068279700057057244189989589822147325432244872627777878483812138954979863926168205186845734664410128841634041433055519321362212471756045774428730982051114596138667030129207677665433425302720009384987432064752913150513253021578515541365031687818086037127150892481579903467151367323430720754914702561255280732891083992379064595223725406520592550338407387358067576029794028610281545958369612089871742339419502302354948037162677324798991321729709024002472473586166488055957306201018055647848270532080616727481087831276428814064445458275550871968686556709858545774884116390971603102969761669332228437967312164825365357686209826103926855599194823057733460715216093283168137787973488677362523402995082198652737348253603982372428864201090136754968291527794744075026686777120196908411788831978156382670726472714542151026159948935334501841716893874596439393190606204611334176213570010375404744138121152572168881118715778648109307541551182721726896942412136158322070496491008512390618158468730829990095614712098758416858185854649326793783474023433380051853109438747021775893791710562197937939093087857493016864974617157679006495834739265268144824870717408307792349124093943660462717709475316430141454251405094512691331400874874374302478323872097208602356620852105691602029363758732200061458880464357471046473968544937851388917048243820837340046842774487464271136891131323300441467974336660547192967730874945247162023757367390125752258354320324193999348189772964040160897439942750395304177545205928907908783563177492881115519936890598270619747978298493034405099828455530770465545117920097160843076556835080851620238021346880640801917643078717826686328037277856439610054000237096648141937483944427521749615888507163172581576508499280594649994070344425136165224025098136244644743965015723480031547019637514009713258007777138836106557434919190184055614550304632412492368762134850364703019178219980792415477522261999115306843413170069619082616734186279279000526679298423094673824378185328427515019579127972094061845285001581611713214102861237878839360824316583883054460133711863788109634151416536918762292374326559005363610279642197947629453193813451708104325735563454575294564722437452967102489976460232143210310350136956083936262381596251670019495781103511772996877642282735946538975281997703400406477312079150651659576945583028360666219856968947873677052648655427528897218352800824028941394839292447769685451775007817225291035525725537501404057520360892720176048751559060032425930186007480750519463394881432210532763900603354180998712304042120301181990802515931239223045038854957788861991501595397677097051336125497151249730007250720307842204159443475297606754115456649923619905671524143838310842736327163791050815428241803045506689515725168266325193525853119625992581864683332798435758436807486423720736784953773103625425721345281112904304273910289719888378709118900247825098164755634626478869173349192216132577785832030994779956225548033155951117954809111570041320220160140042194134529515413052955280600769873975686397756442153119366280555080866821382278453356233271900627426457579893250697476307137028754413200954407056776550877695512626845860990213602937958992076115771625100437361155761816988029192848995732392649806279665198770016855237656211377879358787018821461496313595105289538743488725416105353708433979206118016200447881232711237932303967799395046922533976309482556587532037266008563413038660309157380594847097540006387245974650036835093317516452768854964052409761147439519912448193819404853681027486781084935560204423780121053205317489522305134030606891690311279926754159912139281426115856990137758764992623349302928813773317138702138130971437899958750727082554719330231513207718729765608496372393285410257637262014451507358776833323805502953540630399634934557373848218926429599775350842635180299374805896883303989242661466885645911946064853027586607208329933907456643750218539742087461077532592820608020191614176042381510566551257383145133086640912298534070218891134998622605701545869018811119024649192659966055438810854533868157551881094210353220605525753985280796537443920380437610869402364136514790220384861450318675791812611539118605206880991192407351966238820113274245929507671623651339981068375081271897591712617069773608998987846790586503619475971260911717820569739458996973579992953355904566174440868879397322741255350672232024474582287694423591312784010439553654614581350372786756233061449222224633155621998525288999997773354978006124403748285052789938966120302922512066340834368097002886148417504284241513318900205396182813749482236676103984615031571806499946410078728122617741123175124156988713184235528521809655997057262556376036559240028752493865011841678769431814223548182447061556564397385662137691653613980209335685297401867436136964889751988928455572301855021142012507045674165682477416457309150240770341036403627342679616587320015904916628477052546428734810156038110339206750905242976610151046381873395041588086339084450055474531116072632083347692212202449288838381686985318639417040124048436963193096324727833620924677798182001136003700418016178208168117159420939460946649166234951365322105653181501780939374745819720004633605778660914225554386828248312111746170112296796180906723026217728161127092645395277600182926437880755010293235025213576647181877785219499893223669661227437588247399613185035866132607078390303430563442457298726987072240304224523349515120496843285752737431897861851728993789071748639841209524332803381858212190830510805733921972718929720098141626219799043831549756009534567380678449015921363325581639139119590990296944263394630766288819794014978991821934488404988075685469182673418418532317450816028275362087896688384902511388847813449856060843172903860462641494953577857004350739355205932272091927819392287635197539137520214410000126787237769626592537749695999010466396793730474133543858532322195341212467738780108958059953315841316076724433008187818854791246993022189025029784379307797168454032819990036240819887351144261070199706624691408594812267743822095571595248208776576089196359475436589234400379330328546363992059158155653120962753675327091347960431229686109645443821053896582498778138893888919414170993318254870519903888640244936495155640714837884011305929472542316997390980631122351687298167484317559183078631352133691578803286906412051207535592410757814246610156711574986872991957220769647039910381412241616444462229228532064129175093548717230891894324674070891395670020202139316866732607198919414911419597167430332442590148259617006831573504752476845712184855494536180132689808827155267495655534729031352342764338723802539625470815805867005927682588770998914390557411682313000758869119611039990063028740791847611309372003693084675735097352588457506156102176723205859074505324995807082909714273388747545345450634941108058254666879939209276995456597764053306929050491147232744347722560652686011407720216452835974989376598916273469655325462822366180794772566256388254017787968839498721228836440651349039702486481128528132397224622426759016100896075224128578744334454173160820157468652983047925214724726762075882859208142903402260393982527356250050376121844269046393070417445287874191498881411589154221542334494773718543066807350938244646059941094196205759027591376243054793471338403252964230988584996759205562595601838503288284623429252611884274640385270583964809236601877877348345974070951441055386807333392830159576192011976112684708979533949152582253331700800913753383301095937362614653987395607576020558188883059615131349746699593252343910353424919131813646930047320751703270450978822433696303032118716348860172313439880083947551166718687298650864844189666240646217324960646003485032389191947798342932342829222173981694753345896486916719696109122243273444990738255563761206266949870743072206240699506715141258521728638441132192105696032894064814118799389950871581562109882190221720301002219179488884760084238844163636192572128492842313518613350342271999133114759750004576426967251570770254636778530998981230845177136518693451574754131462053961610616979413938786474916632771620216192413360112391895019986146824575428411950155863752802214093631238407051845941299775616483464993925074484033860808111000395913521033901857989715718830937859962134021424951671701179868792761570684375979552507063923317095654159081712019858195534552106430648565985099785534046784139757756048135158156260922388000723546108271141617520985749705126328104276829819952019652653061396354146986939703276129020220542131730416560873584977924337789911361683638993312609057442178053459513459859537628230139108423956463779412062743140317716917889934931410455093546613397391421385902347300804533745874129685031927487794577688552279847451814949381605528246474283407419040792461795476332487071276574350893246886777069871018250779204087297979502343401875965240886730370370359199600076539126043020254891219559713094465359210929262022647237253890937001388412240127252247836157131892802705954639228234902678344458695032559973690898249523970267299885116907371723431769769977798546074074529310650524247057125829990912611778874986508462544089347150608516507573972493918524416034158216918676412256438038454283037029849444313287292114504294496396340109958846407020949799079889595250610886425971466012952740618902274330252710460525021483647473668782567177021296061035328268510762001520808325706291296693019084263365773810284412595220395733114734526989416143103567499723668024038425009825584512025099561847915943316963817500315500993372447295264247097643799569849298038965707329394088127399157816347310473383225520487929065156406292764820805728598410683734529431935502582487200414823956300464664170031251861814019297621156860405338550564972656890493541839772696347728011678823651787103559763112925890916280586714611002358791990528199817899128466142636429059277493975681317202359325004809437491944066784280932174248051660530380418211232471830350880933125705229866288233515713070952446266679295395319641864930177337163385481851140968665904236308947287651277284490929775349176441321535440498150755929666187634191364990263991604246247972007850959145024278920468429820649414427526795220713982280337030504347010191948089267253302243859527209850506483630549864870525926288996245066873456211674249285816930306488605175905826237075233593108498733454102281545781207556779145408929284703837382721300037257542761968327110385160001906210796226460337611569181560537313151035231449409645568055904640105759501311555427009708848016290895781368688859769969706457262087779445998430050931203378211605618495327649338460648186182916058886774829301393073666440965307566353539434140760043663539359417423997661484235040053130412792384707941155497437717108887838478810362417135469976586715080351636086457869854482123822752314396016652868202523488215750473863023485604464257721323575853706651598236507083582251748610456394350321024934659736940826552782218966395454324112989366096041317577578143392173506641036959038386886373659379846617306660678917463382905206718480349218232096552332430296702253148552008145198150306832055004663067446201874426096906884592194573070524739660483924713831845793757512511443735809202459229670934435419628467493180487274309529571132857912812263802902630183447310597461380221295636957794849854477915979433116359078313445976527585214397116763081643285300027423354467727507619997213235620998114227548494346961909712620499704317698536720008378905664784807824576349402150860624535213495614612608048337477732745889523866545790389490139243281441745032443525760291591888385264116044057543241841471739019530881612568031939076810189477649231071307354770618778371572494989001607872830435315248711786813739505964482267421123799305944446720151586541838245505484470472090572069682693697655795170522823067899122583140875867536014701154879870308113689295231463515807156055570918368053339184557109451568207229908532334871688130914542948051689043096503062044389899993237220139839561728587946972398681116432239121424631795918010425969665850426321208870321221122785871881421633981073573645076936535274106243446688157605402262047659838118012590417131150194962904458649801557577863186692020785858353055988911725712053244940023346210573056533692078784196343243549150885348601194474990216933784495773811685349632097606425361279947525575168047463626890179555303214286469165261052072921746278195339282465307609181840407823239031122562686122361011261068196944076735698169122409840053788396959628583675468777800929541369374008698586559340945500078815013289637013391265415752546451001716950313726223991155160634048092775451576172741637275360799714904286863718338627511194421968290012171844054047108116518626793276777778652503472177595268954339222456125940603264203564967998911019508824274074384514877596420430477014675391518078167035025597711304123718144799179928033456559554681020108166680617958016481878629518691714105909465661906860605941750126730753222453207735791406514029996999314679481388537019188351976100611577257367208198450136428052119791271453970989896915386205405784194737419933458622621416595052731386496969447587425112117281018459302544239692580453506021303476675876153851415952681309963358636794924266705950224461170966614250355338372470667656512126179579575624866637154317638552257152941326439762470234821169940231984106913573613988142907523382465106719823452693125979062688008079140508164432841742116073204915224053811767402980095289462054499010913644416276364399470583646405555361999561146601376756265354789202345620040274581197810191403171217949262590531625202060602626742657782454212424471988883476861962442557055657762896893462454570807035022484239272373806132216835937088116118229812217558737268711139232885947198595749930137168985118585911894073452216075814646701360555310105982996643143257299256869119475169572778432650313350251552307884146094060744764588301027576890850945899621619974312359609958245311109050947016691131207935163118962843711121135772487513740917589225521094302347526493369150030584282974234045979623494680203931943421495371946720357860757359238619428183957756970673834389553236693444716627288792321953221995537336019148763604281951541150529005152850789251424965286209898870863949562020052120449516773501721191681463838608795741314841133621880527323682801630882843430587048916876558149425995633508946379710071670928864352963494020251399497660611665007736993014381581802185125471760309919125194644003616383849471447950060175005600062224106140997071768854010970074304988002742594515118676706915204135852160542536457520652214815154448017263562502802793167540845467201688385634865868455262517510392221106311197922727394773182572558451081258994747797429242675741177380209140215727749497735019218734549883662320050989831028640984638518941843930386465589866538247518749416410008423714430575215568687842569192559735828181286729140155723102169140235260441980843775346013809926072820940518814939056655932175248076249876373389858288018258064225420114367668400852034499301479997259432606990304944986954245283805299449407604967481706489196980757779021785193032328248368527810732456905277891681231670962817930640061929312459471923214470354301067451403674374035832183896053353265335271641516694162111920297737444274062535129836234416935220280827058577993092928723560520503607859398604244049462593308647842920700684625392038865786837575145828083881878116878028182605849993516595036418713122930050337398898536140195942510089804353437316842578342719809159239424404027936400949227622871729583200080902226233076604552996205965168711454494808407003194755298962956946955918682864455175008700464700893691664690797702241470100943483755678768734717604822826869961678695503248427250989745305398394003266240553648231431406309145186462997261070159810557639224893654808717404381777593323260333039642316181794395440836286434836203934817417285994003433568077767591063483021815582196366169828956470329953932908815830911054160101506380668408823900133344976246268428638116932809529251058484832546215185269583066696895184277562675900122744704473325098499691294573690600231547026341157399550320701935057995209221838878171697502151467199623166815796211567319435172522732987027424351880779485040782855788181301425606354492784415751665643609706297812846402550945316379898598094758135760529162477948431811517386933219745188973698456745560648492103210351779133080242566009613620343138114535977891180583304003310662162473324179183008081639464586246422887881609551873403727554225712404753448680085010229448273614088086452937539264536404807028831866224320662407173562650012326276189408639047597109244674246158851116465654551361823531016769467084228007805419403092292214801056525095626454299993355865249589007446155490623008316257695479257666959647914308755962307087872223934026784603997726555967936291708976392633276435578610455255657632267507405064803548923875275470237178640789487768318448609181918605414202192148831033430228510622556736293218159222000774070820571977357863884982790192394769633300409177964250166541963316208261886669241652049842457284884231121319321307522529640771364260879162761588837454125968470082671484377113567962439212520184369980742918414424583164213445711370931828489943344313975897891687314014025970031632343901923946242982488692097986816491395363706031144352159562163212570294253803356607633919787670551425796911284136046194803238892436817227304579573944098930004935245614075544667438675585764153869602624187713569494842066808618680467413811864831502310021991980547392909728845927037055534736634656166923428317635991243437939411864832630101163309847550693840045146966928952396491391720968995383772351102005453881073478023352521778576826677776816920153188418589828495990069846451624607166278157959321001047978660210245490541363527733048370513625536301540537354919083334455204178489916029662953426668745769025946626073336595195165179121338743913679299562417122621199175080871615563999508076367229520783095997548999061178439739916853638454485413769726382665827187727070305440417165074236035286351013347601338268269557022828438540464200206282059977421813841778577778398940826008875720776646017651127748983754677014259497710366257963972764785305589760943846835019712337379764104081276863623698203998195055964967308372786980921896317885294521131319651124192384703124262533820517838059636957667694864395770987869039093420547864780625700293998111360971102046099836387604051986282883085409926589455080162877999903180876536691384738844201973276126616220335077710599619919591239355749929241585769476449571559426462205943549459117263959307970976522754282481714620078605231347500684287602245748562557049866031876483522369126285132359397111405869380322990898620384633187488668765977491894565225451850407330728928570899707366073638708158928816829336060879257294131292786305022849676855148446825997705790774806289731995590236927297247242706131934971796554399491102073911413766650538294935318692709429246450967048046388974160258745744780011690351473780180544205189505656405507815925297850163986921594863108519189515558234691466727609430951897848599877110621535393050360021692395720666796237863362631819818327916433555822150621656833735128089696005845341666368590703676871596374679986331416234839749862225745315642086971677453500571280296488196383878976741041265071581517873399145200014717398614448551863707595334948106622702140723116443664395032985561935200931953579318790025253845437926135554316264275796517319137632956969273906720636748286549470309160390844360054470379246646273164990223876530057619506493189206744582677571043764235114889800855722083585816615719815296308327304700245121236403543133228857472483080634399541028023909785478927640207674340014422040879667247827003265549269967867702069218646977242689508799139777329087353504476379230138968941724567941587931723697443771250342141244437954917530512046379104101932140509035214756859017290420292970244106063241817399403797059338583635260545503791692414877355658913817344597863127394674291172198281156504801512679070722811196318166432113319997388430346816523868248161694981719791104667949691021106029289146809402055582707247131644051979998819624834693830520513583925000618619028710304999555581455206391616171782378675861403187604758158488148629325682383137268746790930830444938173912316774660813562075389448575848506966774693580369533701971673540309947546954980640316183841891123927051313391334889750051436566106529777006830256907459273863902730323241909974714503732974441839003248638977226889499590124714090447090535625005454210433656906082425130009718275622793149427806317013984078442976724469897364160882371016419063877307153605519185362133913358885982633098873646089434540643586400378056931448927293001860686269434443913535045719895778816836792952532569622628334203018030241122674077602255507684054338221223067369470096931981871354216997905561503637872494032740464970680508052189031466981177838385186741000930355704833748641866423620255173357664875537612543980925754255845818749547201035344850214095372055184966571824735137960251176780424011814410280277981981452889190102604753100060090544207268183138931382034987793390406734705498825213996767308841588579873045247497534939772577260697161576276451721593769285538803448743535325669906488402269700843169104519155504784187580546105777989336330742174485578758775131129696868554323032128018703927647255340892659026516988335089056943502843615449206000305329385326700716603344020026457663205059504519594305293535941971563743152393500771312981455843608796673087440200293237233118603185939951640248480970705862875519856753825818129933874812335442306684811034465819144812231185448999767419943555604327947233270005955372537362350111604611383302803495594745946415309138597100149578858974926454758250315152539704179046516473950468907377963953601542428004288050680218709667086484796188943099364152938262359895765490175187697701006461082933378269503883124664483132214659051476757990400380120200434105032870330829004303571909250643375255912216727052658296976740116646256414532108056502925633755945748586726182881761205241950632066650309352900011889063671611688263875680819670508204700530438977240973570046773448990290515187690163641353325009455861589756460055064429300644279939853105228332103167071615941930203859943263412004441045281620381982230614689989575287924037608895680322473904918569526597872049961510754243364010053221460875388967743045806500844765419250436065374568050530928853076112763302957701326713814504409672931138723816722501967933269011888310095628336898691113568606094980754753527899995141853058098195120695654774479604948932543966442103721500652257756662586989212020105277337612805325787862447581078124221487939107014268314030947585725441851031001347966525057900047412221421714501606759284753141461373337885993375080715770638010933948337361880422403577975180356694454320941897059928548521362501685888924483042766204974601633041230352753529623600847482048983192734981328277532942986684276047498744632427773649225646996569529894791064860247585587806372855743476461384486659028224415939712076222070134305642660579871126617814886013432464654506294453281846179946196603903153417154849942050524151541750983668991285200457766017633753262047529677888286831294073633025982143086369909767331668844745911611811431953732230773593267786265871008236416996173641296111906359603570373627955762155093787836012495817662300302933419527477755192179924697139940757456489439287017571926930033073992579445283499049563261973680220260947925857738354140112861967900517471364891817267902898059101975510537901053789896734250641380271360704536297635371176228262733089110097051901517764730091502906100719310606808115900570708879021455099905301774341887885599488807028580973369715702532386697186378517093958239263958442989862173050507723967901806100681630893626058796503670370982828058115885750926453052878045913108644967584109960193595532372323463572175809213266947094246236475368903118737942538034900153087498489468613448606572300108381096900145040381772224762410135597139715733483914276999130151873625232003587102673388760412469132531926731561504523866353221097136958462808679512893478338125606390275193481573422946864452092680512738131122931714452417500891134075365698963481912779002214563447704279150993306027055515041109496408273248231450280143299350621554819007501977149053185121297446767931523905708592075090664004514017403577596291507536032788651516938005090900680025858187267834523163802386393496720907528986555433936349493304053527336361374931282797686404463082486445943334229919682866373200206461213197285721555069348466452610657230533368849193906033461146265101935872122476078117399959576918689328483815806567694940201042451388776134463163315159550865986770152353412368566385998137619161211018356837167898731446764807947573581439923767735471678559670366537339818510312099302872394754935207550831424869463878403820896742105259176020863493719541460609564348737967093434484171248915225426863461603261138113911688086849082632566131849752735844475067575426323518720446022628380072969896419804625476991344194322874373139214429152736497549808217178351298437981506629576335217214044144184998971407137430100892615507763888978716750568203457910751751464233742685770470756955498166605238310626879219646029446724708410095604607885660406514966407642893631112011380960669812474130335413518900875469733446541395537356874590906901229700427523914065971911510330449698511237644670090685345758497691209401659769229197839787602182963294669474284362482223891546671410604374058635739882796726345827319005825667623147095710448900472292823367407629891750848911304029876083898343912164259801964721627255829168855692567003204035280554763132495095184504908213932891420968058732581892706489341143503818038405340428164668377969694919616197857531568493593015524269150896929720380943101513785706644558158097624920154654117034214593924094127591779374900862685640010114467524900809334196442524538844789266044862116626585689913845307285388746398604182446720087917751544380697581866699399298460670975112190775537595803262123494605064205730078543904919834849812308827472986022800079177660593721076700269447759368027402031123801106446991936068823495848609434917254566200127338398050256605501183370135612065911934076642161044143263428372647822484877772615761133398159261897451046919816671338252382796374001751874381808301844317814177329959144198606557412706370431187321645976704936226338618108878368455806037370096935170519876827512905830442623812928220519060222914327831396318665435738780312852319091868111223906991142825675472562975917167049895284948811105322985315795808456914128294264990407391787187375526620606039260554597878540604645892564793552796926176521090727560645887525291396415661072038969101989515060869380340713564934372069675015913334732805103180285531109019605759379751371823429614435613770404355776728126745277478104823118976921250545086056579884396409127061934555348051204949201010836370685246102141040158039304087823124059652093095598127032811131005524227646045801995852590097689985005483257584286277047325503680898472901724303262424496099102558475391684724627898961397256961926394049679009106907257847212183605358709430721895862013740309220088106512318310874592841691534481639372304048367548243628887630966025910723092833443476616086312154548057464924894571217869933485551638323461486102932196778710167291720247020674608255590275120081204601046853705753870067068813810787097316478567218524445725023359369024751672259256715540714136787855054338932232305916525858436371104193766911018104901123302135743694215026966600155572606566511023860613637672673950041143793416946248661769052628238341085136236510250977790092332903163622978958557760703549643275126574584427465777747264327126806273011747276942020851042683187873006006541952372055808804016681716110589986748583962896330412170964492877949938915670835034185746409403871211637240019583544966368119468625896245555897916442811104410597446226074580034514823479148813165284183987917765094281058648206581485996121305133312363353147653789383668306552040034299867701004531845087259938037295335964189399699637553462199920794219635538071768765382173312450475396946324703218452086440734475967047425422523627833734511251394106227699053963137760189413526435132324405848916376210756087361358814668681612486193287365072959070036330442129226949787923801471540310477419691729869895925472463750401641595102900841518310710579263008621807182282603647617251038726058253163309373425717808981466250908641429439892772942772356550704683840031659295383139796514435105464834428393763065268991294397195477768874065824139132057739781118638165435946653507523881855004474380714127718897755250440153597933157169994993507457192666565758928386957895311998978490337249256598898550103594177809258053751704244416468812163216841820710741444813833287315736554137488238895849540953290036247951345607173660887799884191457877282959046193072217239634137389069940380798630481030964742422831710130571932899262067780281707903167774662442036030529098621487836795276227614684097132983997032858872397274365886817695992105185149052628132339946449626112682319979873172921412320715430993753084765658401693104294526194848841607977179655554002544315035183032925790603001984028852712315194620572246053627890977151517984200254138807987816658818422019594472079866617289879240873119692272602091542538881696021258773238349611183708483704779462430385604989018564200010121719258104643871783976101803571855931607075198907124583197561426395219912633071304840330305251020967987441573305038395914021685168121917984158406837800428998577879774840084722400569932109535773525467214785636713803843915625177744119481838012928195969793742308177466767422274006432429538180232784545827861877346130287682727870656422615474705160666183659009860619583228153267315578826617799020949274186283728237548481236223639362692983713906038827528703999890991897559449263411442225727997184147308015141536144097825086600590259267844696076743203273768782066623510747209163120017420952587963537336995625961306999522850280188201943232312190857107856177212783867867563784270682334341649567687068509775474526880653953427767019916146288206646194558474386136134744497550280507034181865868009418031859975115658976387640894997636376991013839967839969924541591215864641147870621092754261139958054931232754860715065532961425481293787300530831182916079095076078807312201820026265032210328179037663516953486769926451811139487532042336986149636984786762512298417206985732884912050815651891922605438560433087037571975255341156609110888198369970181266820901814779405606388673665041019277518452830176512764323502986212759820360235063033488204488417829290012373678711829523444659054355405218894579233405488402967462059706214853481578406116130757135336933569960432207105969297356980270526138674579349973865810948339851566583966223346444024456948977982551269460341118560225006494396924162018576657300992479583894516083819679994967723231772465831423818408382897637208520926451222014876556392663788645151625820226046437219368967652789848604476226209329344825211566531902906964808318482933772055188321456941950370819528586737210985296873471986479384814718282696229185968419382744403865956203605429931572714659157870706311913788611979763606773488744140673952169276592169162343190036899067173134271461207789591460924299764517371976659167876407648451516146296813854063494976376384343530405257502066813988787474148341361777038498847417624487256831222481472929519394516076664701179311182364196528062786353987507743051079696988469696166403866626321916047857801496336251061422607913998778132209679860530369176546960235537022641544873427488467204824279675315162046813790158783609698290908279238107694584074880315908065908429670219975194476466200940746802170280443302847723906185603105077633388754019817345750701325382514714171982938916723338802788860763666704344560162282074690228197164475657384150909093183716585739483698327813259305703567498970794180365055757961537270351833410767736057550188393248223685667255141307623056812351331993300323909857459709347985823267661365133736888097106604490964043017837487791627665994373959981724420812486626701270292080582129459770526795513066248244229737230281647521103880416484434570227502448760524168194843542737715347224099938834535733275359115324554276050630784671345171428415715288900446084925000768850108009715951656668699955948052051789475676574630572333846779245721015698450799473878492852544103803531075817120608113459125975619818984916252916856203003151807240334582515190510975652656931990915693887861559574113879942855679169268469051293246215662948364412504452691459224601603091500382450507920138142120924505448417347669749523531072040753457921817937845749265318448807337119165726648477635932521883717521909687270602305968017530306588461619881416616143636283610783194967778938883006392071104637609257290505285008653819734073492465844079653795566714678616769559537583665613518949574517973324333743288971144701620283346400586085778571533659922695809954952167392615557608054052834946819060103790879059572320276123438912537613095191067229955675675884763960340076305890175704419179444849667894073825676910712642921558334151457516748204231932115268136442436948475427639970406007171295043032664030001985128379815906378094285184435926257793996685403705814852630954663252911807423396855358473669567840518050054143278241193404669640335819782810644294839831488218995064197129280459245601150027538409952142355956774235945604601428942163203679587872540074300150331465315796587869305830174219724082014197978184883643427811721535765942260017713798138660560663546545199716851138308389968013100640981410591211139534185904612095336838837330445783831647494072630344177542099074039952274058709255099016325558889785598594569506881148696293408745718984158936787753675696943525575663367573283436942645928056921578726586202028908193944846484500265485420137086743028965738744755911231724648886466447670230914750468517836474568158017485095967507888454916667924272977167846130868733915626105517119492423999857607249720802017042363713617594148077044568395749723230045419607381614359351493347568449956992413497666575473717925020702597759143129425496042263948651511263347531720714652422875886892549819985152578145836656255073254727678231266505264315515376954374495703879350852290940177273236989335431843809794213396494652857388815474625303823871112411998612762650449186541743262130943156030701048702518567124553874475022610530941371002156143779447314058088456215459725674872253470373533420071644741553099432044690036595829697329300458702604564390593371233144302115982378695503848255413076141742834537701765097007906677001304857060700372285739308792620902643282487691248616046652160356292601286747992315733822929107881281227490847447845960516682886104319356285554740987344487076004128397491932841537859027874033382237584551449729750952536213749333003946449595325735886114064755067586383332255289688982569347994935866433925921993403471085008012444425690633822250719798221532234382892161383253259738657821189606275305682978637477110752293801624517169414342174359935718457207076740317591620228280285000066619847298573841235179879844293223798083763099947471964952463254726708127355232871974942965780136990036265799289764988864663382181392409726915649116373381902872811400235146295755456493811190252481360492881563312078822315038557877075608316341457928919541719060742915102545981260838967255296706195934002868374140892915933068731690496607244077332358906349368491347202855567838436399385493709400331859318633198956982597323625652717049456464445455649803262888672083371104666231585877730017861978941647541915327941741432803627188757562194820937300258466208637949201826857052089792792661058654817395969931016172681359489827865441727433974300007916729720670071835923381855993614690617073121527229344501440499579381152782739137761954633943628861691995480149501450055589557986471928262822947944958527186206178312025208767024716222110331220798877856576413220278705424814092755758955007590694029386457730452680158274345888038163860942572819236322487472240405274002185990061014617417388686015458523422310132479804692450972103339397982840930387466692555741687941780697654633035852595523842971951214493399659862625819320049882072444384171135368518776674783096580415946744835705710996226839555167970031191335389242681099471648137219816348846612953656185973107167286756224003564176412981435086647618798683960562151771935739236955654087278613312040133314441553376988832651920314668607129449916560162379468069975534967922729074159644051316427286957401554171860072908008080458209751673164483196064410278458868063841478186294575270561968211356717630426941584494291681357316014300912444303072694065978369146328343894646633879820999112623702034296469840187626424739757634680567455047960684450691634258513168019919531431522318748810054469386918586705687429064602841859697291563261600132017023234315937199982249820468219201345883216698608926533444611275116565865566819954464329892035774796743205695050583583363446700148699511121360332317783674629288985131773235315717961915585507652407982557472954585137500798719338634185754032747660278141035546539198959313875822705448738082730142691582129979653740174364517047450154755755557934689448804173148740402709751752295464838094331525302578025343374138602674008682856040065625909543717987854020845647504010258736074383902360033777733176785251377101320468650570621782508033837740915643518056549194862385424441732559568592491811285265709439699293007575531216843405365098591698251192440971548038091237266727588839689420238698915096822412552959604768132038318100166064964922939689911414419282065895425279463061190262266341881242763720743551229751852200406292208987191692398255694033493580061855659507881584788840333297679874881713099326165767240430786288017705247748243980254985281165610413186590707952202111967668949102415480948737911021751883517740557378234521832516247992364512962093111323393749751523878092437881933743467469141303463376664518916342092508871410981101630425609578552936518985149255626279207110921415369449439060839688694187574934276135828112547983758328349907342127380293277546309334513617064371946897914045732045165214778629418098675918202280213842664522819812046496649006503778880357691389531838565359087060054492842706398493323558954543818741752294536481852421840795664861034844979094230838237190655864997910508956944961885010061646505868631700879723937951623125937648300695973974491883810495111696918648439430914582088879894436126089512301719890102982268183517868980593982600439667064559328403844930618190540281048115860110786597123273016465764176073436122802976976965605815202905901173290706040607389915845716293255579633311183065026748159153155345642981596764269457410541214631811678221210771382616364661758495582808611975234430320521112358303098025188018530768071248175969955529749350372219619074468628893935745704061600321452635283784631856838647004958191772816611708104779512383252476038587534193711161307880897660072609899862077720645732538737690188345369966380309993018303288333904995210629810386501317693319725792545446946910047792755048690506624717726133051596535872978327336605388357972330612720794079043930622983892433002053327438763518483607884782244758407310286991638808439732154250661844230954128781276199227754872166681596499484491949291991047229950408234359347241055747001602575941622208281066932325988420533344893377716540717695060199270742902180012537122462506158250679870521360434914158983251220176709387364062057069729836396594468570324648998002245871647198046925918428521777131332557459784823300295428128986118180397335744437718452801913414430963626075262749449742811733522737956690952651952431609906509659797888068766898567821396030880450158865896432020890825079944995162563575488868008784813951450719452036945238179824392626160970147322862267374054001306197439539124066585866975836585505352887996604270338546050812661719445166787729195622976574878461959823107030278359941805024602440740457966985435262508636037499448158717653990945477656393197748641400640878297511467533492514949952449892133767543912402522921223035214937671112792543151787533409213349746151751997009747514203241818172264442556957293314279420926388804884090451999142350619805712542706217139055919623679837090470117750768873396578632157986495072966147920481844491453116839495328014663126647024739421469604706569637739560656748780981071338621075618818617320049691443870660830175569946156967642813839040611461183350764930808593816435576446547881154424401035914181777426202526110569677216301714606499298455386355412153960248670250728263365678448050075101089382948794917929076730254738813889702225443482589618222942301546027095525660591052698997128482141241432097507965527073507440354150129043337581293438962632750697688880545963460945430868904834406180798794916146934828652994059164692323035488563143033304382455083272433086239665091767717132262071765071184012660945190246759937244363867512584041442498204499597544115270965174172141700079611438383334292045472029730160888210792283021689664320585514449283456455778405572852081577858555228645693442870372406487897024313281755721422455692867195379110296469419107570353107288657277307645600429717097946808262338680876098463559047900336618484887855296924252422455744471672347952443939737323532450951649649813904297798293606320467298872431174464505915252852694930713675235907607199221749063610490477415511791932765677286200736850554530965105150156557551420973527576389940307407483857140879471997782252049051578848155286127710738709057743373743344731819552553894891002206234000832799366599082174780785008666304358436776251427558919932002475110821058812532314399906152616435017312170624188011986127373711765464167834741235338013291801780290287254351834989600568030406880156725387100043285543045541192187651863917083463958847794543076897313343911089320038923146984560563774557529078511654911245620498385280280927176020975570800324420356310955589605554748501772022817783608447341019014745040191719200602822868496380208156851989332780714952352073846622781699588851046279080375290939522837588943355113487128243449411234619294002299423919088744247029302116062279776248535905923857333593037326339308822057576353216489835519124652446535018246391836083075833939417985259351237948604311420607077369479941175754703928965392328200660872377808649300946455211461018504347440778005809117028194726901227648631702919958339906218235560976067144676394048746413484483161672451028440681240402397609961321199917642183462753377560334359022572362739760953427259967389507594519339347266244162245375574962869439484433421415365992530127860526538681870873927429361957679604163339255040299042385298671415564947923199139763314069252875819461539441499697939956488091226777474299707924360812437443632565293485150347287310155843089602580816690606952554224030531619212649506627409713158293221423321936578300107717117936037198666766442816216316651393990479455381241520130665889781748191168807200912755752023084936780491284701136951528664710182153610261115413132686828025848486217326176571387592486518542911939533646025152383793903858604429111541220567526186764695326609477422536055927327398272155764467148528701148274996526615419038206370948784227877174823505232599681782027717699773640326925116308007743984696762063873908940969924965498907787160328189011214911603064432720245543850439973365983583377313150559181305644164401389339181310897139958075486202099763823819153512503398568265565022656235169535481222320014826497106666420667244986651364137855329853113614331712581876935346357781564114652447046587642861977688427797266230309880162827532060069139393279780937140016141053891206276056264990061489860190532530329710903393741019601439219772790407991234175433964230924779070700122889426742738962755493020452262814943271766532713838517849134617163968097910013173026895717705018912074121987476875341815747834700494309050094632608585738940291233682081561661980407448149042391926421664219290459479599630224712402587514836494119528306037807995134548825780394708415794899522168107614770566999260402401159189144280479987540229518052989363099844009020514816501073118244469069751936912076235205316438887535223854302372348370891235428541713552142577756504043789183111869152906080340326391122976483088978878291153924676905159216357578125940760886573760212101773271484865986403467153460327422936809638018958285812153221478212966552162885146980313341023685755779839731891554563837884058910966277309858302975849102976503368615326920248046979488663437357836160624394239748916981486058975284276088377845036646149539098379840842838792128886142682964753044302485577203177455349512938193894116808303007295084412618009293023674742006276690329694881224345790132392905730936473340597683917349743371706615377880434888393707427750694085451911865523206437027255614589342372074484801892648723028049656332870535515276001571405646355227195396068679655018731859462931109034528705871664466834633769896134093167634798118890925739988692352366967277882647012727636083825492665425053395353381492944066688016626352175424969921348019621907516148164962700743261495429802340741446444004757664909076080320248863304865274955456627218195575615316091774039546089914316791752481969529368094445916162402020805322918650424530452002914468638268761119365700407728317270294731880216346542749939256568910632090888932679514709967383350370197912751191740831695093231508610348232220384340337014506851668763549232957136627550930913202617990861715029203049954141830514006249554206468006906569148483345723465188341540194325144545816487715744004829367623233021377602538014229351544581329864771873941304038432208491812480058724212633506917297842531167137461141199531339068760350766327709454528744399958681265714142137779177927257720527064587697198621160754334859038651221354203793323396612535609958941302024015149776621799278823876230840228199913677754089672971406261643203006156481586916364548594253842577239774946395679214741781586532262639029635841810428255537164654584033502502104795375705664382362276305525374844771598228918617809154221593764970276929270873223000634483962980418608211068784352542620511409315709202689193337125383126033453897115205405822034248929281113903910905994610874696278358304626789793233912644306404671966167941603906858753239518233270782408336514871470373013204680224222823952077567913711706369025201121728982111093476129523854010809049232836980278019809033827972058598880133512500285822954607683853319159162149736353305083622230230071560507186910953036879144303059329420365224599040367212395462498580028941687396068072977967892865695570000764046799001856083360094478734892976086788337043661350132138650166080887867184117559256768045857371482239070424819032182876870890790529340376757034119233665013155856245730521628554195708114936277637098838477565980893865292423656117188481052619170950527857160453728018017440224611174245219598507572088390687809546339237752560532641054396283601385077010950987096687739241720343348551683250201498058300931134596497214274124209086494176462499726171177067637339775306943726707833905328730462577278612115636025497776629411526729665879293299900487960276230570306482709956354267581894092034792494669103953880280035909301443950002796637886697100456620905244282295154306742035220613583481305885095400826736135733297916986767117868572184663783503067685767337028577074128934858666824342960111371957087825472456179684757006991321734269473389605929870231503881809266979816218104946362048010282382111506133388801604979265732206594379268922257482383154822479030905357388447824770628347367165562019708067419377302554717513274378518125982216080161009792054947713977941738662861483373935813250114908467271099025404362036640197013996927744424870931069433436760800847950024820461205969236820074005859467037820456644362710337176673085482029766392320495266493871904919382685522121006939224606918797129397232891690556774709831070890651668941291363965696195629096195344454836683555458548460994805271833581913918377193537218720611103449621756940789211737079072260364241911387536146041945116723434380205123430049613963420667160008233707833737273413776616347527909970666063093463520251826527024008785105597093038808225722086795812601611114324067827970388050492408181866478210784582070967314183389127757442971232901435843572584556385509744406993660049967337048706258542696001792123912352104200581214553665339966308627907622227694087331542135010916190578084787738802900298230090234842132996950797641044393456511461511745511078792387146460624857132660046171607109320744364681183658310024011430391090878796880357219712472801355930969884827074767344055466185789078525974955423048698873670246635453048318357062808544389257847947008810993173265784142556255820712271887709813835595108998660309327350095086148336809922845789283505532505261181544271395507650442247340127763180157693924331032873805450582709219008222778562495558286080620206763475761041107726146878978511414711842043235799115561160821602099110840721537684924550447368260681469363091601522757070993057636452839069696020229687961937073619911595898122675386235540148119531074064696156516920889963962364336937568560626670481094952613606410364978336984294277371781099899712932752345366626121579301543177862577396070605334654704180304373302044657299699742917503440316490319544894078153921469878464772130544553939493969559603420952447337253050794525637437614760480464695647947420351718656669578971197822145881435490963463688095941038102552786154615691287521624561247095246034603357463084968146162790352949752818401906631355208447940387927904722768635215025632561921607682521718979297856940368253724683542772625636552383654676733412680829650612211338946959035756103311421058419096966118344026266387739102500674221052029472188801276409238332700814666192904122757023912337000910279903282405014450346575977594127196606957281930677736594854085152593135577875822510131254474866182182094184041011940090464316914945616568908631756204176349364551215734458000591670234975360078269191429395031535054226859946605779905900665479726314982512605669258832891033198445108981806568980283381335971445333956076748666589825979652338832479535255635842287153287075513510118060135375667976412934356192336910553826514364392246709228904001276518933623502749812919827218732558997427668899577523023048320915128060385757456200662303888956708698274591516198379396616549039944956226193121231430906433302209387940404792392787751466410630779756456366728823773247608323838177708614044384741796477843738778975193256254875038631078058925088070256278896477149809732619287877179931008677230347143863001851406703179163617745666332316400146333050087423706095410417886134314019705796900595505071080846580019098456462535087668825542919735873331093021945899989971921599015373949241741310185544529604803915082788448571895672177831400418563207432273697960082715026142168340640386681703261458752516454612301315567917711789417132918610363221315859715381455592065427032440851641930058955411206106269400833608479971589896769863901392096744145031018325675913603261386076339183568127673673748629551652849656248377490135412287777865505534036491627436223448060739201490874113482830674669969123192841808574329418446400681221712547433569986735099136272453413312411656768295162565943583979624640861097082695493442501936154678320231558065208848748925623996696923581902254190330519562300566899285912056747507064969735135467919108813742905923517312520145729062908927021057258348162453330386373425203090568337968827302887848470586745734592958227505392079648856865763111507650851025157271618987576615499793215499487214195709048240559609672386050419267288972602023260459343379194134876758576412863224892423893336979505671241372207787695139923663275043337159067962921753501983221693971039448720592064440912682407532208099623921804709029789016888065237585918215273788322037642311551793038774940359150725380147840333912871174851966070738467289512120372551881804699803427673326233970655791886279170483008734903564014009161765053967952661289913777829764399580523583810797388073603531126237037804357835517425186796157512458189887059913086433832880439800085107200131004059382198468354164797704724019917503223050727274723059070980794346435459384845824692807765062500867112017251393505914163050230420085210593651982041082830324183272239485551502583383223376516522764814455286312020486246477960628047343633830053819199339991691570344496815156969120391095994467376905711249637254704382650863119459497306723664813783911034796136223114822145876527835992632374619553478099064233999404852875253298630307696851723727780986094482348371222981214000688036611269105392000171762529744152596671015292535682945280958187464873014445612668391481897380190913528839739366935279474477482637861258996359183779877666453539247316183877397697458039017340481458118297012727065333276238474095212911179489669857197456293373348207711469149898577456433078061248646808638168792375801352652193546824361538251667039512117812923764387126741320736763995552849687881412549368083895489383127469260938106275516346841261663420996043543829557317797771325865205307369764657082167191678307790212728678014567077612729722537145762222589938337254164540511028933866051668094475111967138320331404650651299553434447327130948542324883558117344327547531046628708537891207251706369567773714014226212876935240341334658176483351858977254458564602595955595073290324394837708083079056175610334942030812881968826243016805471587578575681359123820496467253156109731413232033713223922243787525930784172309504333110578283489903107820448061218686650873044128106845687560709511073025905142288672211339618136172891991687916549628109819094167970122236184719349199696162385301178839818345488259919213121674086459304708072340529472453642852560541212279919326291134006541026046216165399046167557802092912207088825018565237873255637167777476077018340429038229270516332970086496779867876757661169662934724669999972019285323117015781980106019750753260922795819043278635370070613940233000183020179026124456369637389035461720811559587570073008942570195436320062865758523168460956717672932165573802401836867997277691688480202042935846495005341728909578111897920179210057732270285692620176985230050179162989579922834632446460414684795044645578279549977676911026274029570458339529453248063897844512870640781198668171445744822108485752274894403298547215210598763098372970880713646969012861876398518121214822851925134235789184088954610397427519930863637473759649092631238393486665719895279544868842007330097247564989752990595945432308962664041803127965537123202285731011984490837787681950316860857555086148055737886061440977859441772061303491965007566154722419241912769763774287439802449479623038227650482635403103673561192212348081150526095442711638244885612409809206773775654929295031492890768976190531240201148928112005831041906341748269818645528526015877081750546855503438838255098482057859131470579757152288462907410495616939159015238041094830678490696706512509966608759450833828588881364717585058135212599139313651071793474535727900942165163086088420760744320562773321116603735998505731585289788467119811959100090783130772447045791321964820828226658323974759652964711803758330887988121335180921316569756264798867133609427915372423230540651183933479614054450508068430026008567322101635267992891565840991476545249285079311687621214834599828009993311536429485154217296017502187400507045490822781766857177444999977636812036064666093709293200341752339971279255513088275095822907345498292832615598430854306750060741209483574695446080081722407659310460780224399826089846650730070281644206557155443121102172103903022081542616258428365342162059563251099667239053442950391560528052736690083837129162312109494183233301140807508596151591259247789991966657020119164857802577209014523027296967950652675330273006200514682392342042173832587803875652267047169102811069887360727479504412328640352332815714467768136180598162668139992690948793962500402403895561607562636371321557581959604180600577627130844579502568867789379862242950155163678402870839810540301153209091611023948428826718834600097327821122443787737841627683630418731659616876047747581876296865801077964398436488770717945613977094770939230231369660237436878479487234123551718785861893156419411532319038474886386352905891457207507637492436094152435756401022614981543230397892418664247890074076447333125895859203218562585199209889863516574280621185893851190510208529403299051343775501341814272268090548716064503892480321217301631001431094048780003540755415405951594916520873935698104868894747728470533365489658819747785752139110107568090379853571028797261177690784329291653154256247655916490002579260352131279148528195047837091095382371845920276717211374542459833010040853584502867315674550210259452424959725497166355483866974647084577800368185130186834307291151552396890665840562619357499197298024901883582982731927720373587633042431969460901633542091884761459587539103751148758114821054301473664013435152525848941986854595354926886370276735064848840503051728630606650326799750506888143842405950050684989381688014033717792892795221905012834855523276144526482780380892632478020003500368010727287601306605626666420323876140343235473784420175916593402845539995154523013036769436685133937904494907555222502229309292956164554476520543967867115229265439582216013712457436768264186073912097543241239727247851716442789329379971765681931159678332366054528967638226260174608179686647329142906108150343825154494785270718479397205923926546595258297860509077401795292709624707082862361226284590618968111971541027884534199675185007284223489708888713854880481062893597761229790549472939717917965301939002860314012304067837247172513739252501702274017788686190639451651140753349716578774010998040797551248100207364699205013417841440831596074041512458425696574136773630625985860807508325276082353727339869273137348749007722640971630990802827525310172794545119285071179389814330105225870636102201076108561383321951584581263672495383339433684262321047493097926395714999809199283503329220667721177782011753630922164236663499548201580605925485179602597781451770102255983307657447275138101468802603669358156504273483588595052903276077042711607302427382811663567681987107423832671896266965262250764918188269759415011620045062625644482110634832122258823445882373795428924236788554000574972193520552685888594265274261632957336061485475618692832303025837319938332035922166842105725802506596095579985894636550398359486521461786347482587056326029742046715138944408661574460624723122840753822121777674023489011395225774799538707845217913925504628636941256965204841109543360009549571962759183982063928440895189911578984772327303810016463162596505418319889224857724762693650110335084260447217610065797705133042878964121264689100094062997281294890167740512612129782917399219286552124896327448486013195129537058011951298032539550874301977216526519450481550149343281439542781286961893761310000616144598151960846004676757225428913183827631571570811072424818172745307098600951597121577639486253395756067821778765304019991579089560862514278342500652333496262884599321185347234194316106642724132376383578416267031635278641234244605228310537661809890361562977688329025521285079477854260014051257230833293771690027632211373361557272746423046151075984199915890157284768060962240443670499993247379981376636240829261594445868466160361569048274264001155168768164991859652561633841074854301932630070158062087833189571599182781441691829773861743829349616668930076373044467188042342815368439944842473132510888082420071394549789688982343379625936099160014747521223084054571831104899807239022721882081419503079770966225999942425247293517068402724879886425569615953869686548567248993772096580551532902406399221343536444207914174820706443204291284544279788382288751129472219671769904799135915522848907591088707449810280944890611452835358927622454786871942236200659267394835884439386211513985337130469548627497943506567660577964140018152253690727582148760797179464891188402427394978466269344864278901772170829766026238695684522901459655922081479398985442931171084074458982427480143166955882606856751541415084335657480076667462218107436759768413644038347803666097790410979744411750316248405330786877525794186811102450287044447546920967299503249014907937082796537227061594960940814753198485940379370625603166174322865050824736572816234162438919113683466027617315933253511781481147670163381356010276602489470807038101711372442802662119275807215098776660116726614238398318159597549964791186868334188832383453805394951251441774731673078798870210987934246445328083551921639370057890658107698529082898891975090732370187782517469146099925100991610464201787935391405839680991817596610167923042724871860463236871012728787431208536107560907760690438740886130103368372874335170397117472826029483992458748672076037719030490595793512067328532915316897530164160358005940088053942120852030525529966855839471425185073181408783768171421821951995175436125911889709706067386211459528727254973851367039532004856684495209215532982687315203677334914869224577661068265575405020099319215597702377601378477995297442980842482627100359193156701357512573798942383959950636614316481984789019757027949454878132885097695120993150073560087216317912024969410633626266204727204264741504517335447414232135772449725568423915289482407310820461524450310434913895832255283092810875570510602972406269354636987188266802240957916799474384851177747848383916063450017685492177701060250306920040990548722787758971241705427184538028832698786051261459349833291986649361596746286093194337762208638608245050363013627512105545116304253594790167482550871914940679822065056755038528174895760961657879088193632160784176744579559182790755665396285611152274573827626176928029796037370152197826003810875017715153195319266390887192108135035482430143736262955704197850778214349989441365302491229768778115174377123532696682347249891939980530073057351069234678193951437566758563975446428383318687449999595740760142120365240071313345839334908237955029426024089876194271673385132326913101709356277108039686023776019423214936325627903380415822674831880876501012552163007340029187976188174024029967323571683943665961800029752369470486569313267234072313983029913396523274291106701779344968087621756901996113189436740833248460290433423130022166377310403657328274085256796706356086739588669417609749435207730599146468176033933521758583472331999268001972464495816233580971878525552298579086933714031690474678111212453500937393423762539637234260786048550411793141027263703592338297348427751427928698608177339411728778761376097030623883547123353822955412583741869397046545205035380135917505319470957708647395230867871919859219640721465171617437549602672022122132004841064966842865596400552176294135332818993930632942595578814234288658044671142630012486797462423291817056727088718518620492198234637442348690711414797627074255602202951004199185870340834114129397241897541211799426528252619862785586192346023363319589541077796330539510546631129156976021080644791143420102728823574674011762714214829562188761869300957846840844440509640372958212599706555068002849399779172395554933390863399673779531507750819454382644891427946059401009857669195915834930556479310669053168170431446545676295767455975092863397820789456949355627990695351455693251398366767469935287254790585582925720909575344269301606174950624518414042346401706926280589339136766884912154038824850873192866177052253709995944155674007874962604780542182442999080918649130006474751111878196875458548268948516437388874368285343947119063877528758224801414369639307836367328906458679538332493254042993501685921088511472990239533282622016047637780043544952563341133924737383389954971292367428029486636308987038337656582056238941327714183168799146443273853687162713833683183271398425195332030744197531178958484508370304455187098628532326463625004222614684464103043990585818982477018003861057555767103007962582233200395470261587812218756418644914830301205755342051027376145234483671845800934941012406513579689019614921591036130202189040859369290930808648542881114977676422051445088622817563095422195123939196872603216635625050370934401674507989935550413572499067757742442479635869969383444516945347417183680748590728900418004086093981362598475327019968084706001310080602752289368594189451125841488614645971547708607198142427732062158198864299980887595774519952526975882121659572401185240757067444073079801171285691931829250814893862142299850762298493565171763433173609581282614029787845522600782928355208850297602655424363040743134071883372279569949611399107260043787058679515895122768753764866508337429163328108103090176589973293254544148944698867262970151603301034228310981801736581117641212202428643618935284259095672240297741869664861413187542840249908539806862481144871517447999471179319363562167340058084673205807786184769879599222014334424701766283906985516295491579373956418088049035506826493716365629940881680726083438146431967367456123439092608102249661343625240251129890593890236490189242991779578536189300351576653205607288406532870600930598239015085509652647250013489936206545649461137358580271029316366126691853826709837930438652247071912468216988492826109241642661164637104696587082912724312268051131676713146574952287333850895679664056160104348471834351882329757254860283811952711911747783857333935242239524463855705214544480989891041050524651479523869556152289501140562681463106503408965104526972776053891027806229118985077971686377630711588662835247251809839228981378870099620697165839816038808974424920470054285528868590998536082561378938100438470584891413024355953869348309698796194719441215561012609581874697566408834881932036690034277482139353189823463376034931185378298074943688726296416392675469689246999129351569583161074995778731217649689719321121134569332174818929360972681387035717279019675389678316889154324390698594448040647065569843298958294362915963303887496862618146414937921865892173064009253226486326861123394022505281771597064552447915139203845817517134589065629162208182486697326963814300589075182847927129939353649916663967950869259912609438116023081895120560106543664542920384702788391630855347498113988252860219544730071502171648648225655728938008767840378397218484219680790234325247475370502539423941966840695297333623139516817624226692947047459158688256546858615287678629507336585233399030557432820815588645732297854985868445585533633999973390927753429788276585433428777085081403572408990448943750136844942547895086921661735495591071865954022087924735582153000525633603552093501855104690721848492808575845916179506598219990121662552636380349994931642654544320356478432374216265032185702198715143468979405897297150094819514656700403511329501079931225017370776737544273125398937041222351445357750858825132039015024506554072052737870522620422008250595065397121722582346817970233554977442999633075758613969066840905317804155112344508046775065982379299692241977666736758344222715168992536801602460759488657065165140626535448393946622723058066870540531419471211808214893926667590696150772431704977248953234454198355979703078348862447585641796061664608782816412532885960655787338069622018907007908738198945465201292311756712520457186848102317523796760480004481354623352205902420122208171375946430244720674008525863241726744159776893459553528247713568250995106281967707777226866874530427846000050441758892868738630063910953359100869224582990385962942302273763092067801652428104594133131225207768753598854155093058261944267162689033736210316404036673492601482826022455837452188968926414418736176060941714799141799673403013948420163003697924948109286970733184526619490731098131078021162135444512192619877495076589545772727850573510298775233781425205873078598043902521694078335452957938215010605111529372155966193786720389409327917134706923370207076685369278139565365069448857746098491871044628548944608799344414626079534717422351931505765048328021582971122102683355454692940582666903271551661568259802090827235499212633200279125443880629128121267729893201566006380841874695059182015307414672966049506767397706396909127374836154687063233551641562269544774504005187690686516487821408150317435100913810658692369350537119297449549190848926609640897487802444781115318540357043708282389103775032386000114344311793380395930350219421284331762876124420707604331545795687441416300624443195628078895996467635252336871010840134933862664514885920028455370558219460065878643491843486963445692723080212097911400911779031039538374732292805694093429572660979005822673449716774101995203991193736780364111587087141742511304524878542763492555236268876449913540175472762959123994968691741746116856148286445250679607994970527172600450240401579493440891884749379421472991710403874808410284956501119738083567941595874116500049296622803606849525339126264932755930276737141959787243218402138970242755603985919750246566030732085656501098709458478102345741659958698672970827860597375991831754290345482394217877910044023000389527679109448396268153993596906911098877048785324056469059675977597513095828413384499222662503051584228667260828119651786431066323185505240724254139046698049285549364031576388418092704430620724716623903899706103916764355834231708234832725302803175655354935351575964759181998164803928730843576083371520581341660692332429502367703269527599052835901135975435980931203168919382955678448466088196023683359702144265550811730112398945108241619480077003470202185023598754388895568176336210981830003251038468788209195535555130981506939992727960177215162932813007414867444815594582584892569644198750160450727563422583265068384972400904258809560907457806845003883206192912752411401178766322338490485923364362519999007722450629236340515010120374341497749071146969027220002788708588502015793780748377627174179846434654957804988312791624416524681596351741357284174047783451798443390596863412742879782548966330320369179586685165161093566450100048894245086883152610805888994913531607943658608068785084206369191177031399406653438325635628764361634530705740871617249918800852148500051992547181690625593710626863901637998417022521860266100121409301430867883183250247161033588368261388805237512540020558052177290536451183977304928316774515927876786078429738947347380013832567291477700216146785782623892954501264201676663880565363344586185043898797399033001946173452063013061431614030189256158049586831191708410415907692475371694095534587681588185814196435567088131252800154070223503186565578314769763544093874960508498806120951758829857365845420819225123451483542215108831529662683849646518828158980927022250509137579155311596281706530445737005402153409117521454287801083327687022042100237791565809759594767295889788351861957989044094403118684518918463889205374294655284430618597904016180940295786362787292453655220145033030912074282475063386609325557399279620266844966241835470847224074846175514078850841660716761869684386972292456730577616986112983911260175395672616501616565688816311822200082000443482818290877709045819709158436155214081808429916990641047437379258157185876627938142232685057155068847316061441048708603540752087562900225802808083378976806149885604086564031438399327422976373206594398352152091509887044705696067426479419646130075916944167204169286554474401525136477216307459977803030012115505782741590516808407766027685465969204875036897074625858719140248597239067020147814034401204648594063805005187592606018904959494518645890600121686649622737696949986343573211442252458813305121436537202585496626720434226847930251729169288660618801597527326700947806970019905642615614065074833514856036248005279006275321233352393958726789374186073570654644259663415495485231425506270012153317321333881221449286055693803115541639973928762330438691791398480603727213713519043066792512324669959858858178788575049310618357136786295853077461959438053341650027907637410817748062209365910791807318887471719035978729117736619442422773603343170579668662958628237438981709544345854185827998220087351680472056129600155495218142805963667451085107808732032670118967274585848003407491574655280867936715519369742565196307604587254547317948508262895678961038216323768140468564402637977553634542956663110849227691058812083682680179116798871817551404384914674222816337838274259825449962999424084383774400077648492779827134265915272335704092539858314477007197155509409474391991951226627602168205187189419020972638435993685079697384911801811684247395946800508632031766178111450034809938648333929733381775721718405613559925714627430531696558837093069713450633021144931573265237102221800240098157946392037078259355730173648503650581211823320229909858937761524405381597986933032132023796360395348185619439567927067790753558674970190746035676124318995134816860255903260395490833620708620415089270457225423596406510657574773276258511640919119126779876078939494416518680138234553720363402034370951716881833920600108461331504574489358135072047484805008516214937961723362477841508733770649291599061862912641091407142204010546660498478160779204874479974447474766101759167854541460979013757660672205609938085041299582697639448421670008414481489715184772298095267180484078559923625802928405451653466067788608653940860069437388049158186026932771117537428518737173844118525887429283831185357144213382504676575621027869466641851803423845787369218996452338805352461488493969489334656602074866474543422009971512412788064998381471349143422440558176641873967781104998675606949362259111737620342559640107514397830399057720507477895531210307042729209833568067844968061153246143239960629928182698195823401649565411713562045493038118128334643521373097454950631558677247459501931612986655057493969689349078726280806318830631735594740454585647737034143150626771970043216389747050015740548328922331870434436216588673228615365836729970020254664278595561635380693263401411465117841126390078588644391227359081831411557722289656814576004884785919044405286290213621079758818823330887448763689062492345325578798269908998428763174010039342388626788612083968914986114359241286829036265821397157801537744626795926665341338829767274030928938185805587551107943824194088921384576280225348560042070310462339399777296925222450185833937953381532329237559986702591764095136242947114972166680697912122792077235101233198215385438741860585295295011160432605192457124715635069665067911633280424625396810382589631743442420319889867994798361757681910662464359784235804696240220689407797291577382753785741596836346179103519012923955300186108770371588862186657145650257294047449108756812986196863536669833431798490648582831309632122524507557101448906633563378406319971016200065957687658178825409746342672490723734502238069610679574096974288558691800588517496295556173830457020028261055294545989884125044793650376523592558828040628678369453172971059025362518415500653990729655981514844673148091037376726735682319253340760505422288749815337912400110388035258102350687276214152006420506447342778398865512332132964932607306715691704299514901056985719453133389068082613846173004515925860910081686252336740982998066351337551376931213162380368206695802804537397409911749329159593340496851195648888231170360573606605851404683184743991480686807757766934723686602251479590005906948673199133828922206059075214745188348608999930853443120003753321374860483668172167876812167842358265379792022853450664956403972000734400012115045472274720685021046429297544317857237820297513683087545886465660016051994730655022411416214304952731560473233315679773021512691453098253413432106354005955723766939719902584084143992740303942759346922535429045942919531234407252839030372329198635119868370173705379968861900242029023987312988838949297491616348627198367821221398697497045212639910104643528395394079569695781347402621974734615137439452479831304594637382495487078131159639743028302363234930607544750485367441298966681540245756960903597174172117519263273254974944676352765931184938014751487276433107978768269183535117483539696580543452973752076072988237034484424678791871470111606468735134987402461067652162804268755683520744483371798533535782986074606608121477130054605507180181787466674795886541409264404428629650591084035105844847799269162630566362412391726962077228521174981816257526633116852346542595267210920643090522278230616341477141627169170548730774043658772488885449002443652928489863595220345455616193375303230865775514055261464534878821105957312830407907288705130815381599466671451307326729933697662582373464657897276515273379046825620784861319147683081761722224297150838046957511224537930202298519363619002057503515551443374213755323134494726135449904128009817281273542171125504411621888746493067633562741213678544810539896897450600720358518886979574664072498052778340418943972456196360876827627858681828716308053891645150442522019237328612887009259718688290374959345802439158904179551953141758883341689344454749952516510784222896432769711607384456693396450134149528539260615094234716464120959120907200863090868397370446647706636291823811670400578353095590036926407447185225351691948900265624607296530448098532182534706558311337961906911111349753355624479961929064104810744068940564749501943606517539024185218223220311810637969788490279367870387624387583751936330106922713978561511768922818078022784331060707163643104634114391064828258533924039462909344129944059541316392858789922084563025245317099817730844498445800857892328694494023078922697692488203645469621886668879015001610075234326446974166722087159387586872544603567724703088252789081175245687461836264755927149963110754036872587524020324948316308782311258605223191819704106779208894304383150251443904666469419787049476273907699479417934341852751872961874555158625158551584085983585663202184388900258340317450266068770835298197446770911759938223351154949648094087218349728289377188588557820160808109297412602701708361226131911060830945209500418174872992676815985548209208634208550457839067682402347982615719352652909801796220732322742284206904009436830912368626423174287461287404896383626404314627497728814229403463525326664613242596561677393196559477584045084249392616933365294315089134255995718677140161991901056346834858437357246869644185918167137858849728522391683479600925490063079609465602195723609909429666854035064494311135655532034359023235297880251037081739598623159717720766309366481138136968645623361865258289738308346323487393910603863053905736702127957379140954550708952018942727687797906040050824941218017457390169779297316507864854055527539343310275351950279431942469577982310368316990379306891539243950669663774276369661676236193186362846786747302880298837664781773780611343751222136522820539488261364830609843816003277610035392019790417671171336703819027446305049336483483334497514771647486085520327190691148442977268616545350979331433289917243518385462971891632931215202755325130634158273950330472559152864607173015639122340976942403107257722934604868720466688415047688782623381776126637496088412016933180462527468351360029802083640199710890702742387015501956290919523736397139415310940304072855760033785352852847502992802887625253016149177175532569198060715820756748191410437719681487505626692182832517529730019779528673754497394153586130700670316643964737131475399356723705282556420062667770304002264374790623364020307043025713026585869688666924501402526595204366796034096376940618525445196100423124809918267476304452627324445390586653921107908556676460745391120671314025891108369702463426120829542789743415581814275165222770731631864716845485663079991753663776778328616511385672228429455589579965282730106089542329206733780596983283893858861431764203833587914797526359195796093462877453194987265324063258865509051500778729593189109106301190238252244430285199928350825211532202353167922425140390224042456281013553505331493405560370913939422970747002455255713169815123509391422453376169908624206290172126073944543026322382961488543275352560471843498121805825947203263312572165824064978152201328459765827054454188001250821093415875017092125665240958405409438294726974562521202265875956201876808124054626116166186521025468772088494567373310959339575542326632281977118384164358868317797516465375748838519346557386039977202991257822207495798814844984566251216220084778286456736369951614520527260621746254506858506119094474313162574351660894883686367463877323748634656241385234965141125558152597746847968213484512312301165123752237861040416002420412353469290134249806786206316945432018795963607413431878052108976313247468134806835491127188746140147978745762556288098331626357174684539077300105950332412069250878580544207283017173978337079510211697441189739230453172021856783296150857743561431409156955975513132119876981648206922324409336757334765410406756537483675880403837453727134751517366195388336658442629585360158956310036726193108237117423776459641002092374582368486113641766842233573622280954771239740696749066329071058018884502486460506205026071384598167265560097369547544420493764570359752485966609989629641691104668193521694868947516989081590864688354463949402513206759231386182090343319046969832295394719399679670584082968225179019880139078517481147914136291712392923504094518378941740659570240744461821004532372594249886753931496977798102901177586908566624482862254814867929492170261179285384096060019502997932998717320537572084662093171435712750947418647660190828605684057376927358646262033917909155506715813178428138887150864704264245709483793976381288634535366154168988804709564833856422438280230149189860781707402016338207911431535677415954090379665661879041994987863072006919097629932473878074989327329416239620476975479578752011953362064515575862039509108429528732658981629130575161901036471211889517259989753477857386393023852508670307412317690721762779343995540984090150714863792081175346256751908362494406186811095730106419145049359519021167104045902518323052312247402287507807462548519575620305001632865570373325280097688236272549004322475516249293512431646501012211124356087310737689833450926663234981009102355079007744052521755117851777475337152765545077377206582781976503246300817674529417814501078194330364692092901339246998643037822143721411812615825450473133527096408836723489336626655393792729144293141750612091626806840337600114985691305818719026629933262056205389957807819797513167631086821913487222530742249033383440377965690196657786498526252707732979159232820584189945006355069348910200223152412458133117376668140178371128680966384880393729942720511190644371964297659612553390566698335153426886999235591538169689439150212140149183569245200827277545134179770107173014800580483396532406888125176591835074276729294038255380511950721794413747728097891280811851084036352605579626577674692326921023416780830995976603449434481301443634518361294934700313345501063994147254257149021750415035348539308322874393512185121822419127383266117535725570739163669150198075259365184505832712656354369205472837748972364098867334639970053749516979850206143359248501821886027997719755341977015313007085254719365372362084623947642083276636620057369013569578717794566783377786803164160293885483196460164540556791646246449981083151033789439149256913262802638663689038744731016951703849032867624522526303869376771746613204686450309573255804085587011576362668600782777877496909534798168708934682531477004927657064510354433920594528820962342029343593861644440579840977685815431783285455027986746918069571674646348313213947747894950088458626500548862992331197379319262926663885200642934248833367051972497713474924072967067054063445835985182735920660958772559242357762924656546198814288325644520270725491927187002288657642719401925222042659932466451150918664704954938332375779461911854428638176041855807111012259609785300562872251365298195240603677542187060803444162803698674773100423325322612999245207140753586811624753095876670702743964970932317418095697813240988739609028871770907487236127395599382057789961077132375570742267084805835343118311286979090743671168213600316329547902032037978135916593669177789250640666025218965324632527693247670700101170452406434170074786090915955205020676707121105250309084539408742513852382736396548338916593851371304255489630419143137914696838419669189399212827612706385010834904146804287823470787399301118014741498912051502153263812862019330251859383731628728431603294993397963702009544670033930531300563789086259881284058327827456979968157780539877932365732853472125223698649792528852144524597438656277498427265893357220441164602538671537477220456142316273587995498181866857762255832470631520199696890449049257294376528465997006223252136252980083144201875865046138849510188913733373457071957883413998922658360048070949548230287297907500450038814510198626692324745533719287345802390939761436026046950409784603860315780466895155792428536743960866979550209203349785306288294729879300262988403053561956357241730042297942288965851704055881079911562775461468514177159959984573514813833930219155641335187236339641892433260044607921904678353127339412542583317597632792883393485128439210547559758642643105137426427700025821227774264226564790979585020951460420529686554669305141157810566081301646572544420999263044267160574695032374116072569999469589522624574533688207676964893276333858842549420471344595067376803337987799618499926755720689668594570278827101359602007220297968023343642721639716041836907715761712739485753410994695400540817059260560491724929396395406212411238918717846084791684332141281113733995540586281021764942420249969028533730661873971583678208953234392316913720332224802270619741782313644866279309884302047018088083987178387311108871833781503073921934140688836554023951335669284906664907748669374399110130892630280011582803482010935026688719458990815039746997215400003605099690364917618102692548709058961373248480415603319850903088150053757815093458813381391689260198361936342481946513450066882523447709396193221363269408632479719014511739085440887788079845911874126953601041666404770251672518916303977780734630042277546080735111435891293342358317449894601922749775451844391093295077364172685729405669685976263902791712633177602084924913476050077211596892421505047073318994665833209875378428818118700666041969642008464344555026766917189663082202352647757480501373729261548124143971033911079189798915817789166637764166692804857964037964926503951822363126064039282426168568680334078702347124651690510237570117855507250461855106172114268358977420679109201432731452650483821522983624975370175490684637836664773638273492346935733213751724575357595542097091366419359039685162300084322393825853819005572873485896373555958689611908617488910893913833536184541052284307374296051035047160820582406543431914140865009557147675587428893295665884644974890460327655559288923072185696962107224646082788382413660306292909910703642237587545767740021830430428249462853841333444794435256863537428215287796365924558330959125549082570037990357966889603670684148659684800117500710320328597406477319541995861981259180803597536206562137193594531106753224087887804818989013535115512188617192343093855629561999293422029459340080869514984546592206131798864561881899067324587689648223906103216612065568385519020067525300487074444841706676998807441333078243346355155483679769455304913035260532479341837558544325388610745732182689658201195401664891093609030918520855538637600766236990397432257133303135518487299106183869072926335389946082711568672248115764522561441736817100437520996217483238757918634461180448804006637584961468476081564430793445188306429034223349712182543809759542481260919444191540598559960373833816657761261202143415527443289481270084127170060135853528305729531557145676042066458720097765487839278607255495520252463615014212445194553359241389611791348911147299677560242162660439189135243731250994951866046070516481076227420593006269273491327160265232586284260065919194968705734417098858318210415094164020618126464605275171865881012306464513032746339706149645526263265064898547188174088836517448200795414493781391401664911537872036590388907321065514351675350879719915701970855098577567880091932059158669778903778412355180657368686074241142208561944712966383143053289942355832670634894995808994309447445467950919262320061490995105946935721025589067801196178793008170140980060702703249793790118620330975157578796993077712442273046749354272652582781976544995961053968860060119818834932978829520847468813658958902628181689070359034320396403058497540447858494080469182747914123953852153211554930428499821222333905743516826557818070970734856545055531354819867041177030603719463927649437381349936640749381011753103011589494872747305920982521893040569287852440079830577473630552860410236087796397524632013053298494633021100723310325868087244861709885937528086825180679254990724898084351821522343531713736833632589363920699990588384716715231108174699167615023696352818119894772038436293103793281383155239478550426438066343253651598068700057946569923129334288111359204433560277616373649509706822865110312711358033203795391799346125869854699865085716172035313634984745169862847887245773362063928533654232037496800152304334335635924834326610317743363620094365951066357115120602669085093629810383238046205993983208573681939411891180714217005692510481096630859409061915774528272933051234478109020073765519825372717491209397866102778505575815738953395128696434443013924824058467767830106595875114687562483144821437433843965373939951961051160001559664609223884764419814053815250942625362339140115035565889702616844837978113494811701171009992350364170956687246644289412658057910875883515063029384647673662966278306151898725534967332004984032434536323496135657168977403290540888030430461786867898660870836666924195050410453944479717034971427250861271230832178453251825427929120905760362978167500321254128799058366120554604318689938665422994065678226939974688323920263013637554371481086313858263863166824537651671836987530007712599007712352721223041776012175068953377960635219008171709396955790217894925680730686280135714784207151945600929494171392339290494690537755622832622527402865750171698624269521723784245947725057603990334116502570428092677986674480984645426401270485941099491366217184008641277283242923468637833353468824405372924112215696539061393059098424326300915413782043215789442589841532908099104632264289823270700581076704160918394941101189745194465487564481237923281797593982778770376276870330613428242616777967460989719131185924153766651244816004258235278639146417075503028699702168718065099571006662574177892491360493087476461347374877153489097146649352703202615116044748372595594958342810911980515861982770643244518629889895716161040587457089776862928813097767047335149513469691198635941674094961859876112626725529736808181834447802762190463082552253544584178745581990897354834530951938734801665873646792492372680489755231219209498593665088970853409961983522913026183473271005683020806973359825458678325106360891266986361048700559214700348298983108072824936796356622039161088781396868622573205492647116517614033143829566937108382661176081373680274894661779596879962856128913160227087940317286155800753671785796203866997784301132466579585623662527614312994228638590370523476336892212871187164053103040058409409258284553033164791160391311666059431696152888075582804163320412981670892914624958923501995947129957117639154268832984919826520659438738585691870028844199134420785204121536936413184952447492214280607296317460607413956881631022211066374855797788657210226836387914672039331467841789584383157403830453223500669918695116452570100862084783458268333962018675773630576891900711643532785471752247677327516081634177036381779346861422231775840153481931952512715343174647740488234036983720415045025303396381224178584231958470061258878193037529561268694252516869281908892683178037042130657279681690461973356690230230747665984160560674745045711703299846131513097783978875242656974272206486992066674316495735542324723323136497844593771601564060790806639916146736067530108426575830982161701037876489037884754612831537060512202416402415625187601015828165000871535497853815479513979062046763840375053915756720473371518700202442205255497871784053121576819596116584356778132073429637138381844511137461942145433014372787640064794477684806789826715427754212069598779090207707449431855548006753108479812352748769724764980872404478169230418777307339421823963038356707263056633654355832334523546908849399467697401565247722546584457191643887944630451576122963071171013091044860317031117621988208116081520529510930970773536338687428558764193725017449006729205686992876102235891685033428826882807845251361943724702398674085039417581470092232402823129560575768481293178319733023362876607637810407821682045262636660666229533848518926610935627852624775880905092603175290084311342255408275084966802536279884583930630884905387776147757334127141678962149908052139822699423430424730657601121847942660580455270143586163469490000194697949352662384504036937737391292474805318529837388113004196318024288969736566453466905872378711436766603831163472907547262305586097812791138873372807671715397404039073137449605746270474406869454321715993059327035021950690828597748055710071409400727759989167484911334183055871811234652520466005420061590493239929369518947085207218005868463740471370992480522557357636221948824314380183224313164376007205461821100235492332887121773850869457928359204280974394576760496952290662049972805761692155418705482442933018304518923361257531627443005841942024052088261318134464083397771952075972428284180636455879272071305436846018415621216213099772835589345828558212213198929901179792768503841574184211110557141565078283869428885433078213984872755039530997389985089320022800094306311182273559163647433478234020763453307744076606028210888337142655926036832182261637670426902914674467578142611913373006747677126137519343109449166094616710435307039369199411439771245361952656964438189626900625530842214079075162608766851145816220555347810014059817309571955970730144851666839247259415602280271055379374128991189061004563705410423005239369245116015518109109484738594693279239567068208102069079791218699423716930481783698494699790509654138851876608105505217498749088433404467450790557226987925076592630977105782921976238292143581542166847893744032280433238725897348438301300780521116364355025026709248416047758092436495149936298018559361054962933222292976789508338916330155169067704675971678933605661528493951898984253497387591643075332619403019657356911305604965214624971102102722428695025559995023078064573171884946905524433997596223615363227006936281323049714358405364679105159920010375702087482066022122758082981797737407215945083122075735521239611218624904128374432147556051544488849316517387885969702811174442498995032721631721432025649308542239941568339102536448650090015417676376339527516150631404629485366185084558622814395758041853357189309213070752486352339722696575162529225856116104197499943738400223829734098701126126154892293925055173740534777673486201722533520481772555178182575297660714113872372776790941761097537725222706437809753764067360476751826114310613551579241100771817281443909695782923035263831518318895585697560476708216508193818407282935087623077837581697394920625260552237896695894566214588055550256561979291801075747456741790098032422251542776779170975815055695555140501984816214354337994029209760651722355232422259593461028272372269920060576526832804554167245915406787294452068891237865337885509202309633336082637809513379837609018746626783872945229882762546149638918440483989351125222707587258636615718211150305626788775686762948963111362482381684581238334200663854406587935904341299617654822378992778510078375187457505831830580839779365665332880270797991996097092377438114941245753551629961185795786277199457515041485648216225005918330764597174931773384804996193941205402425934969784421553610178897013687504598416351186364969323866062445999438488021948597448439159139268508484804560048077384529121903725365791516770317128291846337215133061727204923155382813727722757076065241355275668020297129011899326607403967127235224385757278790326474866523552530138610299379853812420426699816868562875882086159975764869704662938224436427209271028716550112794141083102006903182425234688192604280089020591973124263401546641210865287731995137840012871429634942697251199704061044334301610094511169539624585472654703483583960151822858070509209869940329188269009173063738384215615790776565417167657818302645715847471221048386107027392673680003367425013051755308704682414697690301783473718224076151233817848560096411865455011646173815672954979378467596373891733932358994933690108694277115335629099816882070389366252517975476116280717158701890763403776120880146245689302712974212378248842637335599890004414657946129510948014742744267665040160500478469115095380921745940059557779549955104153757234236701584525862679582152998856115610525430666754153168509001093796043445560514134498984553869476767819380712379172461590638613547528441881918863998728449516302298476653573085739632488996620526864943213095958675099490589297339998232677728426266771637369408672518189970178673533191193234549809101897796687555226855895021993762842652802986866962852449282807591414123718040766889967951620831502825549037674382878207791306201271991254913794824908595052954030920995028392417697066583957802131199111842296044576109715893295618399245296485714631016383582703018231368688925189102130197579835036236687460949540798067365550516897418696548457978713343939346701345657766911644266506927039088489690144625353482793366126688646766170661137920233546449889344717035030843489898429884860942852276570453504822544709188245012322427684427135721140068127833297651113857851852301242907067983559224901534625604883875966522214888053353050021161678356069517960367056503583125728061043554273414422800550654051467174245535714585655167934902210275600353745730109854125116893230695034438660110453669166616702190567925576815618809556175647778092848210766786363675374608318662534058451951671877315145706804304034748457103415164992435783277496356543538228697223286531203383300090663072231940868485198613488249406129440277693325724299087558515688964413595220480942058385056140596948573298093996804366985520938793405604603236025865691534028719097975285898019103416004675036028980256821977161645543206418233279096922736709855141041377456213987244738744850219200411984852507535534289253275202872955932324889056137639316167733236902464510643563474470468673045553006462996070202642325322523956513984029643094541624684480051999134662328407017375072161601351042818559747251554898041915939227768577577595916775483012340217787418987841437751306873362356532409837546000430738308500415176551170377436902211413264806471916787271495010309268424047964208347154738795766906563101238612656547912220690721708711995314001772350014544607548025886884961372578819201561273059254346391097469449741050312587111170215196258365968690151363616534837571192992447820095745742005641353240788930672014254681365612952845078054215223237757916373261819620172892053946542747788505172097641858506440846921013279579152772940626145983785870753327650299430312127864190057470416336498189252443561882898559141008314323412725451300393188658073268588709442767422889065261187255050377772942104982031359017575959310266251375501090615161617641261988462721431622081208825006905614932165993652385490589969984251537659895923728743388660450987842319741531910486120467206951260978081583025016352197644840736732692613103893574716140929619928683427083374518074429745507463391322691636420792054915962816838065437144173133299791088892311330923818470681487187001590669261338872362248757396494523605333165835643290274345894896413673806532871592655684194759971391974949431261726796526030731672116163180091711252227401684729028941080299493843203487099021305029885074455514508399892942226349669487144369614169337247369812755825581125755532656605238836166255024167234851349454335868397593182033027725751091995014355418081957740961581225973884694576816789299060860862446307980040684870538237740776293813857556060911018416241260664187345685352254507639964327773743108244623680286865993046099862261655084511956785733662955503198840377424578564532688972292213645986860393872130867692146632498289519224970300661043287966782272789290580277648368687211910772691735614138756385386389034707200069378682576479493505806201866034287428154810090085509141327196593550119450185192466051586695907998539973066773736108715870734934470281888209677467161520837794932499624604198361126452194632997526638941974889792106674260866873186746301890669463158527880492741232115801507070325813320628357708453531789738786729295100560251372992723266046135913023237710079220108735345831043986021888842031997311555757945388662740490321312623705697949158311884523672988884388945870919914502595044433882888667776969922100485052857811312216349581840333046618185807311957746290242147984020313882180128156748798070541777652627278503443286906200782111139907210122352880498052498007212841317455872957913992606087942231713316334598114349239168171103483097222328780046750587790732023494825400879836113831685932958708272538324213681899545196679586800660230381939077514190777876487979673648646197150583482018485302928069803778394247510832043903309525594079613122253771729377804687983147763287312330510749594070138139008387547314536732653184214292840884900541759379258006046004600749080852693596278512720841280472707898567183810417334715864812087680670950124603091233076100085129607345012261463182183575853983382077538000166093987210265002845881075742495991618678720841504225413013900631953284404590928472151010406962940010998172021880068968124587248769905633352821147457627784966803030544393836704965521490044442478363052348801930980366381860136751618139113384891012579725686985152551357696481200253300741305768106702246766703489617805807360474058672906357110905277526795051007926336431164412799986249096476106796945182650036704797262595738187852157871188780349121721116255502690418888349812799483036562401955162287297101418414637539427188216123072807078787454171718832514694241984112631609893790370957414611350703968959846286969032684559785730797823468342840681640994983084500403123979440086681213052811715028944608517615872269158446517806487088955974968971503111039768337453396920664223063818693330293963499705174297381665752884112196170644792466477536912413383963809089814212285994891023660282633246106860154222635983643112949702615202930954134432807960336957679958736737728369990583660268036693385347949014866287680225652993340053875150100121748478722588138044124948766327204896486722317780459424851893484744750861265001620490911893248388392871980602485558531962690752438889821492688811949932835473039645580234512346316486028031282599917642060607613560590853169584064694774884964217159949740929249574738046029650415649515233275038064916734114561111552174011822301834550310643642318862037046008604369680703444923096005794824379687762945361992624796942841955207875632600923364757414274612950707383731781874276156539741095130392268039523944267034359167116082936048135231640338024386101696379857553507616045055373843033414515368465213183674674623484607071552389178286240055130898644034539231216154160837086371273219429669873618542017018371515687335090071897605952469007603151142929207128025889369142642039285163785473582283751712857082799129458714837574639563266021050395615019097024297524863015628659580701401761244575842122064770754744344285736857702923854586729638835330379637366989549275755010758749378803444153459912586087450038578897371825217805848500358412608860495345596922870512288212186923433920800122289805877038108018194479920182116881927510811176398813284926147657402919065175174610686553018118543631615468963539584666707634570406056772441426375926027001135435605657331301071694578977669987067329749914479689188538207913384544857429338021090960394936104087834548847862149759311695933423503312750898904225325798323475761099670889628283256168586151554559984091655087374842332482006484539041417317553987289900689002047414475154949968250452874766145128908714760109067196941668696152451662427529748920920199381651443695781773095178686691267391830208245654737295768342454214934461578517374057904435119220828627392438086164726750983499804776203681895954970410275714281299388410317420875816145067317523724922138348229103889046711773917689987830451383962369075997905737462918616774924840576931582331694785379476189301008118746655518783491948268272562530630442335328533489002447229482718880016737458539559234790212173048180920979273781865727062742688531623488119983698981444410235578762457285458743706054466726199234573179224333530220305708301415890309723098780810622214058769753455336826981195768103659353682183224694894507506008409891833176295097412447031355544167935695715870659887897052040808797105814467140998615712730049759861693648003325903895193645698968343919772597867026074142955278671124183682659611722016560027159546649058745861473898826047438768643137483783832056608058413583188647659955368816405576084976327800663790600740397243321732332958643705734766347186526163774965323400274166444307699436460370373650320624882139654917952212675665334891508896056325915047683950369095303406911783971870975339069688276188568559929111459680392450420639442603687479351080326141152625480824789208963368234274149014075637586385893354963509816744143854227463806966725232708692770299233413406795841234974809597852830153129046262923417770435798397519393238286788042701323710358881525782036395441632608497165849858225288843683510927101348946633729387150736601221633266911117024652727197999910044407422471554793180962681187796259150658098830390745027693694275548651931528791893677294003583830926787715205531124828938183100498422153839460975222921401956931121523020055443285355781149420202335660213706938634815692452285564302690819392559202015454443785290107346503539441972688237857658653476009915722864375738728990389583554090943760223758339171569973851771929586350423238154914417001438144871064801690272433213051399595167628863628039384158854480164787623321280778544028265388240203415538010771962540958678515495065412770038913276500007874044682721935769459554646723216211474838997086792746078252473999225020395062348688774231709370972519504070615841908151831464237188884209711816456245027675337052288882371155220174095372836033413895827467873845671782945390843634870350745733834189426174807690479281067119204633826871545003980368614276720971065861456095834066727796042851722396007356184008051720505488285051113643913625280319968489436548218624207779859885830414796528910324789364124622754078981699972379982633366039817392049000508923952249233719265869884580528021107996258349737267640128905644735216897237087988415105490746754666550297077954610458564853802367595724164532292884760065455016825403431573890221159693177066605536718739432327219601729512969240098659289640053048545741427319456812810608071533342182352184466726197519905450087339942418466001709033883256932744431569828505571848725841918333193715194206862994438674555242394518823912833025452319062263479922287359453730861121662186130557318032676370913980930666114142702570063818329385454236915446209136975388925323068186080631973862688866938750292959497841468343089129472023533764823503672503915128368131459412778134468596933215349757622774938257235413189733739022687661587039563109155866557394288401780801595111967202541809785140849933453174336817913749995149354947124896453955756193757095257968460581336295193344042980096427596870665276233024750735971317105383649255245048672776596620589352173297901176203044768595056934940321320702328030142644317125993155912380199994978898064789695875540826733341345260456664491408995867295479528632863081314029693545754837122828620114208752276386413638684299145625747967293762923592751696325181474899573114522451266905589182082696196000005224878670543488852581816210404656678836814839399409972564562295999153895182546526525981785323916314754196733152575535392607479981547016068604287354185159264835425383485041817626365331023342024572041834475865077728972806281313910464175766018308253797170591321824521715078169924822863520379219464745969071805163018981026325590043890317623418598437022553040320093100366538913479941489412060415510000621431748370475849618534860846743140182569915916903566032211658152305678294178789966167081685865509689242351133356881780694707065542420400475708769276645073893053902883016145191085834016397310850637087550076766093035719026729436214601646291485744914896116172045851250016765530620808957003549137510436433627261649455347816024751408630465001500383531941353994291217380950893496964166483005105137204850621766242793523539932321456226163761785064672198542027534592897520910812094323418295588810991899153135340858386534207269293102144744818944745417267850654215318865341447682085826104275457467149198433485803692436857870994551548557578779389313787831816442123716356834499381992735444713816546413262200908105149265438521310719650216014840426853436925828830632313431122216251824045902328555968252275258705647585817205186764810516876668394247321481049628460961402546646694322045498865992652413878209945051802224786474456576907547586523504618919334084196714491004477847166535492481174051984240274579570964798717077374850080777994466730640438451772554629421408478026531162552211057163642405979579634562200345832793058528946981526885918835120161835453901668330699636486423135758845254124238100828020833812076441629094234535487611235461174720363307918487654174190271343696477305700945855139082542898858665924813502451228625555945543573429705301913459817680333001913063171429538960306037947594554344425397248678482884378990276214107903098897066598542731593360709642243562125940754621068564228766083325285910463206191173389570155160300919671091929849845239978069814496227123014158196600670523069957040069405852261369468124270739967729254099197837294599125933609994038670064706218363905460467353958495055475070205772714686744230179159003526926459837036387517901275328339304151180259573969498553284567899680576651545509752329490205614310427008846227645535477882713414526564412689903625093301549112945365085264092144857443369717930674082394581177619691908788638815073656750728441690210685904072341302532919779498497478039286433831017004622938670554931420287523791420521780366755081146066107519033198480834078898935139361360395758959091828559408938753585429879955290744237125490465638581439228967781137174774083709619158401526251806021347348813070124744632524229915537765644255716283359195225542118666948028360148743516617816388712223952234767965437593035435967570325110696737022058508286640441698210996664410512101715925706270529770409106098112364319857478029358191465682538061415636967380884365724933446625492764951667464061089229325160928313801243795522522637386146027756705281213141168836767959140444870551654601962759077129573233356861677098054094174172995459110033458082525880206039448676910410100919797211465761188676388941445269354483961829132879064020318050856755704140316491787865355614250866797088197540148291891255109199741169606957779741282785969200355072770996075347094019092541957381117918327055478081908799882881765846584947432601592092859289519069860402045293490034204446140864693234755746886303346253223641302047966282897718999330547284723487728223972023102824521839421248237214531615664677862615193603953654574388757427128651745393575493948752084927053705176610634554779048710825069665364307317261010445511922532742857261606920281177753882473190395638433108871609618172420436279569022749275772563995097462198699058060838970125953484712109538612155824823621211904798486767293700013707364015292353161912162836424776428679206700292284856017932847749676311730057859368383434311865637914091798481059127246473411570196299713305366382313314491406630697629245433154580288377060082916018137672315289940036793085981057568610421550805646803564723926223604303984906132874567055256114229772865082175578423320654913665002821860897587424365727292431362769816824296506643139237651368594977305831074061139491743555535054455341668395279846090020979353719189420807107683273405072272724414046078931373074740050369061136491359808720819294995129469620444204345196008870597497672087783913130435697178329785489849555117588285333428095417617023388372125027515788469757734802505648566396057985067325486314598636865364247410613130079229905680239901461380306922312348166181425431870409591554541332871305200102657719064028073313735686521889508272084541877740532938859119430313233098669297989547929841385943636890281376901510998929004743161976510221014341640021286328722262664465385238884278311722876116987222443722350951387998673306748234401325610348611496047652135357233144434340801886836397091101899519036831282382903651983193472829665787938456765703164496953053264601235189916189279292801530729951296609805704916938790736039276982916645341072084094808935866919982496713504084642345285058343770532379693314672068798226650252131880830789686307728055864076056125377532399092971089747885467239291295532037944635563700117509962770418387650982759715683381592330776312957781252893568308356725823386445749479898057158461069702599711096897111005285890473122803589970795195087603335113403811881807899353832896816271105830134998058261836102852847676482203981753342482101135093357822533916107775687365208144887599915437004139308709447561466372803414733673016931951967976224047655836998558623998086496657867205699069815099340412364424551332601670428933391474196338134779552357490076103073530183981717076234415491945838390335754877810505894417579812383247520094094259460530220834526250814133139462674927402061123494542939356524057970851106818583734799396027901522260577369898527580431628137299015238365646115346307167160633400123135943451562143803265713914581854960618695366679156566201741673781002212979843204035038536735521085589046233877950915202359541280439656452787136468583137693257814138316944387320724138522059404062512673018090177620416573774584133376196226699433046740818522956998574402275669664291716907665801797549365911560594140008789734907359032474794657856066100458776583502331237406792109293625750847310351565206194783298234268343330917391992730743120797869649688078373853610847575204588302790809008851950880307598792390649833313068067140657140542012212523691360521247707568835371348060894516549593038401112020200034539396713977757462413147974986280763276040500631221824181407525636240995474185704214826174899469768126402572889370379355900950352500029811102217756656478858719249896336535245841441271397115918071469326867185392084433812471947987282417942751349123243000748295086018473955188110676249568688605837071853103664111277017345577147464933524067880692337683764337711968813546202249092143161966404069770442144368762681128049344948473688048841515771677095454224781417945663981426137429706271500970708268307732195697002663469397639208005333913310907484126588119249165995842801754292925884812744626293095403789625939785790878472085762815851851103466586406802502346816173010235244680225325747263949103826266126760493086325914453209421954915704709539832750879748900719494035913189064699152330236835269416867495818122540160991359891986175007512536018568244506728639943333290402191596594951332444916068500523638507228570743445407683541136810047636066044201688241441016420981385813563817079633542254771614485178763286657119583408374481221163677694349318333193738213496088092491620124474787625404413370885767003010429317521271831332365888469860895885767347112952767700576611827017930340028994053265764370320204468970635712917198813492902096857283502581047294545188710564969989123267674985576091116338143774348138920025885404314116539008841915139350614295307951977862417549838697734536384066227079321814646146983649605467783197842901128024275590388975804531523637977912968218467984298941548460857051119509601527119932067768613184905183261065538762194041441555460773346083050367875890623015818344557524184050909845152156073977380593150085009517654296875416251189773631251547158900914291858089689125190605425271156154157088443147038814099854227196283262789883723847526958048318090138047075061749637057105818548709547642291131895821283049515010419597093967920448998430616068868443501598297342334557079939368171688114425310509148083993670692879585400061671168284393798819155842010216639372407425511281004945296266924433069148022102194032878899040331171153202277032449673812463401485757310116268298261044979584195588416594706877698259144032011329851275791073513340074699308947109309840010529959151613137256340614826979027353238509490129128762094302202814248483775366667190494879393616372491178682188829188709490158013146862757429704479207082436238945141537083172608262184392762945835198274158553161301877155762520574205530627804867089900194237653622166655262540620890185771399444632786337445616910261863755521094920941914935175909744096073091985468439442446022157499779175773205456595963719372923628653257058709197362282134255793034863085168759735541468554589887437559007251526263428867763433572765612691006770638879782924919525476009611895490602723081880569914282044036440269725903288762541174103906611708681652490830185573286266564724402519084753501433846855514765433985945921220314635018101714705476855770260753590627374778790925267699311557745805523359271094536212334927056422761705832995374353178173605103912801340577544520445617273998689642578660447166563720233576237334819338870099696084538563919053978539086668706229447928241956229276706949534944636332403804324104134025136518490491560961806396522288924864160866973553795798985173513041171067666251673966004270337252914136133332249370750680712120253014311302819708632809879967054105078253983684793167319646291729074879356761609948708516809770371030543095590268221588455137365717968016013413358416128091387576636478244573656073342275391616892414807925228282342541399959799058655562545872164505042889190000308459944085416490067698328145479703053366075941538632922353888536096424887089251725629188666292666986789204420403275576416404445103996466674479409877470943425338045895452092897820361485753883973181913318676062285040043856081200934253388318352507888782172179680118745378108236693728525049571733420608246230856969112094260794219203333961708073074513142508979070830430199778292352907039070225975552058872163855232251849406632457405055579266730775845710643961645763279995046296145246654864769811850896749873974445451596702878701790568112825272201262059040630353649238007764045351666578733743955314175720482163605945183187438525410474284382502173370867124941761301360732056560069666400767604217228074560122233619912706693476877803780248887290542503466192606894710720488859599004365098016836135323636187608584409656874548627752938343628590149285004836925467079363414527167044186596993660526101672501112225019520637382488543901821450935368721788887936358330128095769731484520541466751830582351021720326946877099409815617161628096189044868025691129561440576987412859129862135354869553961826528816333456816819268237108828567069215759490358725690126354985684242308771904998071284900946887253151803892017733337856528851872989143199078350360470670852471180598508457705524422865044974758994865291113661990922753375173826088742655024316879550174251349844337839362677504259588585994839097838902352534161295031776130108047368041509060935263583005969458122061971424667738688755060132595374877671419673544645741143479471666103121828739919491714993738382092910900929418677790750433019704330220536040779200058937684475632109487489109569866207315044751270394038555303529430531259447787734146617396379997954592323559087162042375852600843589802363956093695116652858196642784303787977392065506943994803991848636280315465490180898678639545950777665626098341275750350171975555478360266836698376000270253917773556086469519013212608487546647504920048890992014837016234577306648330368119289470488658304873603810368584947085714103846681314550555974345063073275998351464828662821098475379514680739771623448907498641773445379455230077727609573716007515169056259318437000534470093799042710737665895789050057265351661883170113054568758493144040208633541074870609353720820344435199315265906368692636492740353954726500334683724888333274539870240437408526314667866462934517810621209081043879966846480492323767676139198932648394576120812618825589990080365396945978662026902956400281976892238306378411994639178642324640592951874489256015049642117069797398615310149737935575716103459116809952877690883978499528111448713919198105943389065128976224963493808261625626850108428602386297666283487640508693252633040856312995982963932323959500856440392729473736873764957497297401745387009302681081581895721589650525226218935129159783355894021116412139864727546910106788177845020626865852480482408065488429654611457885565021132175966705909393656011848152676296120667148478815656174065913931899397203920369657241953772973762918025770334396432806829199275104628360269433043671820217702669986616700672285426320245112006038294811195802297516351642523664909116366104596006821706840218082334141724718837036691739034713673790670363791253026881742810812084459182187754720788880851912800727709249851403289074276617621655780496936392109122800083890874880576296079664609753331313281942863844414809138259719978999044627083399396500044262749963257074696704428216221717194437526825739524333563595332763730015872967853176800423352503613293959483783937847669184928153218985652066845907363422112278051006795989433612910430399406923784724603651124100487726748383279894004832963025431248721093301432553167698258532622935276716102179556122044695946671984360396185258703338672056348129705034940718908589985634181250346761865804423153307344444586767456010508772156173824278218768079384348075723409335880939739019545534145930598021461008263819153181912057708362560786264700358949870297587949385915857667599725654272479547826085802305989890596209889021382320176808009651664137424937329225580562663178845162675093744219308439421377205770415111678019459843760459808725344432800175613213970044193426796510004916982097244111680220538360000076913968601290656229049104913344371986235774494250961552273543737002389091058230733193905484933714991821959023651730090673833533584469562599213308992071372183494178272278593528761844841432825556813450278586575472697233368515644232072903121579571062587159317089609331959410223283270060975262653794345214842301609569004380517110144591335614875224174454487038941272450946372925462972489294489132277002048239127087648600722447617465651578104318293730643808553365831089102997890355267594797153597587800036015557300221278313112981548025043933811366652060429767771921397257544484235216718651819068849447654065689167371380244748241771245306065244673152390124195591014343648115689550376652080414004374484680813818764188195949628465448865905322646183289673681077931058859717329842652644240629613795747529807844019001550104044989595999167699010764653210265821381703998901738432949771560736822272329164414268560730537633283456687539935214706484448817502766588719816416906085725855121941820809158013566005999031596196076468087275803000564560542053397913350266635342579365465603982713775090644547188692813181021186297337588976188439162108946531477959024473597012118098505175976941822500782284291402928418447050001731729313287057854382646793214477423537385739198532760953973142612875719416018773657175150617025599829519166096824110150186027635949339362020928230914357985108908073639575442718051606970143811238082793751671721886261649220770285675721751532398513448478642857369915767724963628777831180105674213252499953454751167757763030671652248122483698665876278161906165791485251056084946781756847390894939857017525723426961232012064109107722444070683648421271987012856747856126710017517475795740155888161569271158626891730951933947613168445702761630329494330780406884188708261086395472342023565362945988092169132965230985198774077897147123234588100131712230000938860516721805352452004369993385104351112005565767419395834080177890370534056341918893987121622684163294158040656676905556503090223721609137475394946400167906420091812846762596963754128120689881575089487775156917805968931836478900799949698008768466103303111838837375331544809984072688793597866272136614924928178239712894334521299570365060256856861534786058913636037353664912141580415116116143482234017089281738308330168265475501587879004457861299968127413526228137482623178862148994861386172355964754607523849377852954197195443990221492242149386368043494666003966549874369996611008729733574841319355817644526721288765777106182623618959894235163125243549611655648876452019184859770252187655820850954479782317795813538494401650953585160096881673845823917999240008241948524250012593545417421948882828446006054149379124096029097801829896027977356018484302272256790865992182580507690170718099682815214581700691103291532948871946815002587536776797473950998392911058986542833921164223677533465839965482464615062873136523196538270409784214031135646721792040863856727191948721347718950341654896921005519761536143903740750848853123222659597073782387322241819070932405370691529866860924243869307918895398221604057424653995605528548827116287583572704243875786898326899717529294376227487997713357504290067732758241631969172227280986027872210286784192944946571534632430192395729120628991957957562901220508380318322368301272212354659330860411871311224566494461930255470776183142602781177040274546108092261654365233867282191034684126020180246492166712179117065962501018646456096674425171041300586708635512657327232580727859572332367638371966359359895378310128129369920994138438384146601684838731555489830288031980611778717984443368726189305011410889990607517115554935907523796757380343979262275241975134093439739462247389133360439013823590910194630300172075281211247542064480365484229995191844957318639604181961042931677593148254518310479480572194819914891121872451411226339258669415198480710344567264971423172155226759709331181380785556147021860802402600988951670420693327464149435307028792177574916782678963766699478756960170890370794007025649968085093540841698611844233091929715806229728642131093135007712774605829625392014575214895265096639012791421738626163707706665807899870003613923562738592415997560610003164427710242537287022872327192773054069802124685141453791126240054298792398405396896505756634005583199138585940989705324208784367515213394053181740274525993181395537932285538130112998009438799681870927342647892569066603077263639750807875959431805467631749138966487243156335568625520701202879440663054243552664081481604183801588572088975715316726642250143005033882950925868918550852808002533935269979262149635334208652614507707859248521895254379906333706027221070706469922833408012564027997180162722636713738995677119203470010541235913347374492596402913331817049991786582037710848586208881873591183261507015979702107439322687332451277402586923664593122011265804038304933771674269414336862111934333778552047006514941798623132064633852546406141655643934370315772974345167693642688703148780115208493237463434107270103203136525126891384341560042825013332126725757726234759286396156754057708581334328133352822550115701382292919557840567926171604994224822473608431025816942252460086508550065320446551653712219035118078882051613142433452160302847289319036369300672388067020938737553390949509700926484306823384907659375808797458411456881908716932700764762124280172113475767762081466789718968281376935365394117877147071531337475573489331284910361987707701519094834985865237827409387075860545251517194985178882238735468480131033257824622916293334353006361811814213967334333608522319624331574221120489690255700423623618308782375295933050492256940917674039910924383546256825891226457423012596473458107017740494778478177605403197161031725615002596383019481809733111096134109529079194097278869800126001653060631075628400359076465742183737212337885911566931163904249014752153624525516898890644218711715348480083104442682185125470385445159541054962449871074417653920647163885389002588900092901718305874877777731777436897375636959610995965376603030250881652029810473071139591542561487042855846428613627899720614716167615790863253484508140737184167762645839609504131263506490243285003885764354939482183569787263375662917775703075732932933472006132469455667965353275412252001328482976430377604853667818836779216081169958037514746415931198235382613568822218806984045592518758367951446718043008880495615677490444492298978438717098051509395702538998101432021684923443959374467318226945453633408777295762705163238436455083586494364031120581093497946151879491730173595117999352348460094800194036292101577340906311929300160416366378223590012986960265277209515993699818578812766556843550810174749334997404864695507990130593475474253991903298613283869439310064146530594326849102659666073644480917500742028490953896288351916102399131525703314739094961057378603613174623309268776864007886077100884157507469430407788782567310956702168036777063293996124725939727296293021928824170452110074247594226484633787149123565809716520761516069656930204062070411745429299010600841377387733135020037235758079368518115620721650071885357366004584892274038893629771197461264625392946292334129688480598873742563501367639733908129422280049305154981634466057151186014292764592580096694278758624993947227382430202167597328345380010034712700608765535205124352702643890971957655202931945211556972611358408191489641734814256501340176585229530193507074565383735007413665166121825001819786351069633173349307975738608303949727494269346415602465170283973738367497000581286059530329384359248667658029092274209763560334094811619039950496825118998812900289685944608227195836891799228488359420541353727256223617715078598013472199519458460677237822669172737357127751768901671337787121285757625031857522186734014810972950358268730434277115194180086690909208374777138989039690552359772891652334157730760495835652674887983486191372699149734773925360696460071244892555517183220955110759565265543218869339010904091296646824224605177109703918915622101842112123005268580046540321276426066611670619157484870518495383538767642323952810426704002169161896635965016386712453860023933842302723218310788339209834252470383322366515875024872945604829319819946444411495021558978551930995151178958248030814924120163843954112189771132556772634742782493772416995019285189377725751890431456803236994290960594673382908004513150800239563938108573939780609329783834718579442596020328459006655753096195226094413171623415318820541219362463013162412180958003480712652580704150364926508043144250977866639939460732522753184551046980651543119060282952298777839026265200104451309856299253159040624272097342872481646571834003903748744426749474137814021926174640979982989043559017662832908166981585522441218172035748615331718665130127603147066325139479782643049388567892920878888630802616771285596427548325452076273534790944878769005383631407091159862192865491357843105798120468411855092943084166057179822501395564262759795788975123878260274769469777813513851382797329192935147994462924926270785818812131271664272106607775547265878907731985247993565852402126534800138583268940736702229449999330349239596369873224684393278804799068012841028726226576502760100356990717477792904883712860276807271331224762852478683187067893465205003625601064678201488711184549375641340636104650207833189547196440651353023124534277678063705428176367928938406694910080749050231023383974079909307349732595118231279844106452735604877763340224399997140439776685540452608321669028712000336301480058991786971759895336385031448711547605804473226561750936058544369365917425456869537858180646244854285207153735915242744106002680203567453975823534889289069243425752151327020450297113781590651859053447235715907298501756568244754521416747512682928466189392756267993471440522010640380870002458516269692431003059932744141273143112559547933092633236159494611172084849536739412956521349164053521847306316038543220422530395186351151025451554237331487061595847517050326457999700024867702964810125236837840899709328042853158977472591159798326757597811519478045692569631543637818062514454416067767020022164282458478144209436040956354026834673380664702042013030892244176241070133743526296544656425005848770960810553102943171486713029593002432983987028604542958006313059230119331888572681035968702131912461528896246392364085310744617839385079644744261073074155889102403874576085555652983420958448565738890101133616266965119945495924939967670050546606063565969763319469950512420332186000249205725411891610739464039086190189996774656430299891546430152560382165369872297641358320304500572609433947906133758628393538699870375027840924427780693718136163530782531009421594540575207509925775141153900687543939997022050461093856670223491714285190907151179845023717745226556236924286844543113543604207908829596472279517349330115424985194161852226364008847955633556027270358286105020626598792347102687609426223405944863199138544921806386638359147672065101900671375082032685922897261217741777402984170307772998415015415340282972332567533806984176375216998466807277909905449392856711107812792296717936590497627161129407511680616664943721869165691181822751461398475436057934638379560731039245495206817572241279699056568669531163457144418375545960981696497611768221930108643017567948479101240225016285233705034517181230259972352818024721860600986879368713613883181083231731727911121320172212270446702894628404637900478133231446715166566998800401079876040573666116340936302452194035682498103445699853019668759935400208036930100615424186739259707562593705018695189765036564226732411860696893092424677486025465665021023112226052097682273044181028007781535602494011240626018242956945244967908035340181216047652380855841683969088195437204574515755599565545305947931255304812691158987596258164234647534668258443021757877289698110477966438262698882468812958722679359661094786778784494074857032857835989020276125751362650425642499741082635888752888879964359702286131274710592634912018096982608695570090062930149665552046044538574172670944468008109347193690476176850228803701780801999316101439258282834250937526684356862835377411099203202306914289250998456163048028527938711514098847903786835865225671920629949344369325658201949465980687147020192476248509117176954331296581571418948820779767555793842678333275136763685245820716712688237410945002645219981044833466226428948173950996067343403336663266225728542606840521966197780950243691568853138504417582813707115866811923005908938899024045272709065573578064322141381082468553677490267717952921227181939721843547875770799299258480592976519730097087386716529905523912193682192329895562506927331063694794970050131483062397015560532884669741039892156553476111024188211285976564458906313081660049634939509900553032819036706683234055728607815428031752247474531537718554727717059774661444346077155112928168859964777336572409520860177565499638581880264380018661356924034628622808873499446179423616673108528219869038312713376701256359205747537455903338979235635617665503883991467272549781456528871157047270986644075139598953398079018791503893410056677525532691778460409550892673770661714863999234890924429737626399441724783516788509386053786775003682054822166659746382072585664944199706568855971574220027122782231514361136275904552992628503304286027121128005530057970437705743720008287876389699636683032462297478581385291437943095619085356023729537982947884919939184786076210171139414467674013424797425157915463412696483371753059612534366548506215304848521948505280879350337685325066241494056702556419871076415865462552296889324007316860173574698371369168401192138173826038352517238420806570693746784357633310869419568449867987596744797351302341969839814467312307913192645288749488300523164769159426023470173733924135863931634729600015899318176821400015638379546504974814519890236946528663826816952982820681644089384854586396957109227002961419796400879894612567041975554655888545570937988405583476797134114057930940038261838413803374730771424582580955340513080657724432987474526843204193146154109003100839225848473607431814575367500981038080369632691544633780714706603085606828422115129945091471882181721709087369846631067175099202758445271257115975833964112350342804277684390469512085353616263656250397671343911908146204040642969710993582359498807690777131423572878997672249019301825442434326690604441658266260107251944994458302957543592972908012499136705972773303293404489952455890551300918841467662813580337425939563738566366371095858186753731424719950313802627725497863529116064766514603371621109542727817881421055821267965294633380954293346581787225024993371430331884775164251284744415929725577804429527207824663010279144567227783265149593549188729395888845564295972866964720843077045710061305487158063059447992128098089786753824928820152961170025449529255956588976802189073039807250025196918916852692489964739843408294330552404811592303400856051098976272044495527431847756661740109408659699124856962706204354612094537900401911174068234009944694328720727824349289210363017801860490647916568374034870666973361780368563975944088848529186458763920281789075159102933685728514861020761072603427176618809444426568267236889941682300087751107441842231655386195865911983876100571309831320035161161589242191005374386904198275388932669018404899691388344566258933168889701772377160783173920457653798368202024665911947768717300039575362487432897836235554470243883375491182972279650646082472440451278502293518783377940078438068561218020187564738563141343370754160897307559968346541789291311655695642204108213445546928459121812911892904304591594081749181394969599462905034968157161394830948807783632790287500509117669269307807421045309614388281237672757188998114244029605606060569618085095625463002780910795522482465303755760555759412419110113023414103808724517564213692260092278587114385684460427251257188900261630255630634451105142470352429960242477598172635033243801810921690475410330756725699465948427743104209347117363010730516243225836613880941205139050882425583422196633896332886496262327700213882231729868545735312027659574296437213643791337588973017923062073842616684385775234805525819026218389201834652369370095855444552315855635609737100151615798120879567166940736884964284494838009588786530845997225268761893050319961191100704148725611165440323183192906398464161678461744713724102040149512519085136352215553107371819891746905169736713738990612450585308523697833739250186650291923893725682240142497615712398010141518839916819114178325763127792344928815766544297346683269656363611721681785488120459289305551231335019748008830383392050792711620460422755412296540265257255947982154919888080777835785313458793783387128590475205636859229892823992486390751719382343508245064351980201359471620281641373805800078390969346788933041002513388574886315066594903327972142691452844959996715241466408542556071713867090875833052009636924647337002376887671860462137836154827521052917861507554287456665855804711987166898735308445385829701571986869560514786813719747042167882653931911317343341274659785133017414534439362989905468474981449110527833759202039674395517587332216462624807708229428835692725724715617327124914947298115071193584313538927677366474720633246485785099065479131599115775343351867595205954713007085862774806111999143906547168547675106559071982877822697168146614757437493769505821512553782351396153540516539610583050179568702130917666311656041256222217654259315320094822630127811356298698512892633933384718976178376776475544049726939118103067045881376127208523502966007849086536726332288861822859135278974573755253308078342455056521958518799512715243278250401934578831809084976281971691116536071336799189784707104101003208452203770658433102278985727440786641730772194336371046188183319059313026631940089240861943111523460574332384640935766934996527838704141828298947407850086560648756081262734046275247509123964944596082797099878876510594191921209142639794113251113353500786255056342958320834805121569041407530737104810021104548921848540663075303703266256280899879655589338468337976911831904262989616728863845662442147854846445836109983814415798941737243678003882208449748851590702171144315626553505899284259846959324287230586647818458959181185995679750216224469921162142130669062447375244442371641412077379803616886061229063173770303765436224322355467030450700558321816213471897813501339632748189236287083914427026721245079013695480327835955817711233398138947793081376483331584496777331116389068517868912173331879254056365056405654758072312545533699545239313195132774381323021885230606229015464881207688504412771081118210953544160373872156097940953997249282328369940966339234317254155974822165502933774406748427517260681264846863085918714443243893390076780324647465283004380956881618552482200267422521382316368158080508766720962169541942322878645109831320385753136647937611240550945650424016223221809649518497729318500242468116313228652429894304527869204467441379902469302288706675765064270774852300787773432938165373251014097816280266241630091687258228596324009078257359044202263085759192346713892066604107687270378181366478505333350370905271505140021784880728029059670892304966105038866986310074183754419367670384921234064955907197390560773014531085976765402671744758860007608066660919099046416663358696758941528956437766340429906324590934914761627203654762937303535307792573215372833958721636688248747638819901223509229321741141794115743315912115496425988986224544074355237159225590973841203534999982046329846948794251337697070902369970364747055410643605871164377229584525342944858230780189574239101850089113883799722723069221846024721984424885947917173848275666628085390975197708299111170396184483904498802291729686304499147795046181766210166861046871758960443485971876575024206427900219433011121235048436346442731080725164506717658046140645616094544099445873039225217319961682106030714058249357880398164826853041759936559648375712431710926899843012126967365908539997429942678883671249173167629076662439243481961886227237530168842478639820083924052076043267233881325152809864276591166588277403019314702990195998309574324853624754162639974706615980317372370709329418986799206988669309753519012412711075560293162373307484473003084145595579557205956423872361795147291137681911953425063760046977322219741792270577259426742481672083578616230110968474462317770657463401138601653982057408266817931496434931902286200103812412991344572660386389419999567216569079975122213443891134592230351132826972460636261864199468592970847652710013328949833524272852922418126860067057662187054265495727916764807731029405472867691945724718245703511973996460427747906838581957243149932384938782429475611906175608618658480416643126076104660224783207734299709609191126513525748148460111838795131646091887206773658729447568844198747033523206101653139650995909599789858204569784923337586254714971261491144513594974817400455917857677134091659846492063560393335504097250781313586641494048510207610481180502617705244560101721307200276324977821457464042552110708628433358380653509930322805092633092715061033291237417591974108321601865028344425489950846135343454458271134594844462281633177577079143352643995488852087118565590936511093087924714728159553217519559169991867301965311209176982777182202143988505140805852181552997097752788035648308899508325708585830137918328500529201344962308299312454569617274391402123516831010806564085589873132159726519078177501273038461535439093921031829886842468434191632772763034753626350730788061913506459130162061740302833159016697159002429623393686348059278926745234217089550324299331217335685844525832496480113240187202507354409544630846189730183370693217298942874984062955014247355267439103398026615832212462045330082856607317052109807953541666084051959308598692380358448448534244873668743145403075433582985660039184729984323920224525045047566590786271666970265547464192791272823702360676993865026502797674797133950144707558465918539125806924556922279384065726584960931390766565772333702889161030165789407998278701227864865825430210082739847499051276845125045229154345900002719532111465465306405666169078765277145454082829223278840331256911668150035855869379905587379516936517527131868873087828355417260772374817305645671058038969554196602132154475456589049502793398224766585853086046900887674103223477593688625958099429337621938406847319367512860687528208242687975688618361559446753262612571240143532869569103690474042675803192664734414614305291296264293959324234696854566127854737697191793230620993117955619702502682466040971736822893453257782645345329416752266505959095750549465308814449945169710832172898061915190963952300985673545067187992454177643966296601126772477455051560164905465228917133782723524976401100575080306184890291859161800990719218744150567971139040288901514599121182979691094452998129617435616318110943414011472276760415709491333673016035068177642026904354437401598189273358137824231421968466443528361760016892763866350000159967906468945232696183918817254818842466331568641595835424083625760807046674919138471975011780016141558485878237462015211613178902963546794149452162696302166303905216795814559735038657381648753857638952341187907572818967143248738107811881364758566496581596353891068933356713061760755561458813035825724595379877194824347643256953721124556937232295531758608649123577377182129756381255207852080400639069946183458496219996424491944871561491400802978438287074736180665217010786438792728806191559460274306308244027476283963540785110399036127873393842899986414719651483098024919098681592647224453984478971225433635570755725862672265665111642009368007928774991509289702614689156794655836111886246475686190732884302605780795886401918316153446571647006097151044943208385165990217545614570477252421786194303201656920579118489943680769148897951074635014180083105935802086131863290698212036774075691274377543482858954469357908207506351065888990059565855640402812245436539982178145254942970427778001887053875679084713867788908703907522118430774826798552960744404263432186418416115556354633457976069959845927229753410851143680695139021018595379591450242310333916719494809618318727499934818794797041784583866104196925972927011394586706668195740837007300344806872480644952449291115802424074920287768788815596647675745034089883404299542623430647331397453473497151344820273881297703039174936982706419645675863219540466080018659947173370308416464124503292203486136891979229676698386395348697349688589346991510532526168717676958237973722019832340640620481395189139492344279095457441052206583189634784155709127571338664600695120645664350816998132449604874131889187514916654398720538942561341465252778859316596431754730186584026411787726680026232523553213082858698282744834889809272788242196637634532521659473697577964076964050670046184226100452437514979122178908197229837639449587860720934459201822120236577602325644873019548614509824412126967306557127517015825114054264689120624850693401067521026088966098746887702345257256148509404183900843761625500644830952542290568811036555526629436750531641782840438174914891348564662398886112872394335846192951644480567822372987689021276441067550993201097020817200620264923179026475777200658256026936080148278041731739850686855097737437040857643585618538450885976192802949904571598109690830518506700658991494465122836638204091343568019122202086872021428612942860564917625811876025602683195394102649147435050354589380230456053277722616697522817487587024813409779112269445948881442326323319750220867387029360983047478291747338675868257839632725958334348864331913644474486015831911581249615343289800124236953973253142837973036057617931202291262048686506739185429703614900258767162205929528020091046047121643583776105579081086191837173453856139061582830530278608809682181593517097173561292914226161413317284287420696883841153215908124524664727211506588417891613937113865965086735968409612154096859533877920265179045951364140327632953868167116418694462707792943391884598228566541378399995118061571134225764996802387615440869157940138060103303272787115371831521427456563976476868250249468080322733489913963510486230786493778329083235597225459263301275477209568053296613070623290164994160405300387744770375220560572029958806816982809968643510410983295300842069476003199189238829808818278909941157278632711694691657700157810039399144453594804669582781576470729063720680762867951153897809465607286774140412816639780128189637654257488863292499962623123625467891095715191559759150192419370105396055284211538278837689401539790535782472164403579679976596320547431105485380963784969218865688222651614533171222079567347184335751074856895451126700578026299325884369025791612745218632084795351023638473120994623001000895632210848373430643889285202447696109940515816504822827870516081750876382205357278955524653608564938791308677086054719845314282730606496482599630026601168314140907416059874145728141141423749954448138501152975803883681336124553880588600226475746999824506580403804355520984314124030514091053102513433456013013207701776605932922251814205352209954893430425300534641696100943979195827039488675730387575664375524025864095189844500586949372122390117416330351993769427886057218262659146288246030342356379909768586748846603652371859229356834667095673758322048758998335273404099263574025675342564388394956758735254519062524193665379848908983155107229247194408914782406698906538386489379500366540570505997603790984995025773749053258702743446834807575387398010298196644697058416847323972878641808501253437169305966218587893780030144279221591837484777506831731906308114706939103805647107144623064501832111702477233032673183714974607948710086724436825688674536594681052081673150897495772759874918092553587354243163423778276399154112408022984166410097450482543698878212658238741864973470524618340634333586827276483833958699263381728465191397462101422612103014609469939729971244012944745225986716481556462950573948595341329271018336011851639340072675608063660648202289819670389500767259973982631692516453082795560251196484932084599501126943636638994662249527576380652034515046998095532782064779830372953207017223199270703105588864878192063427719861054298867664938207685964874715778709996898348543056609623707880068462987783390208970310838133767050916907387309034057730881839761897140789300130822728155919507487824540409633544272010204160546096246405725474442515516030025295997779889784619395226595115169346022266507599103212344279477139057101547749138793351064867159072536708177364886546608701473625884461376280626824185213237993798274326611406411357333306752201884145262605117049160371721449667341910890853863885462522519543975620339465215907442187535447577847261385454223781280424609500202089088852290572953399498868069156243001953879195631622352823926831804678721946730074571881075189733851462307661195418135396318985703620023268053051097801108635535849367553968184120659324075447084626759861531475711559983513726234884653257671129971855756992126980199662140818680335317320411504033960317214838407106738869348021710528855960042235565808181678608524939753362430733938639394114910774060856249009582424485183383033007164523955276228384022644838067376046392451910829058919566549591227336372585365832287241195564182857135984881303160808067568413180971275151162983923847678844969063460904213473989988908405459037163278196313252734465827457559776008822945013253521105244295433631318643660765816367413373009501320848791853668677233100319728858868941330996498785667382266825729585787413517738407239454869091677280843568387443243214449535593573687579301388107258644315112780515225004670135727197165347003754086734505814646268923844093243254622638344863360303504535099357536391705153559702663572230289574924163605202353125465603622646440249461467683342056992109957472758486727771463412455636524237873703640087755756829137081545107939618395453989914954805174652051999713676807618140015048523288561310982366208462456649300275760700279966658161866834245454771113542748858379938199379100810921457623455862670697782123656482269195766546688661025636011787604169766860651350647596043894438967251674008878781950821153726776914120551070613186246598461608720563338221018130351888073074891935281518863011571147383665696645004993246966030514002709932768659972463420672410789328166719434499614220761692922536039363878515299140202875917002229891082490327714903573533219591547372785652518142789245352185773734582345440460742892645832383041765589754976869874706562637346466496936936077594061671043680694519144239533569378029018950050527176998967214555081231560501477595964305103938205727450550697549341526865704843063064531527344005938945608098407454834058158016726112404929643286170316407100408595473754593406896760930896585000013973268785347196272780338024602854129074077346307670160547368724757743137032977762208944968147131935098674462648132130326740582034695761099225188319856251732902320599275371607902626214398967297482592779091685386142281497613173388507226244732818711221977023662335932402044137743370065235538970955845919535790257094776275222356832320007579371304069275368039857358243319771348282917789301050622229080614368067133112142562402348733137555916742829528692599308032864609376892685060199373710108429171238269462098017284578745970312923496385728129802995042944166411948610523187870075170329761620987831749004757575409892144255085353635148050340192348008874764337482555831834473073126296819834165917064651368573345260322944538099960489787766137978422176595614957809216448572575085622950394157067982938048621571474972196154816999999616781219801339469970361719401174286549382880355106092399270020880281457225361036522316230013856702892550731367268538187009271277735352266505780844504640101007857944896110040271257359268141388092416806262966298681457993155143645075162799055814666836226548773971215691423030733143929157509201372230157735102061194912954101941039656848887457337411139075885871579101051544047157830093042192177151610931767867580250131750286468964675231980219527698337488941146039032657026029718866088782054657550896542924110476367948195425561840501982258693700609957128049148943904433573056511433307448615414840653060525292927829725662868090197060359236980326278363053616445184852721716601398611042860283467357208136746504441407435302794981848115456548101249657510743388544154606212387506923571729890894833862142717383944601151139133387957063634314880597498627494820796735741105588632358580158697355246063294179005509056394567096395944725604411830652842299729848808062133883231703011872636737699850386889450967602307908571116141111460573917982780904767765960182438589918893143114590695416569199039907546922423767496585176503577191273613731114329021862769671070941243036983773347278228186098924167712263115725696006745547532751715293938126347197050746735480005398219401412224247574524956645478194753737085338670187557625997192166475175150483227470260834638471272445923614511212752990604926672835358624230374620593281650386884572354446855376659619641269962537835741276699094486354888467858397238487286211832512403154021823823389982822755500246708799009626246373208149267377318108957842070724431247864072287102456974232081425954742895754813358488723136065512664289757994528974901596798769922220683333708748085437012204650258733171570495806914767631683598321999908258276803011076749235689217185455130606528030575720292083628828615911578347284271408219767253961509325059935879811467497791709982848255324558135952352708130920890876313419896406311253105635229730481054580506756143293960147645436679684292928779322387186918643213888468146110840831804181087976254252228618620287430851203607688402017874677139887019912856023628594525218810652249504066336678151662058811550057725354552564301668181509901234679153526844375975029456370146613801113432653286966878435116204152154671109040868416145184893920267069839292717366213399208222632475823931446348591791468879719330613159413962098636691389945711791017332909155891991237405415564397904050183739230557866004561597744954867446079257894374250503499913489718729592815303733502979203635262147703901639734208819911048419629951553613060504788900312182181314397641917003292789741757379100194689517851046111075045649621482062389124559554148852783060230736888457246932099073349698381542824763404882310819623529852185693753145000423891035766199124672994737655814987650519628599522745771039862161588775936184521946024221658323154817369214998846771604000542879452270467988624870173326861612698232239149643340897108122662851393817977516091489485502638902186806749773632560629373557216365666544003922128777503853972406875025981606234591807115909734587927125687428568111067917460529615463924038542101882668638976332456109532757426180407865054360366153825177383195861311626420846398438530622639537160237511247935795117100258877988669828407962386847738934897444077143946842142283069534098873992378064887592378552853403940285628323819505553433036536811740594116588070053412217443928111253258292567599291984144458195790008940568509086208602335941585374778702747477014950510935139096318059557300082563559510884763019669971729490671006764844608135439542480619557177035914821812743149770097268354601856994099761335145239980316265903126009657868969078471786415163034336862184674133965655037034281784040214433307563267106977708220701657131222031549375269818320519694739827654014590917860295383744098972872784284446392934198961578319722441548844338055696884267571477910974316829284715671215825792031341177761305056901583565401829460090077770529719807211449703387689798952015022522906142871955999336967670522944321006673642036747346666842300319377914417277489732951610101198419969464557039856559234080065370682737089482239312161529292079386124768966107599681482804449280725775704885161510237799844930207076406270503974233650975357710951004477849029547177116746690649774515281685474403982571422321994595924153567285075228446982387203888303584292591837491686250420214624875225919176968580902698136655222278920140743241548889928721155450208522919623394497663495793782338028733861148534555536393341482255846826918268283107126379862941562337925973071512133492528082029125015055330609564153547833738209022897758382632007469802478838347131217166158525322276404782907369054552278884828262080836390771972146794944654636811113646741571681603882272661506342746751477778558959242282891578333336269258117360554201461055218553811813081754263144188758568678801304962075202639776644306056124001821458257867309820014529963825562941944358451698994333493351140033660039758473442816996751939757321771574345458054614503864266172508599404860538158474621500557584188456349542889259730649878751564718574273848360422947540324073265874397651629424087467765776030149767940031314664224917424075135872555790859144186506392078752524579134568408930347418233901367409443231989404667680913286696691463138404826018305167093351537229421541187327305287600896096699976053914680118421423314896454884739786122378622127721047850032272500024808231769397416748156426651408139780063884103188553251155266033351815070791914691132873011605263386548042705137286839596283505199250366785717498098075437398133889017924007234593649265014522989049024426614237106452156045736813188169934764608806640228172331857966045713673416348829591258605825340141923574085830357376928646179622182003864420628624154243795085595275780793583641856676086898390271999852102221603586817021116188520831300873147874010735316509347550566723868514719890918488340984839849718602696116857174621186728920681187793251841927442477561810717869034189594285199810945695596627383824677554890555345277479340732718167488516172563632323092997667234748741682014085610853372257227081972507050187751637534602833592986189752544626823852560436786902228532894679344516490590664819657378611694300132643355791942716021509044801916386797168472214455015167096887481392944196449820748666207478379396533580534265606118548238490258144208049618843673681279077470521857600234502391767676852178333384658459032804714082997080491491766812580137668695376993284318500473978198047479516920719379989193052369632029627827575209438773496225836613838685450885566714765838487123643294054955216617807069139844560981844070285181991153835887190491293189936111659040459863019073185188265400804458572589163867552473920106536582800117284431544092574943827724491749522842827631484513854709640482846600627569740856793734176645888960330730100222312575315398966522907637648879573872725130771212299368679276850393295987844867638555409239971206498471787837360077915476679397105237400781619526784756755573707985164541647211757441809096910189549408703820185325327486361412214974371647817273602277664258049894797052346788939657275444960508832677003770224695713999795424674098779194012487575506598186571935807707665419411216311083950380726134766310384730549098549536021641431102123433286351768678422664356837395311560155280705461102148444382678451580406878549460108355200251424179656705513426051072992082412842707609205630930476689431197056878843423725847222996780473681518801236654063089384388785113064718154127395105965621516885045423776641056240011548029491913512141345946511023708810236257783947944399707684241337408327868427140425275386035381591918755924955151227975557540205298491330045367714498478213465862699680479667993103758839425554340914641498764522614403574186306827464321476924094385612116669569346119285741782712912747276675715026023913319660651177268998737860866935808077214430769260962961627444397009714842522620480560327094127089275039977539898050834908808828655417361989790583357113117056330598668989824572653891131022336535102895006932814998568019531354113544066915279518799328515302455926132370639778340757934214346954568075908373751982998773554410216459289523079542516218050524570854373584451869916330108112388113869601258945478591197732821723414219577790844343379419004407382365988472373295258003467786413223698874982964130157978688041733937469184550358546091909170691970438726206343991444168110209090391447510327064085896428393381586034215224443094813430697172807257044410753124902160138933546941273207125335562532070336667390343841430469058495205200927654588717041209659851584550995412837140251379160105064093905363420261904173232252418222683204998718622112154694773149093458012669623341355688587274592421065751335771131866990304432706448341770831015243718588090795508780284132083067914462695503401722344181180639434220181387070692727269999101078129881671308300890346324398284024047614840563167306934900572351384950334761948264942784273642088685661006202765068781059138310922080178898521149140421824556664623407929189884208961189471865394215205405186859934464926267098861548475754251944143493465810182827800340925201624775914876175109856662172419425165994247378134782953101795335000850492951635944040791781621929456730447750218618329289412770381798900346573333382620596360433821180103859093514465574645277910720360676828046190343321301649494651828750261799390893320668844949356964379428421958014754722536207887057818247888379667373997180936562611445401400008145446794278905464813874624301708900691809971570052583456773370307706255498615771977790425144147378510479600452912618644056165392021531520399912473882245171793177796727129023422604166764126042218479319055942362975217842308213654825838646934664799213876654380291695515206906946094038434911485535392881309369158477816642009880215771242982560976150125560099410384047160129051757460766656865446097727807417867815041310385319205216328266230312351735070944059740225371003263778833506375635907932609402895826605986310253947101258496741889526449448062647024469801844371649934483526751126352619759433520007068800618795329912249165514560416766240065286961988222817040980189189624189191304780834243953491125688670222791900096219783950229728080365988159928720585789338118857524369063903478132326244199634646533361110623113755954308511086395185141520921022491600506588044945001836447933031123983258874620081475245474651812032776775596029588991265829309202636937933916737299385423852868154625646896715897147356794869919873887304614924681279103821329318094186683403815736453493793303033257441246494151330764227711166049786001671046198617720923296552613361425578114000861018940967268979243317855092440975690353893159895702142828082786500347602421784432992716686351778097896667409522345895080240561544205139048395905080984874482939038930285125430566788391495514364830489984016821042794877085921027774881020993637130432307560373873907613906332661866961040132316844036784576222424787569187343648102600691540479096930715815308758764675918338572105919803521564486359147161130467041316137506838421731420301258429663851347015713117862827276830869093297830571858373624482177570523634930035200956865888944747615414265901479156123764176647710793263659982459061039712846619495220941429699751003760704963496283660071990687311083804514290544155673343102854891360339046360409945806317108614102530531884649842749012853414785379006922576041694355423486028412114807987191834635412543635974757351078720212412974493897326372446200779089413691975761829189622873639976865610079304000737791710901454042308732322518186520623151003281555373489707813610258332060613680333471033230913937981663757521697979549666070512518041152733057188158608659350580394061672602700712871113179847001622616830969767495267089315517434430902034108260060629589708942454513764839236764387059345328157704505365546078542740048352794219634572918435135015552012793551039180796846885900297245511552245956767000285090982282326395534379638734387215091499233833488145066007652123712789891408400566022576152102134363269125531167570355503071486246230588518836250703183630054624439605002148132919798506290925281519616644811758934217480235790399131866378244347096535275398400328342121911266133139905772489279854848658842491403323956399245680773160236562474349906732604344759396267320488789493458390306076775621599755344807845159071494362004373863169396943981238443815781082220737127651308500513696895035037964041632533696144285124231581505289903792753881342232435217356629122402422592469152711008032687162024364412128156863791163409389783958207520500249283120033430524620058403986304703055906980203275235160206570394634232406853828349660849843943897455145252343200100220381604941072379030130218736340147715730704578146071699109157579726995084870399157596725724854027934654101508571736929293742983434401432804310121143377282404673907429003325419841154205199013683171583608546883784199091421292166885474170903487682632623736640437064821555236454373575782025402559218719153597078342842809859783242959403644947805544112829883885808817409946306832770738375089135216235302678794465723752834079049321177508796452013742021491812892018804477838620596439914428888325146213394734928486151361112261626488507625626880926025775786081182277781487143602394243051473553322262593899405465524996530797173691382088498275478938513054716005235964061365914501181286874100200185890802798788034105631172145352465307807518789739055232640707989820776169007621304653748045149216472467464500722716338535864924910332766561454622254339144620154353205930233726593525431665999283096346381674699778783486523706661352182531881163435250475512347614517007767340413852280501596071525201953735228448623239092400231288297290262596877869163743220055734242973188713728490558057560832525965084975686395568581046324232617249737472845385580947588909998466943618807672775864840291080260440411969574686552677478113180101946710250920905686448644198014700218782558644918082611686858028631584104137769656433469672563686595218616137260777611546515356358749443488071840959788937551725704822601756710610786602129530279762514297051026732334885988617743768173190642780706425847991454488857932686559687048379955529673078837826006281853956000696551763399448263884049536374004819636794461738268974003118171354712544824404315494611632020952995032410742951629569551199908745693737410211610729355678077080019808989794386163440368570294712052554369586143197561389019086149693818823752320795530180284927824464125674034505977337308498670563981664135129919796992659479260529661437990725486713554763410730713579251002596385876418791335644953075455655535335953282087049672921622917610855379570002767988919286801735081523343470344415226972785819299388917497790085051648306824386564794275118796098324313328249766862901334324853319306605894845521244974303123206512252455430733396502523415267338006035590694283401698930873863073615666252481144732950270907554764654623054065483605242053085994694972258335920950051332151509844238284089069714413201750442764273250954554986212152349779544068204578534391603921061545971574068849348558973150269608311773252552956379939260622731433020043980218477620241514934515332574469856024665882338507802328300111763555009547662030905776556351881854960910648087152312453635933565709135559279033364530124838371446616878132961931817065187486430965274604740320509244802635330577418762804029373183176883980643907164855511771890605992923682698315286806443966463615785271881569531851444075868812255479728307956156092633586935971864943538555362777717007410297845314402353130745250842953132436886536458260146825249594136837470366631963179882286240348788430296927901337402318791843639720392190584214775725983707014566362753820060672170217358098946205690440058147273525347992976432378495892556404956427527587276235762452689236344846323865428634682175486966642618615220301236918071041189189138511641693926269315664742648648840373757962132700237743271709428960719745556422840143014377731610097038573298304740470691342273082552468600966437816701987476307515358251773541079513997674753130177776169157896310100869913435135365864700541029399498869407581111442084547190827153141819204537303778138497357184999589167234795044190988498905950954137466187332899269687497411659436626270512464982123890359303987820142416217836977645447990912562909094862515842887880389215038891620913072656535778140721780984750637368656992813387027218924729975864330238014969565666898799524539115292275203938532764270702846555420032844863269548378936330308930406756914726522001142754216532428294989140460025606031484473254377321793995693912546727434895519814683167015261754553067221780681036604794658791956788565854342792406678307657083490193335811913966681245571691639237743231070058879462763450702222979430335796008376120159695165207538834187432658136311400719230264681100310992735583702396796206073514151192071685548205954597036457844836765864584473930820862155384345224817287951067951633845870405046625770655097712171540046279589839768907435798595971039033343418830399082919677695091526771316353752255736521012526978763802092114434020183257465471559062403398478344670549816548565789917370659007340641083855107904676219321783608254118997214812317094721708469047698547107699462683999149355485454464550578528473699466450983500718446299123279973832778817813139778663829494412362776472000286160854301513532877364253435411513078817129209606220145087060420466874551068305937605620592570567687417324777500438229205391215085444601440385365148984954363176978194062198765021267915694123315979012828012571119803138792568699849055894616090711583722393212461435949727281961754669565532957089122605586947251533307299251428694845919493871623634964761953711288144163489872813062044777406185294790923670131400440245094335709459767231992961692530321269500765698709225764089974712425844747257406704253645299603682681398603820702964762909777642030305417553972080556193216180743733066178701722561733971268889195029345418205908733225748352254153072695687575166720523932587534380251634832310096840718023295834140818529979812294635377248849051969828110982417207546708284955313575165274482773824822976548028833628648142448425457758873988367353638052192976165136367830621483695341157495365388106620907190762449918648515761485948032521238658408259071937174119276573658947426199538842059164882931628072830528688562194470005927043503719362690643031280996507595557511913232341218253266680429603509994275840378996535413280886083743841270876599462737007067088695748846940488474247122868286629384122738666465919001010385583539828729511585559909400521146120597239473068162646412811895476183492369546847447735090991790942721846054714708157036694056122856052195945991818200020957217183767822941561234590161006323357739400087311237899157113481382621243141769330562261847213082096552201261364251147147177481702558466129115640887044148682847727439019237941956396709274746993947568653107843170827631611972272796029551682093552284444063941645145866470283186115309915193058884024303069401647537214023836136424922615155044771072372630255423679464534904029955610210753903584410711474168336159669229116423391924726248475350418922234844706430650811073391395384707524119097350846168702806782831809398195971801027732744212919464002722740829513278948152993370678507134925049927433238586936338732951134639283157453687840772656846988418855326556185836909852866711567504686786873083977329042243435954343683867063250951744100968437661766471077171773935270499250024691071960887415288187326876481104877756450806661508201782927098211633468367409816906029882307520630867074293276969655006094814126686026768521370383753408774170507186302117814589797896726380083341575610134557429710220784118292696333576233718275174843983976512385273465716888966988829081764079491297780146938340065516741285738683434817732293053838027067627157903011007867475461883818431696093503999837129724169983762110094705907713575736465219779930187042445758744413842973509315278785064980884144792078973423546604414231960939408471802857546173215396300615068455206692171895801849822160143598024132285255297056927709214493888907417723828344517627167167048532734929292212252995676718524949039557063551603238726239412302884171271695596078245199094697036687363930174835476472339359196980606763174909435017670950064949510071554864592614278633671245522249085278932380451789884352493575596087996154612584771766873320084233839622196163460089804657086566824275232321589757054337787773979155979848789778048259327084355496723002170989277266691477899766914425656308867612309069003727848911294510161609910107416209287074193600926363506114153405858236385085816428101183544239154260246201538823015774267249093629724625819472809015846099969179050233312325169717817107473622023491272299528733847780421833035899501249710071548833816884053853245014096435298690844490948493001832095459981744218762836782868829358141097542929352638918238686976549351593785822736836493913796722555155561721098645791899698173138195540008953918493330667621948853209470417929475457583502531956790797620353429932832727035212558483269376757829612481395360898402431571155734509807614120893729294815472535506593931971596498154809602705472318951389711294417595667020473651861704717069223139488708759954133726167133404329142977821088323089771855189950206551599513362269363113906255167188273392604926052815042917676885530313742553461852789862517589148577515094978004557450554645408101861262608192445812525916078984250092627671893090085354464053429098502972916454339934574196215207670079096411067508871701981772163879562742935256674278778053345839637053216088752173083689563432291360756623389821467389532666451265337490793806030366103114108139422901611952126393292651057488510964963522018179487722084086590942115013829641656890064715625909073904005936333608471185367718911429127330909875255872245768787203629935648506629830331826767557375061878985373709561271490456944378989085529999707010144071996760201478788582459497209289819181141664619748165890151896071926044201081439736205416206743513964138154371074044278687726756002010066295198345695983025280392385459814017679686974562605673735503180791746766146737572982489615250963165278058742427457024152278700093645359603522037648563394784798607614252545953622954762658592215865877806064944068218791745819198431172166227091438147976662727731853633130276484842298556981954386171992058539093984142915111526820768281149703282273781633874300106421604548673559518239464160221940488629516615125268672585324156645430736261140444740652560828676534746551769252710429710943659150250484368843896535488758718798744967884291539910847280731996904041948324750023466292991318066288125088100714442656968589027558140397062173479893358570016437509214085243738171798053979979613296509833807825363763301412792688501087132615745019129896875304582086346897331135688355605875985524924946673609411362272337973842814380307847312088799245259901194577865125836189910230135895753198277774532176689352035052881984407888141508966219174031385736491265038868906136665750234447839658718257083927993203774691575976687913003074398833733470273559259060342797253669210199327640517998417058638774639453525423484244091926554651011697536563928101686813752617236776335798635838197466081991785043022495891201461384039165309691963422909522334329691918518323878260920190987426689407162043232121563592159357088629521210440917269475676502447634659788962633433302845957550806536454801539750778477678011441857779518013367400900079921780719140029439957522706754797285140492064913222059610381251735421813465108865558263654479627626975874251280848274726945318661744705955824744255681195429813745451121210011747780147592314507066992183307452393076248522202502931618414419676161371370804036191397236916794841197930333132017418444030563327922277232864700181300347743991587577085429276447564425232540241945682784175068151831805295836014461622926312433553272810514818072938009588006367938418975624460905140565308920095678587766971822104759557181723585982485428803595613105968591793707878781568131344760016014815494218407115789208033657318991374853486621076705029194752327793159913241961542994262782275738239584462445779828564291558976833674801944737206657948655551196497773566105063261318359963034885754411160418434067157200067272057920189080183074629951826555569057132567624730484699793130852719306268288147784134097417136961278021176905560732140737531719110204673477967185761538718105596331350621481000760825696074141134775866263495344743598974684099845166912432230453581395548249868979456058920289648679936075026122990999870523512607001019025760854870263940180909139406298926657669711945100556417820209438958097242598123358979599109548771019220165514893963679211429045545610073836958827697447349011315745711156372541446637272707868939316796594575719761339925745221556934898387597083975746743408206648361511708016668932183093132216472783428869933266531818712763542747879560860719841811809073911294241869766106021942513423452075867241101760299937720975775611300880745717386445897268557437523673656222858791413146367576016548554991344447670627679334988204367255043944026062234302164108683985280290239653700037146205719150827086853697176418413371856764474106761839096861638436032381297078999293319304126322366192036880166706855739839277466424875806041274697057664697143556966050562004862613378864969700005529992720572470445511048417030418780575285803957450728066594741718719277930255469779983006614121353216406437031362502030958708833473172591947001024961456904409415579736407124159692983035052589189501045746650394791423215033157492688930586697077459111386801897907289148132939971428595010913792842520388599785406669642894418126750997924281535063406299833566230918738040040320097173513430759170273296001199256415300136724024923420188580323675863139477624487608060185808342201633777512686913182942096718523340736503490066907290441953510650619070639855483063070369240953377860655280353169229452072537729596367378897812628070517820287349093349277230021286904723753731090436402109906949149883735566580931171851209508196426747319717647644941702876580312556791228997503518136530993802497998305487131855531088423990657038150267776285461444455451959561327713862740102750323200016467953448206731569404426197481565934291580920317613344577572484234816240704929867445009032178885238992108999358826642179583760155640214002515721924013504777797268124369227601643780493763679293395578013380200448667283395690492501389489755861129399621916632384783450966763073862221621664559954172470107129934411657610468496873909783853035322349669402003481310801846463852887214526170522010441205417077506517702720088557212373354235402308347732859280387128279321143980837523266471755915122253477130068393583276406938312474747062611135043725349402244869366522370756091445430754472821233138666652715934832501343800838362241703435064393246085723231497575234918013737092574345110951401850560137739961464079004192141749052389516956390762106591895955229215642133071710234376697119582692678538464322066390733799269292538952458737680478947049107777425747393380696583112456529229163216115357395203326754898667690388502147288586823535884829793937358330270377362514708335141698517652148432785742691877765851450329436680764324713134299639632717052742258454660551086009636638057498858548601877180252941563475894935886121722250422618537112659769400019055069115777437434598097564553332658414613767059439018676205939510559472731093898296288067514180945487534900884473377049525693955373178822845668668088105980291077957258236219776710875101905740180888411764522473064311381147459204738944265177521293230510987384096902924435686555819716995256110606933692572712729700565510339792701192797589603279079830303545282910331224947273067228852117319956405636528242310588228895053203812058746992323461027978233550239076724269517137763168177040189791365941881979536823689097312090146890640420078990927629661820922257268272512958645506027841122820183209292252181664825603800453483332376011432218753630330060494817072515994151223102890481560509957386800064542336145723129438639233373045424358103807256234770544852923094663181639970595394337023549296706005802248902429176178280107888516318572995204670031953334894032005105629914681418152986655725419411840240742064446450271931105804728579137556899980397123067879119747599508668294448757620750156812212783026398207771783774250584442321661614860268070877178801450988671972735551615741385757388895601663022055245440327397805118123680485504092705697922849569470526019988234891097895301677605637110189471625759314984921330003535350968138053942532866655435083844166213737455600177765965717620923251551001286594260124843796329412534124115085510149298144530789917802196907396738368235760594183524449301266274053101797293716516804954983066331314931683765288531653938734504396095510078803388835844253371407015626080011660197964412811284417314832959918040335433775918338507917138962780975212490742596820373971855121330882886001985780982690127936103943973025671087146040829922330570510046865113780176404643916244138450663604665517644469246223582741307779707657210830854474796135575578918584828456794303411753753965423672846615366686306460325998048002040641219170365458468196455555261966786296152192587740403295470072750043185508640006186000569031767772973030204177786751607611795062705293422396835211559124375245698646733889567759107052099424699522626106217659194510906276544845071576067672549980993457498924007786909984986218177179340109573405441132208430166727024006487790349773655192079866136533252995292263833260856455074165850303921073370626171392143548446144081683484719356640675665238436680350437834104008072550024149424783580281212802726686658317830631868710801586335427227019309417292625985727134905224396229342670528926412551355493062893346282562708434064351220478904803598726330322115696136729393351161036701225805064686940181973113273685991365098847182892184649040058927202448759353767994636616266444894790774145566859807197557873549534753730177267472711849099539572421944623127423530733897555265069507606084030448912171003430182703020112750303556012449477954909346158626659224676558056142731794513081261530860425576499757771043125183274954595306484741411141495021545765597571460971041165620129765075626535547026662566271127975991801141748814594034845278766335128790459245590426771588383746139182572739895800554230550769548366181638259385762404699453099613118988070097481636251534867301343765788763874235962751286310172692283999186672019980886663487521757533465908912598300625557912680745106172484899421011321352309078653985374331938016292255284451955420274685467377524959032800158557642044318248055733475269249305091422866268534116976232520578231674468676305250172782723745449100221991520279859376643592685964881849387593410485160290215418106194799506731372839249980067036641855445226294048336505186791481070648976656903190470780443883479242803420618370882822213044153290390816074767351402627816815737726785527212382554824250737548860811329794847784122569896149433196815738126127588873451758854384879919497742061420808037548699308467097773641132708623307844107318268431633838980186626605745597455094176388847877199375336685449824336490887163033374204516574873351633301301724966908873345868001253434883251319049362968310699345539251820458556438526302173801759715031525393169240162898621279084486013663268400430423339577358848815539384289874471737823463871460980191050754371821386374251684727542224137126580794946359835051644991672228814395806490107699097323868883549341101693854930038841635014826435489030894675709872227560884939083822326559344203955797013208097471314776867498059360820666712311064223193417030905274707565987061877754512232352141591622976668114645119627275057153142532728666031367223980334156790367461444891927714799166992292603109813292302062537128105105296509768113567370352934980443160703639656197612685923963657347582303275690613983630354812611231643519909012372964605258662591939042823742144642752935810797587318649949470158605290340372680385443444073731099105459288058242889280089699247397912674904682946129375149296780270752485746192555608481494827835416009508397902310883796385142083700308546499560097285337356659958674662270342416151097099703772311551094322149631293805083122884064320788786592700204997791656624456303959249224089033262247613067820730492818162807473274457274575062462289933633282503502334960410070909399048026940185712593813971743007003268850322578635120321959390031729444127465446928335820355297603723476725461358901717036299235758643142345477007499372055520851219821391182551557834353397488661550674135608753199243031762843921969452461331739220111318464429131924297688256269535312415805294246694802528353311189444083664868284291671212961523602222683089771107014993667973298737156949834040315594116984345701001979720436739716657400825812567743652638888006909960238525844017202806307896276888050376765988266579851594485857390635702802000254577594335545419776090062651614735310545992218761145119573411237578942761530101775572794598189422036421404430446542199021816212047276862091933345374237393283953484267643358704710669671038418302709370744596500012457166717725693706525728206780090055873101684689430931693972975873586458971794722187261405578825544464675827321081906804061258343932982206314931933956297390886666119746330004088370037106520582446553985878266010541483955781620593275029005410877732287403859049092660367535072124898841290596086107838461568336619147862992369054393872212062786340382134176725694040303501696859932919575815780529330890298584470223641699157370699814085074770125168773961805474808451637355963327837619489164970126725272537559940643466525996272271580673514209159437848239122456010583223845142056053675071808273966868059131601283812642829462757286208870965951949664002843071073672683212089136941566058301745818928598728415630853618362187376692251093354376213749673486130180334706087598590067077153178328747129350197754445252124942201133919609162320561403616040925441167968261360997264889557996163899422365363173860381747541473166589127585328983200091753091821063533424376983763026938076033323882239160827316555531461287787163699510331744978179465117811319347780448409753739635409546073946728485589066505810132393936529413749831312058079260019806368880377194207970326239071148952084847534642988015752242628896510678291740262899891633608857977972390930249970979263363180584229217237842017668466319651875723206293269714052772385381948049327096983913583646070231365395240165608518864155339092485308291827870051100861272585541616114291487012572887161002579804636828264187451887455978377760255835173281627972130164187287646857008060283901745687126973378965253172080496453092135333218450208161116419019876468368158039829050303018383966606352772738604646627847760794976006003868245025977179532893306250603046197203516783376368676547371711333487965382247802443939343814713554728803939570079217632902865356187701730252845027781773648413474646252029342681259001327271302226327277686239932486221746490842688769311392180833663816704126664302552577592921344749898319645464515965032105825788275878083171477401357162354768696833581604037868791246051004850468441483401560678210194931621373453549271537547437840875650982798394464572269453919046270617918041225480311175478267496353639682074103044657221763136597969560550945937507545926072428551521494468158111077976132571075136076267090454980920083256784778686568685112315179298422646491658851450404326747968545517585353597085101476140845712863584139999913929772377983647872274661528200036504462552455944766506184849945956886778693021387323202695064394002661044950101191581510503967040406010504601172080881294026515726906708944808070497118443388299200096505933225423302416968063026486965984789097034482872363426742791196338864560040939489316879476789354723681793988157505348195655810429120569463580440968916065072524744770109184845548280461941641406890361486226954047248747231152453406432341303379946423423466318804956588163803331000002919914005889105311446172453252357543151203304743528680313806543864844910825607425753748872431947869641632122566946953174697139094037618507958340068133805655778260357086859288641314550784242775424864606262526310083479112963177860795294201153485883627514326454740852271543131782521017544150360900757739596648864849365157086715642877134425131520715311173025303146873992798915351633615034760147626802356148885547610389647057700002921938305018926781926713894303646216386255295772499577995982644694603168481358222979313272524192476850191572484100654766597846390892306234969804508337490509989505491115147065082182871520188264301293079927020620455752633387715607891944893258213526742315161491843014900376477474414447502887489794191676230627978345316186029059638553368696429164992354404483779134529670726206553326692925984059438186178927439100459093508174917550875726498217186453000242774460743766590634388689274607355507995216797614445831005741169552062492482625165353363817982631676479516551956124151439222443532262653301703583881470377157645600274434971159395843386724565108053331939378010425657879444338390371881609904225754060374804481646238763208846181592922780931074076449871085593801495936101640453661191611644926807809490798451175153655475874773132697347794425562721492895144033349432517916360118056529459107962345870626726698411153273048370065086453031755970886636010561712570400015994570358287217216816208431004266100754405632294460047627043974565425641103957917545569126350595013703671406806427974187303122266675091097105041380986592647189494820561196960091037693475055355774460943725393779548173265435885716310579487209322333977648134183665364692012840877316202113405134626489329978626639377592183286281125084365183612316788525055332652146434694717529167250994546668072064196939537004436071313180106167102493609159785960590689554309576392982713232682266645994113325178451470474251119826136153883667466097053321771669968452151372606434434283022328995358801587054601092108746748100646767417797052100018235424454653657696990178660929413025453762126756562287897511735198485079230084729323532997200515743892132290284611603032269830633170749699975973336401981555728893816335330497889841520071980263226491737832390981310518243474534488426388698881819020369009373762528324424965256426793759513285195048230283690951259316251144783994195725643059487629113238590890737580039142641214110433037020663030286929262785898351519426513651433486266403005785869801834468286218818147435659674071848285348558829569274457015878562213875384609418785930761283265559027234635370794931090046839865573564480185260115890542647867572617955440778761088221900320589955937081294719065481166061851102649266135376298883489267430535839802740819355006739304016821846453064801721039481104696076857250184455960107538805818413737830623189568083321875146100032948916948473368029703023272008373140973940812602765202128365155049100302936586883080543544813214215787123828749661060820852698477250201959706632475777191103049533569805818258117536775977469237377802926711039732970838922341920159436458387348277015382988500572560654033289651020134224638845051816391028276332679075057293487725060589960254649325213195743133269454434681993647940757421558710508528578475126063914018267654092700443851606928842767253308068977690005369789184424880101987831743907273849339806104328150505962174806221438391655452925891370666533277441728324110323675510218989444576625113593210546231985002087276428169889797036020948161682712983928631929090723621201713574050560281276764065023293797368358591273746790954142373800365066891322763551647480102691807203444096121386301974578857756072724365381997108298621160984676500658011805249390333467112409930563386006736295940938634306148632236055812963234899072447095004964518586272885090063023698454052063167273315195776227320332769818913189664429115984440883928842641574711206264157843568459903570875755903669597221225707836754023554908598054534602517601083936325579863885960893653663045475239931967643877007525035765321133584230657362069346701761253928434030454040108367154050273870176173409423617743599166105514658118218976027968854782404290445012157378214949269066879606749543715824886836215515293115927913316266169616155774529622407444639250301878012919038823793457481242572347720026104928674579909214633641597913020455641384355212309659296826576801414812805013209741828991383864083277606681645994395214600560940453118202256032803182702274687646657459248724825738394793941433943267641220723668609208602497107800040492697992432746069474874805292048256957206741069553909175176807899231381727180342276966054329290952750901149279804715886350894053540819083271192995316873947331098206696918105835227382538442090738799131268425663894533066665907679942030051367020212089579685692848486832939446176803362203940833851902636608956348483850691748103573055100616515537548227891210233574950140578787958585099160004246928406364761107243440371885771379231375461648740383371559980927812073837117232951507000984294894804304051257202150782629479977785950168444841261681793766080208545152220343546189540997531159663197583448063564062381355229326191912822074852899094919469540610615276092732342966842755688577468902018928567533276176178883282818461106865529950155990914553692850883303819008325294152931869907015493615572511957254495249005078813702620724219175407920615756986351633723470188010219798522703848501687859645028697450668589709682214998410529357105821824573692544056841510866329963027863603851911295808231565305197701700039170310184343725399106034210775609893060975906025206498397378849154969967183098706855341897422241708264110057669871678155197771377971056808894564829122689286417889646527486307975931455172336710661647028150383611344614553743244276209606657357760164034356644780536660185603574432998580314023264271167323059309301948093031653489214432546917918401184847150461834156770501656381514751350727878569511535730124108803543535739417923668592308933990220453873344855637019078729883296780931608347289737217511178230441336694396878548632110817919247858843800779015642463131810409561000320569186706868715364066133900082032116384790727871331246425510714216422547166736500106307537409429282853225702265408449024096856655303222756744228483615266019812347700260777790017796522253632075769028112879385492780609000342795008875944765217167145350073577712644297771103958547165342878492867126564369243029348973329763032697186542176434617847288475208762191386386030742708736440490371994845486789796468862498455259268034150106872305871682836335514451874479905277244265859550660809152803912254351435827375656578134199897959293114009295673839299859090599751514615246149512288955540605970801994706962070135470646839434237960168769092653078761631988949925315179280389192714069119892546699434228659857033850012352278947267566967880581153358980740829969264814813576704139809400039386593215453027806740946210372638652807003158485992589139832161620424735469624835125959878247611082331033452542410361083076988043673593311904320873014775273498260259959095546574505943760078518904965299845421930037311309580933103651617593887192847898746618457613564064291559839457384937478478107959112725426577228936602018226011444335438605590597117579895185135815925363635101684023489082036932113247110855900733872799824493464537380797458542425784219216302003838668957275305171950521157662274776034147264538222831210622022709750489611126055305704023764587308377041952520758954330060726254525818938775337300919471629155428929186813141811922146125740026524608936046776352073769260372064694265653547307233006757666189301739234727165820200139155956053006779336442415676324566768050145805246652596219265499627306636589677330818159860788118718128271634176399107956701186834106581811438332273220326154350927315434602698746503342945700931541216110119100827093049366410256032872856996441424414131575289582354230351045352578618029750251608823074703844082119237932432310101140497555842030755503965669201335186964385402142477632518034218214462478391723097941254102510143709431141174346604447432631447712493921813495732782547531575569939039534294993535852259455703925498602117076773574109395841006020882193949089976709223764615440122137691916571759361902397263715464066958163959409372294581333204228743762908535452167188690414828465938977735574343674400122584889220847868657763154018919079416782621899449407128005934437926260326715961243863212169342244220423963535773000556199268468006629652105237641735970714907354052314928198915636942919554806060792338576604095515977452186745716319360046657969339370351239526733201883699190556880976492517413565063423408506675899453899872565481731905257580980128827341647596914402722828829220577168033081996964859229220814891405026128635689477370140107386188205707774155123899833169668297135966982054499138954297672135701701044050583020978772741134444039440479578641494169366488644724691119562858351339968929689609531794918646610630612326768163920920752476060756366888443889474840756145434575607700289910001228952830813165515434479854429234739728177930790025511035363204722579061660907349598856113280373539392116335415572697703367227299218661789962474302056178866396456498952653082376855817206466292847735890658919140322750420341162440588352100556670758626276063725774255117219991340210338793415234084300542246280353192101438183663405566154385379775716256597206430283212782622258516832642197985108055844405567931294118238863779911462709244369010647708984130069558501579938250309736189404419414886763595524509482074072128883611094809260633730000694058062484815924404384232437516507384055326628571981598578381443857153596768329018525666644058922172479729690461941157135363741454053249225155242459665806520243505532667721652477166637174505782771799992186917931263963567267001008375385834816869721904895409191275059527193974400874277644395683513675154266281806972488309481488240967033584707044957171195699246695158069613377645229509369451501117574577269901950422322352939367860905620382558546169682432900077392083657349808654903324771533383018771178776782977180948083798574685158037450543327753989558643726141856223510950503893795099797917521182021719622163985224188098797137257889248767229286888451943909383293339548844526612669341244528114742625365853332095128560517628069536523652727321149925710950484728522007288376725744919515978947175706222176264106760098172249355705648510213917848981141631705620595872175950120351806981245524039514083717844777166448639638733598668325566553147825646018449625153842988078711824160499059011769332779130755296686075188897033960064837880140537277832628347708008902366913452433896968842212933376895005579074272720894490541073153335396771824723132723511441726730255965389672854011102952293682793625868804343831951820294675943511181183771703695169304717109514810758759504880883413155398500454794894477134242707592390113628875595044460457444532926980079458698572664133175440642448109904396497992231548267331611219952993354419553930927052005523840598097972109900719832590027425366285254713906455021438132895359429491003864345840844350619271161407151885965565308281613772883110749448175773312877985750470539500813047633465360882067809529890427079563808788423277959867609021343732211646863990957624299196869089603491069306594358123727684084123017837827347874411142087098737046494231772420348660710741049925811781706245381348645312733151304893528602878178562487223933462057419436200686953630453265589438942180783313865572427273032932443182213373219329188051732962109744190162611347344300247724284167052953013533885089840526301490583039425230179009884132964187111669835654008918600180610453546407433794126590340223835356578221635422715838545746825527940393356481829360916707813026697064605586098191600434225712374104053910606595147303273678129770371125330817270232992388910929312578872755387570217108798631969331215175569626249809300726946847229265520053890113863171569096525664248198652981643191669620841055063419083592007119554331674188105659468168129989737500882125252734785958214336900327216280510150147667253390064512499454534599470031590278485271862854545217961491092085647568311893414162848476856834414822245240356886279611038908125950613646399770356647575405239082266536631156593677053477243066376705498295046223541386966047557334547760215806054917147965942026970266212288082911770314658427912133194071745909007240054841685998929400782840280439220117351588197458505319766323698804843951329140187437736570536962985819299821209627549436193922851264644491639830305160582176373690329856986614989324033725922755539236762037175348717230736534248524231968272273348036014658225782888413217584022523876389082733261515013723653410589876194066005002557675425637979358535320095072017847753489127183049945351766453260899115298945349953760254324957143801885345395052610410468433536445128737935052222541113234280020400176501275138449337765472804070907134346126448717356410150982575062937244865483421551186172331896858244976808269413763610693465743795241015410173583958683124882377618223791612441589136695300605539582173003319798778944569010505439951657976270747055171779162227826893816163092032568722106118733416920566495837834174735812552520034746916156779855156115538691635379881452279255984645037386278563615289481692801178538692655388341761845804729767351639903846323593274204402118590473677577885065599574907297634401558308162781644138406185966225283950710410586408832936832323349649555147716862576152106636544034900804197987758968953192387087455003293784702276035629437612328758611130067543653453880481553636267042394301533606078460776707646369250065260233155109945464660919872840807875819526255156085925313469058302836731747913867714655147834241233519737663937312798169586744622627397944198732338149532985763424955244410117606895162418874666900788451734666150192531084739754411850007041116861387432685683347819258019122935015621503031634175008447145642866577667272652755799109661272267646489854004516858991739518603890088549936961348967100138343036536827613320667358478877275426678282976292922313145863258555149623302039863746117015118414116593160097765132386301791675703966026343558431793937024467195733708002937202200711352516466272377359002873082440327095590895701226958886854273851037368323808791000581562456987810393015016751548851294733238773721567598394170260129941818816724512164356255262705491821086079231802287982331383069458823162420797132420268599569848653311085105830912658861977062319573482121335061508922702362691218336845740296262569727053202626596746691403841867850203572416422461916256357328712066471771955544668649950625603669008657524951894473440894592417998596589345917112815678610224302134484441285219710577139671598910142293508899377895382176382743108928215842491833896190658160717257188205364126537856265627763519954854447346054470059267039869363568298965261025548417352914518954923004767802640145057693503666242634658443872170179190927948238637808768301285774409010990835962565711572403487643053979621767619376151494114931909771744383118082252765955265262856750582619584065102759270084827717630343848025677275791265877185998709834221521934094580808215872088969368722777369554292794710721330232901462756737352495642168895282544641501961542734208622596151788642653647259208053642586334419494168128127695135391103735979993140700591612978251557972187361984682376169879547180130702505196225315529305855856611410114775635736163939131306197217548761885811307357590816905608466924875130600520479465677492892341502958255133059868066173654943998372953867055158980450286375086838545423290657840652107664082990368410253822396996354811638480589693027259778044913846637505565338983533754412075196746676157419753629847172669640712811739899619024868904777544428479812526243734779982207751720430929647120366816547853089850072614689942776713340247663653253369397014466143186804248071795091417119958012298967990567179324570655427136199322275164770816044654594743989936990958824392701539895262269368325813113226049146663342435974078906627653943744296419414898200708568791425072323788256545670157514941711786924675590846195648041960098774122417577657234274345212046613251930037182940218837588906173950150820655767689132612668543905790193637643742871707113353636848465123705546946338915169841495384522556591922179210411015995484475768080369966664352510960056102077962408064768908902056937516114775984881709504826694083108994546721209402797855980089279900268843596611926784009786479404072080863301059983725366055536851041103479748600838509961386169557177927520542011012573548276698037203123341723637678548519637589861965597568883440673996083323606561123981826802414680297633326797645465391365456456121981231303281410066287550525670285242518028065931540945923048004208869696814877160299594172605906756075690334664178307403833520254579281448104622271799362464950058859074410589210250484581139124796837593536569738475817328210949288252881191699276811263100486294019057538892326380667083480601985534161646419542259009230812337336143592326171724840869363730258925063736858913419272137727083838112208185321378918221300806879029720972744288243931718055549693371651443172008427994207125979995337322413986002390520837845645539485459495968710206781460162041780722811512865782860508927093902047409139574017423883562922003820446331234088729273115719567451678845293339170623036715703513174684915962814377290193513331174213892501543378401836566944404382484968831561059189186582555768891653775829668675229555632484744744649459194143990428647137834492148908797611148972292250980908308775673907598719120200214271263251232710086086424438218111709669593930705940454333940680951163143052476311921152437102832985611260541096866682356469286963180840717985632782181284880928159530762357564564786945355199138148765738640436064863694798758172008848505926738627723754319913975791173769418925458673448598517751621220798715805167154160917769012175763981822552972887391535216286549561376358527497868146914939405668000394534092167282391558005470411017624509337144615306193813501405933923684462766291452970911987880924189001960997274039022055653873661725460372354299371542637859596669538353741127278451853191697708961062589121276851252158420413253499634456443010984786201957301480442949410048454072628787088029998257556906630297384111616158279971372615598968179693962581093106789032463499633916119550794886421110892103977400350261730386411403272436291604975230931606243872773449464051922686756299141803346380094359818145355095002621376611856526762786667385801373440995023702834173764385846466273618200420167908383042430648895114855690185624041669121311776595926592755790769565562433101765535031278028383041195739351200937003840734867478594000064919301506901134250040802536632685882214474722875063857965199518746204863613530165054226800523702415651886611130431309579476214515125803322903498407428881787991181699458449952845068477807682321547119690927720174726002394108361543433053017804964064793430492180157567511859183527668353988336184115981690137941449965281429913555428092125400680955051374666711769445207471198418029121559380179296824847334914078241098678069140118486915746334567408009564795936979432740635434679933913841398496735528900670041036919037360726352714913643140031355090306895175970374218336949845144409597509960202680167317126460995309565390487235101542917557639770760779118607156300361106865537766281317326836213924302854596092512065323073858896491983940448856299555322440014060529498617136188204778461901158443209835822861876121576246935531991936280546730224263558374377304656133785620315736194727721258152628460018367977080276837196595507072623104053282287984848762153522699391110076777907119339005187267009509379785968436519514535554935577400517499924540865802408654006667923592713142932302292286000654678637095709274054254745405728532634804696595114400618780542303570584913865069339163037914612520405086603572100345058591948464918486140796873021305731975655442754562286827649565925862590583582920189327992234634884631930992296985885560454703186372219395109714742897896772437541419364466388598765251344260473850808286228043197703959274563457507191211366077482991257362872207536068166978766752517868567864082311041616597681526009944182539818927577266852183394621295147974858509627101609590967286626968764216524379477739856144300097946415519279502790648199950994744038238145883782408753643096723249514756988206004644715861190869358978184534850839572849259816495356214571510354012000811969570643969274557142035165884934081654918980025553848285738295203918188671029978483587003527075315407706189919875401768638536410093360130756065468071382638750874409322062352623044928977417938601582503978410392707444236177849318507115105552791697556830643537639633470114074775264488204533041199000000761566906067865072506165134802559454078372768451548769683441855237650338709480074744182812737158419273007478417032638684816223810898579744193832924579592041959121903454958280500220223759949707251792671071879144166531874831244579364226752378752763999310424056024376424688391072655523762958847921022499181900197060344477846237320284066036926487903908328116969144968788197646307330136224841471456509754692468762797347310472701059086338889823231068779986062386110285533924553803308269839105187194856050954899043463161700574183093934640617114701451907406368752352588818654244146317722250482485821483613599609183087724692652599864840138014469088847632497873988622692484390436628530125578595432437970953486861141894971925019364709701549286218728240156712039173932384994517444801794086307563892286677746749043974541135999168862540762387526776182351096935433135884631466454324102551592210657569281383864987497293953299317861272480680120572506736637550845329693391564328117241742267299292460908790631624368356772963561338123231316174485886897834440049447961589996930731124753316194813449963744557996642334042416327107069698746829254097275890188143471723065122941720256339334644751473005831981203922594549873562986721466069224773258642025154878981093713596855378750846647519271655966406868946302269531725958548892779853842306214241639069103428225427961849331441175021388892103095390443228234498355184788943189854242247642210374061318370463279851741013890366506520275310002508085883384880241398100464317298759710374498983373926650557354616620209574704001729241838961141784715883435741731157350407679563026644189949863640418495279092185521983092363218490692567389209129802856041564241114439337832506487538008849984340076403908328515873453630350433344801423179781412527529638143128331519013785878058475586729255076119018431045228040399347967772634482437824886514128328964459592009611466200648061115040844600789830103054811118497700487809301903008709918956228332158352170170169078826113182759878809650252954538470836762887917301259320705710201482101956967798135985890571389015041752929829179648071178561438200222667889190277725253537426869826838000262903298939556057166924342677459434690659739023284712116361436937930513420248289150143025676844135681295704253502738784014856705749006785138912472674497559581329790752759349097371295416853673557534751101594739261189313793825689594685043047183658303838425330867675126049432767622280413393885661793380657649405928252369432306972709373857190278868816376451151336211748723287847381563691676215835911569541723372800357997849146904915066438692523014170000588737567543382877117298503730076586204931095167018335085596450194627207714237494374015730299932123940748749557928215204756339254887803955141641500560728216649951790195296580617526529654586557678817628679420642195700437862400071147639095361612937020685422263249356511561793396948355764110619630436129133207305469236036798294106935782016181641948285923503432292664548261669141552181182966815180900529028986128260346638575361778996699342314581905206345739875444631430565318973899118764729257844322382369212778461476665616309007423766237815713039253595895239614853967415411416944488491390961465682370628542308044799882887043020845355210442521273058788157151884049192577919491890126628470470088676904006041630322695304394823311659982440125546712906183275848245710629965658293935974708360532388074525649029846273184856984937027830204167507674893150004518480804553252716196648217187750002432274824569994497384349669980368498787587233955608684350597733202203568314751377120223700411713359427636738612353472378636267706259249540683055792361001541539834990081073057717017823928328634758565766369248759680138805190227395475928069391454864521808074430308306955586676607021767928869769681375768124772598707324238519432329159788361454522917495982510807288291727320641939403224431913825954487804472442108903396883555227600646619766646606620290048642481600501083438306393410827360080582574100393626839120016761991981861907147990795944950044051294919115833423650833660957239901785767743039956667584964388251114502173477445940226104158256253579314962889981956286771913790826692080666481167678614969293292638267569709654240598957119589532474517104419728708124355828305527938272934899142184624111476246927009674963970670345445647258958445834993824261448856049504260669176826330347213701016002330866160928641034613751576111315465809948451128141861069693561869427918453384480429050689843735166265987436579611593587350880949572763804812971379128622180266223763470743873134134466416164647933162166741189930874620375749416890527488816968509310357920442847294562993050985493466595173445976870348310004032379139881397827908215479796550853385224804472928381868948847849990690804653712446338362447566475832619214293510372364065228844381988864417806155973514785024338423090384331569504482940126971006862200880688042218593460229293659300694707138285484356036277360014052618472058466191268833888020521489616072560468929625342453643283207142380262176776721142715362993276816989253562369550271572205931746358946026642944803672554061171048950823334562932694305152588755678224977774971108298330178040416766025765661396007983862845411036184382148311481225523996348391887084316973529479925899864703039499350461200936771425409264391666776726067099063175163513119748967898503218679252257906594876042387119613242516310974616565319960740559886750908775541059053022382651401680708066215385122399495383955597999974288104483061507522426241127330821815606083147159144863980383213970737542581940538099913525568713114782014098972923961325598472366052955095401617452268477242687210044919043936633966673113825769258068629024822933191195068072094487157441348590963553571641257198762530343613373112498918702198391334260498982469511514451040839622855809111511853725626939229785991087394199392609228634507523601604636964103054298984242641415152264427283745404453204802734332645109392474322358305382087723454681123160326971301545607522502739411636755954662258964025636065166416539655010348784635141641306854245515869534465761856281633814748287334040311336852682268851008132075446430023780191179722641910454117611012725441955143825122366845775181661065430579460367391097658490343080599957477103369238994661184541292210324836841036087544442960039409601132504065580752025227541913252362191283386794656745970203320547098403365211716940824313719075965380354779203291594988715618325708257841840097296053707804909516622932450589659861876761035898075648581220295018599198931350609322983172954649920243337700858688529710027875228076862346380552143647227509638154021244509481390603906811361484251790132039707063191211577732966508243616832827073142375876748923992353308813610081833430692398381820108202309732545769365264392263492165513845981688349706859095009511737736692891515523197917934582272722439119898548181177952898409432226502734295637616583738773239252851542254481307853061525458720979258324963365293981325589985242693387234664810889920503325745555019446227170061268342594979145136166192274808286452459160251453701536294280296704212308923458376754097029990049324315269564368560523138403327185976548414225821366576159031679547993627944960683693510282101225170962642557267181716543250956069298330881308816731535517180290495216750762089740422168613162056613171260637838154322193930252742999246665924169862950503255083144315545291872476927685069171884472943293599255771004043228996265880823587419051151066123395186371864323808756990704760289969452084973560029399114230130519532802464975893909836971570698804038416191822163975783239130371590708219689231277207125080694253463943846955587379445525658382386901123657948160468096775556934749597470282961970856234473409935624971229268768284796008834295548948629477926382919083547147694024865076123619547787123137356971944282496081450776459652243048275327013079987363346487752458368885448515418018265387871980967184666243163774812745681032697016752570141177678746467960169529922158225825665158760258747823671436204203227891233492779051840327414013425810968903698776672620352571889624210186961955996126860760895249770679159341579906344337260214273922021334581696916439429952037017969752928963298492360717504233529281627185643728527797114131837165936587911138901941351758685068836397889031357385879624183246303026470726955708018678960968233377988904404071358237612871710482133099326237601980387719359601511382469720318647288813044404465171160710875959808750115048943421332937986137264773511293117825613680922228929136090358559580890407183018700422646972624950009378710142604963522148328882643213585169689881376877529700920890535371396813925841371442953504962647507972800118013741710127953106575186771765251255670621637890802747235828526798583936889586702006096698959907186085647586335984386238377440918444962171765567259724897067343062735346598818015253141486817592531050818858618985261228057275025861098827520544749511399645452614021763467377747875115010738781552150265044187750093871562952573035945993425662133553082931889845427732819293030008046396564056682134657610230806702860010084396208277114263314356375016438908247333532095087079244145981371173479902809232523549147475766784571916628040668313116976138687210059382829953319508620246025836890974449934922090849256841218108737017206541198769598441473276907689585582983415088042729267488454723008630897483341720028668692294650208479570815006239953322661585597131815807218745781737984908067119890865587982328822064545096624385845464403850142773459563658075317709185336724320059614557578059565668489867672511088909794888142792679172424126193389403406321367479315766474264274693237937986716821228347030617463875739686655899297282166576794097785636285400384341743052017582282611562446115577959734744758615847164646791909528749734805940895424496854087027659464899373953281561914394916754576270619236481272004070861642335208608826117848471416205279194933241900763995608910823805266096002302336551814634149660476836826980664395992912913848892221264172455113230631791007386541114965294450202107911431752698955290603137681317037477157176901871154184799674308411609003683136762511908436284159119453794185276584552766690986784930909902396621503411404916524310232791188518874286942904262302281436705188404762272458973379798892435284288378685238602725630421984427630511613684029194150984058927293898857442486572924344092534844842463150320127981439808765227426478572620619230512460184119788323587322920197679973269729567891280594956303086517013120824272904229021989605311507991653799017951713250780105925083215275176275091333440804873666102382559110087655513276218833095470702300678785496498390057079998466371869665156914594596586258925699679454875519252156885793019989123392801430261701148380085593275895765716417286093309813999972365364876381271360868039646221103392120484516195029925880365044960885558946748475378750774232344894420206649753155083913355018090454227107811805705741148033784849179333477938136156330797123940453656997572435268036766882226019384632669284771527096800719447987330665970936680647249165319430274481117455032258130413676194922712911092933857776298694569142485049217695795074425330082357074850203371261495842199665626162858615274855586158212221344311978395768669187065490539279675893904384156356623600512053881388113469862233166132116235464059886595837297016089287534259855365511943378065081438928871368463257616210490965931067561591742867197406338759325421938657598496327270961881349931496144750784231296458104529573973922745510084959353715824063462603614025518271801899318113468533385179894123965975349924020101861086389513705338845195523147862902581989204857627757028418665326385981429534450621094479691581870904045806841334145961573376099906786110464457703808704613646737721980198863713690776626916987543673893857144947092918352539946668626310323111035887467559453427168338313483739945649561280574192042543257799046124827572451088100981895545139187835622250379555013352106832169609252032682474676017916107184539107002668532877694843916366909288005542100500583021235374199022707051225970473496509056900405042155308995259971814167605411363089921490136565486831956967238506371282906024687210868110367874845961079857211358303921398296020920275480296848489134252779341803670229327908073464255578992973439961226473922105461151106108956564529102218127046292486832849079430058899866169049647194997190824076938363635046249109477413430261508149993578796436423266601936256268834159930866731334609827744825905442248262022976855324827428315083396113396858752911291203210915084226557478901598875560480112335677610621164070786033303746010652721478609553057715893876109599123214273202668022853926203049068724544141905562482399983300188021273746576101995217700011191551833897682434229753528286615606189179314551053851853276044774948856114436508497825541259438178353425314836325460846677866211691277260310120843929673314018208667641111963093980715092691029499517180385866621650183960996763750166443659373194201207923162131322175808671591683086501795578553573176197921283520830337984928760776495065615189736641062308825582774299543801330668441146788295566778677815388374242827331833535000878390076647664083851380049123776906769502332260161495065671538508554397070782207263280858482587772350326576486706982001470900758424398053797854217795799108979245902266623022440693028033751739357171016383062745322768818034677303208414807415718740508235422710529950020463801390130192574275931193052324185894350846071666062529196862178017434673560463496415518008372433506925189491255640129041482096498539830173437059989841101252494242611480544538220786745030266148502086158634140609410776265294304785715869944408830055853078712217190568034853139534233282909939190757375580853984609008435902933915823918642240645009965102173700187337374982361032430380325365070718590885043264065322628491244947539342763968147916942568830665972279900076079309485349821540616341252993274575061697517854830189885799903281442534176081154916154202450292702747132326219637765713729991925999498741863892752361900174711158569460006427575567016924198480073518725934382088200533835277267879588321135792214968027315528225861813226729592079069774375179274986812105140601102556492526814210779843834354470463259002142488843079109293233901816769328165559103600545081772012087202735160415175332614934733083796633832417997954447968930795934752887147510797405505012744793113218348552352315136770653798902490181721761283742540856312855926003862277450877253449124481823329954966932957866285870506486161452428524315717255060838079100012377619264857360222615623150064258999918014179104394895496031650651796477259341008924412762621515424737679377362214793862459395166791945917202091854041708779177751808538650441458234433105635661762165670137687354676710060883120881070205826591848660236658850422644212229124056270440019148032665816876548399530593485983953498408104192288798909789472459691072453353003722866809297819223857254798974308708997049876289780565821349324238936464021174651022965429189938032566835188421986745462592736891372083590509676701498955520125779243679499721228420004505937199730483995569589691842010647436906426004376903174673801330647235170196553651483405787643839203801689620364306859788370335843865094700027464703976622379304553048372903336200471389424166260172040641546233249855665532216632163351136785759062210560616367563680431168145668390352790100231982111852426901730387726819312667248319536396583733121540037104293721364458471262582678959108123942823460859960016486090661371743439468769422992200659778124606533211384901021977161377292554169766599189899872252478515513230735968512029198584626967809070665155437010823177412197870612530755431858219191838654468608007951778643340840925909823658283600436715978743685438477528877048829050634467294757948256185338304738533544375518487633473385321908769817166698024887364639508542244196648764501904258234747292034343515333576005463559287327835370200128901202997895777367811728400151921848847277663291688100544050389432318174556511247873718687810252618365689281670918675810481828442818233584450789920470563625052307186008675362320031197027572701772645983177077891488685361729827004008403700822485235540628552684429979945057415803746291072644012374842331068486285245307669662278293100717706138692443176312598130841758582698627677051505460529316195421320424878121668830943276576816067230294433164499504347984699594548204328752528105915325538929682515133126835717710847159247115366345248364564653662489805674034140820618638244061597650849461296006033272955058186771669140359230780411687828298794358890382560521136030366809658569864369241878733400063294984860608056723815869555626771330933456222257863466256445054631602576872035431532024813640628117568552962562289570697101835236922200766541293170458175261070392666210264125932021878757821761927897497881688313957642605649768343296738290174043340959777363684354034689899063300288788741271615211008437083139118574088630405326031722704702070927290680264596589714355133871419353528100770458914378521288428469439753854982137527514495353327312343969020068202979986596034663668350672378189711006931215087770672814535415308464026054745041844432382889950457895842495945686164529193216080193979971691635155889924684569587965432718677238138837642339333236568371280775073580574893910359140175053045858586347366804093795543929950018019691096021732594297178197828731285326057297197653585560517256137617071546532184629508228804912988622276588435040861617862376118851649242855600340435103197705537125549086486686292183063793590526233415397579859349462808356835324542876932588779794875904165231500423218787407266190597757727736950657921738584911134531261358694445899928988548262278478451339586839200746596432816357787365129093264843903492083210591975086765884880352746290249333182553469741744907743689756569382315991738540697471400468636741831891488475728130528934740341398769591678664541038547314342239959488625025631566752758335584272852897911508935579596111105492654201749221413533625520201317270881913272048681142528682728420984991616801844598465185006093399008973982083762041324842731695731603308939679899906584302089958511414129108994096519244030284435653754292383972005170599395814118940200611450922614531290340699983896362525230399823698218320804222795734708711035480581687602901833988355606015036483945070042509666933726899015969205295409451852023289365616150620878438388503264481826986747400292520265882548901090351290789834732654047215653678460069994212100852000360779192498763451125616545052169376643687073832885223508993381190968773714376191434758371747178823131321884958160381523934073634634128219081024137512421845155485187942897677241448103287354530830749804844302250871812847363444797638037231882876809940906881740113699174790589762949177034606345390784005016950936831769832105859804541512096472072633325538131327086884651541431400440093305570354940102283384652038468973302754721739851301426550291522620542224399763715302946078697396247647116867576586739970098938775938581359535658417470474943391769756663820706711498538965055315353614096771733396098119029703498385231887469339420772038092554844239991538827099164321163323370019925444672417435771406214489085327577517516304215793697077888686631922503560760758018467826788819799539987076939164931273430843025931063321817023021789458892565495968398984367350510467555088430931572410100033579917664735973699751068080568437103487891887371426112502736199743394024542306040283169819634536012414571273588855922586344742526648004292408492037465818610318039874014048143282148253888780222029212150627511584567552202381781363334723180331179917174116685361335332920541636711905482253132240185950136399442817735807767106325800516348393693004506111840010035607311837744751880341927305582799762002261888882868234580166220050525417974050802753106158256009999869410068003347319368189815861849072704779404754548830341206636800592374558091952694499970234782807896935566750445864811941917669445511233877342390755149100754488593679355173011432008928126787634520014510330468798184469783953650799190242889210351404817176471547413213512613736390018130815405393494012665094664531182288630546902379432582470139299651978811296915583245887174429765891082876671640471141558769001976906593286195178839560986861794606318433765677013617839550131800373763852673443837089356912154828732956840879479017000456447526251665945911368291723512062699431612953414277063957489971944789727689246433468061354797183295082881709988078750679638878755738344364275702707136423953986832526568670639574607116626170693186250161136941124116130292511355800727545798669474172424845457206348608969141448362087037534546743860525236202011712849246258643217128361592557309240989710444019655305220265532402362679917304011825082663364180395689055497861097694754135517220501081897849898947259991274358235680725014179955754287621948222854367285695212569844645542130204759565218766548750554745159613933099539689778895624007362062845014560935399800707718019161966723578729017665304770102019083251723493063620042517290127976081013577088209842942004050840027582520008946179384324988080468033101232588168431953910881464705671056719653929276677151724071709888732870455255848413821448495752367429695036402866775522202800230425034467288868276654577961791199473561618188304200310615209200889715793929546572232151279569805416321157770723030371765044802215444531387080279966632387642081101455493191633563332585101020835118287750651212413695956201411324453775702154046156223765269476976508968657767890356546007097996124341067674312420368791821293467231478374099745625829489201074519212408134114718731522573059647472814992549482317442210689354527620086174255684856941638914583469232942958910058519212343069822304397215945169451017035618700062483565288977199776466954090653455861978486857427353829386796723687947941926567147731494335275742062386670698912182312400075027349510086578633355622824577285463893345570981357253387178644551871173629833489794252233286250458381581073932707817314276840975460057452669428577956281269268922441135780158009919530486670516986819098956327738184279107449426753946199881706145677812479806080981813885160998603177148862960701430262844995842645384100072392875428641812247989314754487929960316886662281023810609647224686280089533682814159243287423189990301587227475900368309422004831370458699991622690682313041688683072811379602719123210550175338040769561020475080679184805063365382184722699065606608110551018192160737144401287137955627071985120414899062769200819664789252870482314858824801366055550837754863894791517012124465172856108968099251590687920815798019979621238315735251210863650987458680825638929304134750008049094404359039874635939993773425527826711186838335601846424096496157384360097039666580361777196018007535321617259845114080058813128960787901562714577385495473777100852560375721128681749474876230154868084110786507794453590051177245845214709135961997938934303006248725281793437531333325456911093263637699538950840349089417503041746383971630061740744923907742841701241485557030290074382756280361621752138900344225632019584075227829094234458036115809755622359876743375851315761670923702357118571334119338289161048852424528831344983108507838473021574751272729895064382028037015251152484786376019806311135003698818882103096755101366972139105687178058450921207952474508621741595545403563737521706958501709361150237335016751103915155352908974748111374195580079903163576814719777835577241026026604192221312205367345914757671556993631618315221172311520928045847512150908336249184290077217862666400260793285689247265819752639025937176580328094381487617533997398348668709886920551727504860417078561480921594949399532553374414979680811779250749558885820963628425106226868748451967745200608828772959911372896676812673805217709666420413562153827967567343686163108475407475190245105508566833286541418356132398120509545597988638189415159690807282204498138138355954555932006494225940393100313401972206482087354338880230896882620376496064718847255041656681482014312073943608262854386087286018804274168551646007792133798791912883478335575954024274899253399072962837265740100316476292616166865782485115490182578972991220610186770683263983391226813080989003439026907127320966974906776629315323854844466685990659142741105495223920210024395315180124466912033142994743296181007736236433115947108745239290236035739022450746726392610496333586517547246682740929875676762039202507921379843946389561079114406013292637948049009760015318158864493956497987887892820303955467926806971353558665298273835350364686884568598795775344719942693188718007508427183764568905361186557084987900589652876929538752164138328721020983015679111540597728195059706146483781876328114206047671568500425134244772268325095267196913151244486496519375597002687790958140349115280487757493365901034452669837677718230878185871070807736479694078871209040554912442056595197100837963000358557433965540063754585107949416586765819190899065690517928087508640116606719924135563844377809940910093178693676037709664608942275609598351175397003572056336717596765052497398100666082294582329847193123574750215440163403673270123200864209847515326700164320449788434432424353165648028929712304172508460817219699714643453275765115118922272237503167982979955485867919239957787045492405083658934863980331914674947306034466685500732614221895519599165113039163587414177617418968745486025951344332417003163875196021946276821820075296666060679573440226442279193634701134353080103911149484539652443852360742884009431778153179157016850384004107502333353281727024582688297890114755269447440865264032340744804471109123303731561252693550435950551525659244713149543831182244302672823037798477869319358075045425014723202529372956930327026712623346151332275751488754211249359167912365014068054743004553512679722074139775472166625162854669587094657639545838572677852512647012426135404569769499558602363134712975446944322943588452653835612840326830894721333532137942882091368310062900575029586373624111929241724530844383179028470417846998470378574625131200432618865782963916476218111659486059549959175796138301915619818217382406671995241211311031995915240003008864814571818695597469913736110737194875188783005508696522021124011265753489914395518753018683125306411729655633765026866181546213981607609018745732644299015809496947300110235850516493042289712698081613424837573097457679465889610512433038677031082579739717796010704409424574343274136942168156589300096356853046489202053516265503487517062217910369665951092971205228408302126837947381030064633887976571283159824697193494463814043222809808360792345802923027470850305731428318549546692092129835673454128930452703761007164768319306104244904865045366536225234710159086733234194089897996960374020442598881594132753492441353921599068065198969968345451886975424616908256142450851125264161888807499080146168040463181838191569869687584625318858100778870916488342287415263151757214284972265977653378314007334098495582825153830780129689471932261722092033170432861873510926912871315587048580886601515514467795645700456461607746193909459587696837749181526918344083596102194127157065232979463369412669790488504277465285613975272986245930400642244038886331056312999065238031191152556587981207099920365679049350377590877704511995383300724383652916969134805271418963214314117076664260540943318662564072233382163167061059925028539116726252122492159941429638707601331918923851644034543885636889547673182433510546557289966239284456784422958993279346043980083163743814209301528814712483243947681387367349677750432020948457018299012481551614034385290211384856917070563766344303356542804346720762446504323070201692253297942985404347740961537740752253548276971964437059798686773131388804537980623533597435863248663188528894106973356995236982735405184607603100875139915125608426602737635625834986149878740426066732034233343313584990941181988549433429542357597390220767970282282592437897774998959378378316915983142612588519008621113986684189613964254740414430030388951000108180843356335125027488531936532771344403935327849305554662578365451183387760330334852343193472607589909926902152453633460684682101600912968970337918772468414125825684003300752231143910717869385059815701312707233694039716092620926325727608626978975346580041137643853038824907443232599489143190948710681373430860099037341413843521949233981242166530018083344146512511346139593714936534637094385828466874233928211380812529532703990006573506408935842378966162010511788019576093719137681728066520982867032926960281907494399254898086398758450526354501599016691389184034132146262852817251843946931233505527780717133645189585139311090659560119756676510049668860264393461168581022936833234433191039273443703385534784756307422476990380173035110116628508788504446308642737125666063717857682652584686506472196660163765167490082628175507843536897422036859732531275576658522368384694634972611526726956629010190672536706105039819992173941078248510339631056270469384554503878487000319686196359718982578038642153400261780874256361417007383889899876466350114437920461752825702371602442672213185814732221057428907655430484466173275652568871743663768460347537510234733052248314059766215111347777745284102668459721872828314416468246385930987027613327395640563819829663567932529035224815518208474501624975528891949120145535343945037627524609025902207915420759894572915296724429635151708859359722626101475953283824488255303371984898263163760354588209828762409151253190824641410050511009974584407035163335330317521035592478407117325651091165470705381181658514654407614349024902605932958298775645937389238943094046251802601943257758542036842914795766114167707926218985782438508905436440729889828208571416842403743708297912879498938677229465721822595150805466665368348745405877669160060917517886286923437955850671699361801812270935892394687350122474665181326896824837011345918931012672158395623025944748112727735607490882214109015796125245785647283986862859325485148866269080579259634714151814040000416646736886797466223711636369805991037016646371845803696494267474637148701924228605078009383418407197257621474429521149079589709430114236730387981583687226340621488769503210583781405480977259420891803730256652424327965189429656511658921759861472508116452132975277163218174879557406899554985456207012721449803927775640688901517819715682355105242546668743724703345810983475886262497201758506181810202338516589675711250059865424525619141303033943506448606583668079408372307308720455225296144977811765170816010968122294488412110362075092684398684615847669481958106634512084078528144659432317240141226182220763269601463625115244622819525741815530937851394536950180571647229257319439001921219207667697161262766878858541812103987374350141316601171429759761920492184359047320906040582105293839920520131129077398055589643783117634227252326371824250939584592881080924001076430049303620606275243820887390897008480322901665890653502557508212144329194754880598320091554215808490007718322970150980869184328325773532580118376161800869417781931061275147633116865384627291691077435445511328452412317874072062760903404661442064756895678287511649036998553543706982105368292867404482656090512404300790240207013259860226500848052591068190087499198601553302916169928912087306147681690468100856533819061316998492645208705267031614523933693148703837321091776073008150840671303944527536638124826517610003440944134304965415635633610953254468310215392698074043492270016655110240900334349876177451888698352501361326202301626008896116740360924681290999414836449993435877788467986840637035572496732552496200318303268109323411463156082899198806825985137641189047752821601571548361658953323669743788870627265468170643605355763450340251327700202520906264654820455107880983811488397446886166900029635551747550199465363834377387598811887239982442023732232150769837860708267258091995273158686043257875273319212885521626793097067826699807978284691048566800571853722455963361599902235647201720823121476679006660910455148169323262073714343343694351952219124781336018847675067093346307818121539353685354261129881218727443827739829230818589940851696473023976657241768685303932867648195881869204952348249595283665970563527609805334750218436234688577075710542671844074846467368207242860421849736862502420559706481083620808564483480467091657963761867975908150520331722385636555495513164011370672935647064875374265768096864197202903764953465484514974305160534710076804725298861499858301972353212141870718367653973827124015356004220991075305325209429078151938527981415625568890829907165061218903129577321799232266329752878446348507700087662009037468381546139971094206453903505692230609459800104749053762878352246968925649747686207884992219582941434418168632910751091066711197003774804701608059336408460668915267830103078290843422332838656014115975680639898717500657682411202838548433194565768572703934579131118778469028215130459422433725511635109361780215707236018313990837898747827871143844021869520287592454920565486129331717078242381756084360260725546313378007865229953126982308624591831616890280588643452522746237344893040170446620150914935907259900149252575494994343357934813973701311358379128365204862297008361032593658075358706899974084713559827276790036165977661600314611633721167209780832201591399469231522188337328851384642849917400316815367441167104439775196969983672543779888152586487274858112868569857885198177326962376575305913896052561755954045065602667865149048724488616332297383395754643082023349684698097869786089607354809815655197548251098313954032996496048343274790773089712180614873000256572646585434732141085801107362763227163564791919932959714372873950755487658391500984099353664215207982970598926212033159710819390999409359054179284121260764947409299464170597573721200021750786730937532790313647765417015288192867056900458800129124263316275232474594093497921338496414538874867991834258055111905581415735511259210044795136150965621856114164152878598481452669246355283805442903846802519720218766741499986570414908867477761346367146389518949611469829843848839100153224451198630564574550858437118075213390302730886560627499713008992074767904631460207281798791521183195940158403633211043933015712444596899014731414130468428973348202995413704819164613679856074938503886908281070453869078633897491559423088152639026798967361377100337327904015052554804096516427549133531061741943372507340089397075577972938481091919279263857766873578172393423410192584492381816214448360721825261750718614852913070785322522217230141976217649540570836777479583783177321732039841039365176657746013743613484586388840436326346714753351985903501979885043935630611089508080923771978890725976794249626754833259762634431043869461551338556362979274811702769274018077053960898117483780976440780168819547547579258889410283812381956724180732129550445489756108826086669638004096847823969009926374327752655501388317901223857268130217312757891371768153892653978675271372311598626455755539455313762429743360488265817749626710127827928009086746362114598159462360774638506392037411995222842805124499848251331477963764049485080765976674431920404867587448123906021820326862410640539229767799261431795611425607240257407170634363878341125477322063414872186771788230253230167363386026266831798314332157085504865031817199272533861899588069983873618518681905571255384537290781389976304884976879444726708324002015886100568918844811260436562712280689063965234075713525520665380996172230124737233469020218619329743357403300726763130776878462062025086712848094077174783522896396791695466851730771162363906660352532706902662418047580266632864168702810095585240915322752339146747637643643561928378371067489640787013091405486663543387812768187680169897496314428751567479235724189403174221807810280865333010795006516397146562394800169582025584149005774292008685775351569575647550370363421568297410710041082174005660146151127430438590731384901264088619890639137918388612837786349935998551421758044653645693911224245846948776460814174981581019560245088012231719117713364183618073374631429283956603378729282236484770742513540244684194109702968317656634820546328626168077560013934344077671352586338656929072329066824945363496901236032309939462013046549278800290986945354553100262664827536510604679586654010222472881845132672279530203510099378825814862258579007627148353742233075092724461885316479201144301515304354712598946594598531842261781041005888187750981628472525967329813256114627915694537969123254463234541882451552192874410631802579699087718052511073486559716176789332170744314228521920433267726735026281531101506126047226690933209890386396505834568598699054640502163789011525454614317502104103637696554785286846563131996176448681051913627981254396236941746686664368200554314242697641760090315276518243745339982663885248958443844719216089818466370209262954556827045987640801354273022384536147356363760505343574951387526481941842787843660175597736833512783204322566374240894429742472222704317491798524658819947563979487295846423955701279646773827150677878496215281997566193302152873085690519955662059985589059164695938090085616539053393312623837262645748089058173736733928399943323145788613966136057804805426591008505640208322670959864673563598461921225654627837940335921262858619227821650605429820940919977441927273370853874450592512175265200418076793637652461605201841399094556999599534627106088666120834950703645112334882200652890193881405974771567067634447584528498961992857287700508301876604435609287565166412132048068358552450618677869043046851056498529116129288845529154914526171320200233375396908086714196646830764469762142349067494839068188755188907311759861002231264647004738421162722206628376687100946936840607620316415677287914757975852964808179465077374532655439303437088944515517130820192148377974490990630997878223199031069408694799600886035975368034992856071324636963872616515040345799325405860013255221385751230596244681058160426457543464815656062252447520139917916214158053721390692198714693683071613627436521109740522672669857776416964665101156972377933974481274970486584173190702834117452513442022575867340126329392165744140165387031499236647439525672895832446576795177581702377224237627967584793180655119911043304139873665044657111005621728166381605009744214093941746414749491124640343545237779355558532764129125345327835815398334795491294851428654567604907265043414461623314405218999118811887712376934164797207106771955594120771099618546721275687026242299445473237778934824737572469627332201331726945750486239120537829239116918123460833319941007480929452266730003444424250302297964444898526941909906704451055027251266597190978984022981909517926289797758965925316351907679302331388241390657928830296094099225390973275710830368872412573660993205155182830714196459951230037258824634108548252506730435775896389289288137746296649274965858785590550890502130256389865575963346980467390335945385312404771328725872637148260553807051576864492374520351347814162730802237024136431974608954969264914145191275774843351358229477115498369663670526418432359832278236148911334563923677973162709705794767633493564124212260595450245685438822928422829659051738436989691922635340521374928153889437983102016168418633304808274274689798418611820547080017950249316725919811174845729804007981721251575319765927922750130639345295963138546508562445841408354983213311747709828286358940463952727895413372739749297049256014130279554692445763898174093583914401608520351303657462923754879366744538985539399182184164113183870694040588989158291870884382365505342856752656677620707293196088886454977496027800048020676287803232467049981684388510579736148671119491436431675292294459710367983283444591479875107869584715362717117508381352465636932789915175008999201932289715548684921213797047238091051340865973255934127206225278132929516506979175858219311758846025132917804750855867055627540065438221616350581864727911537049411323191472063792172847221330132226230817634645578522318878547064184277357805022325029568915604141628065498305305739058228256758583851783559505579291934612120274997608695284816101150041548532068717598809494406400695810640182711597240414981031698149589712816968927301450759263599597694580693777445777507012910448223716903700520492742162893095163322704966766516685492330697434731974658037593506555401733013471528562986285961511461448077014575679174696831468233328941218611547933450605458204094938104129405390533972886339941056923729062037307447973062690315189159221683019762165958830396536048089437692830554967645135848650421665491653571182224142459695983189842694810732790250612250366912836726071283348096935201428782963382774187112220985377188081740484487153339679796989120331009774201679810721522850689739889276586446408921676840770318526260269871068724157503754726974401239933461710623344414634711240504627488701888229476587164289036366767716836126969577676956692101669086358131624495970331151466093419547147496493870052613799510107569472839240666955793702633378282523901829917064196451707634883871483654656535724445634888466343000599613906462442707840971184468841655677667362264331386010941188490420277656242996983250331262701451065800780818835998844319947689668880040215741494342643691170415993670484402145688791218589184643297428347616462038260665156316408695504988973764675440360014937246142988482922948383316305091369992352432737185093725828397314777894927344323894294579870774564109089822946698035011678125856199885875084441887289682875617962653203356423615016727770939111690234045191741382164963801779889977880484358592859999055917415546736298700937695592618306156339285132666823547297799060112248689610458345853077126565390033974193240428081012677499275954130747318167499531584634692088566709266395262779051319262681971096861620300069644889169718270235414343021439518247153920321429076025964014152917738610539609843188998863611712515832795967255310307268589719986617102095322977749649247712208867547660192093466146828225110779429606545678762812090632146888602993281784867905290973149606856924179484933408785761728981280540009788209927983994993194256407273847287201365074015335885012684453927233843070019424380527002320910335555074026206412687842833070643445689247719871359275839759300799186198134219335508880716766150657401253800972407027365729360038359667479058081822456253223727263646341365179069741974755055514531892031103961962010989784682445558691407657849495935469443251487515153471203151984395866507447862598696160989495219460812536824714878474657139048926302161226430757135699592049898033033179036600888190723195789765181921615071844107649049125763337995714867287084685370229901814208344400633397437274135669962035160779886177837480722863312835033906531881860144481541669516348663307341984811642382749890531837686506547770306173273198561892866121104220233985605418716591880602018934131228256539492470277296691735151179485196461230117796195807922875534690009496326772690274673808438625861641221745122822662076368090109131419288276468657277917461578409669668063133703710972029995552201355192624840945698140004475083804251044583389524017731486957108697277608424440133282899700524001636061506549703493991944930051346149824368021930412627948916737534028008853205135703530272336600892648975518889566089348609694198616371533726635177028419754506560294175510026746736825936609588482722110568519786847522806100983514898773613829583936639799055672435362729173878969387273015295293355370463041117738330381696714510878827413188522582182602235400142382399709412205272131970452955354364987877073863949906167629219066472927562359629251178799368400116517184511734832229365252111480728667672188644991979696971480574305378468207782930389959887662019738397832015363977336169950472150547342816063107519766458709054979975156630676261469813863738268304664043095804112571979216058648897902017007040593866384468131514774122771672043738807725306085710622169854756054190663380797982884374214284389765054705209968385623780892963666051042941360884771297029034070755068836714345037443341870364872249158158993007033466002249247526087610136570378932990375959969915726703898412813138106565832792710553755062417517967631700092690094371278930756664622478037654334576059848272339011796515405126459721064945826347627525959207754581228788169128425557044311116996556505628499608995415786243163357766540910842454759747792516060955950304815967597472298604610936823149760736404881660070196460150268673710881720209074211173407338781069324781980839201692064717807623236392368704413146604971536198198443442989838914893974666942985926191278183343025034561094497600536810345127370719725051633484687199143683402293001763248152940390827156186219693020992169236625913254513788227069919368340007199209133503526570637048560051440823646689580131745074008008766941561866762282408070211068401705534866398814450251651734963477522723379240839983877143276837139105427678594398294027835505659505275598045259339541047031792047903222205871301518822742496740590729345485668701521641237017723417731010205984502849474421785966513872359348427707969277716935358775281879569980843324944094951661619646878732076949403619569956243250625499868699978290804199119219935235349078712765858733593198601608002701427862082912379898745842544827902281494695098508466094859105646638267107308852163842110186822403314309872961701909260216598281765883063497436710220157519744990127686529563879319837063247619229347236106365211285363938436709337524685512267405315596669770054069518881698624408831600047939891351654327543423709389754830600939504655056312489685538309515660530634546459522575412735513151999959368483643423272121440609914093334792864649815558599722640433307670550697121366612139110441304055960701230361531427205421882176472055701878890356087106298460744426465303109338469255066908079407309913066042873016339497971665294124560861249356655490982776331740378087420528218728111953198201763760846016799754152067934242512032058616981091250623549964353935201582730811881393404406848072416391630633565166193245295242866157044031542029410846394194996542817609363078717304561574305321994031507115167666450220173190735118340542558323941734699305510243628178041983119554797154986582456532167011986842052967373609827283785169523743547528825614222624814765458127168148625256979670913221352521744444136931566239088198880191167789813696446933174885398690738428301232596249881334767173659724403231134395780428450788960822144428862240902318831503860464430344331571126870658586487387043809431268759099280253157416592111969887271875013859908392542376340398427995197891727829059557320279674208096631688500838784898225380478700446454770834206594476502146703551981458972849845104516762449392240773180500754093157895307377016577318237383626568897920920634294819224644217508384756194097586078647698843223538822301080257562657099371256163662385170673892450921094192151905968200303670304525871430051270575087150641392472318012218414544985204594367291353639482677004835028295050981880092269969274129005616737866872104030620719003507458746775807963048244272032458292175093587946700721773889729492777101973630707303906260015530955167885418776444170459570039384079449928368256072794047000978854177058959271495301673536606087193039647571249669887089775062660585881902590050788047370856543317336113034759274442503945190804496348127620865321433520070229588262649835102002239065557341392834897709435472352238739713808293865488464253124331788754357107937070293763414000163020823223702064400520800580114000896592062747074935052667350029707916339475416644633829235165783001949193492071428776419729629443720670481328308873732511226404191234342246750451777381132228396443796915814693023950972568400670515742231357305537667646520353288365817146444557427733041597017862084149191574393633552754866519483713600665792837832676791801511028404798130384726889060787883381164046448082839820547326996732147594965057495477037193618774110865867468582315926133623723231349245788656051523316539841148943092767918971988728719049970925279129775145566952779754914350731684600228956413565495215815368646147761075719287550218766283128844790615389059799097859529533302664133085350156771381048281692623170820217269413806750648341815677898350580884742390839825987712882189074506456590335378525806096401954847955181517183704089520918854157156844562675964969508629966442675189737236602941723347415126785233800096771896771974195521176134185582093216548476149678311295249946605520194435973307314324865753453668154621094482812942243233742591273545752991200254485315627968303719159491229913885980883199474610637131188279789404261837143218985542664193775047696919124780745358188223284102046533590887703256580555394489756532208828926847169624936103377863578286730423259565217241348532602378897246112564978191894196698525014408875262798148464115118243071873601678525115595131037099283271888854803881823758658853031358685553752690074231723979797480636254975959423714080307559493787997978709864845499155587610048937795088214791359476147872900702649658380288285863106123421820891897896173201735738544773705750614261059570302826454296504171475711264937787413789960145640465607801054208813559221039053020265238192881009243504221942824974489938267353220201366772783347318497411255273230699688816419802629005859978135158515997008731613890844945133489980506728831527700455265224230494686359063747658693266247729902929123559827636224387436079180776727507180982669283948950233622461351436164500609241439657744680563216311698878081130590572839091337607296024064228767622552509758657890689141557427994292128821839222376875178893086487272196223278413308844395807514835943661030129418820397429942173315730851941709899630432880792518054454934432308835276170150716079232639441752647817362643034025899010786063213938782212753688537870330248878610373322333457111948491735519763409667636933934141247635135134594004317887348919606537555171369397909775753537448868547203772822973672857536195345504809386695926865745350016446519192424727339468009095259652151288005703762183979068991537956563775756799336420321135469386326308670271726097013233062303087083503289510666079793599188782967376360729286940982867307883565452801986722964618136323114320869818877516109103853676189243652639182641857785219295288057876266798935968668941343434525872103823951821440503727868819225847205598049157212724078033088938443600668268423136860482254145154401155941365520522782154701446378378218966747856290252891199944447437477468425547495085898819664928913581894555773223659274438028953890841840470819055938925082455562227806073931126389558297110397877904826939063361899725128120321586041975567227103832019097887207835499077103461354528095356517805982226168838121619854232896449312131030116226352935018896442224146259637742710098914993215755314398765916791016743766458494330746983705766832502433617107394852389749495665303977887336287432676332004722101543257750590930204428936243388556684852186067622792298402753316430566778536725439459359871636507772759400644144345655915178289130285294286993396459936952585726558568691198180386940273012025505847913497646215386051599008586549149203525619364671201170101060425612772046850479955923304052593985914500224631334667927775806701931307106198190137052766668018578511611874932765747814395513784924619329355660790054794135714962367644092095562625694902176132399557082861231070020305538506186007219779638845413061118006197459936833033921787295291117299867163194829571206236531370432597420274163248015226415491704738183813070818207811702708610481606191274668940637900694438198718870354554008563893289789563034516461557690164987956289141785451998085273046052309876772629625587986607316790227016442723006499306305191104527599701801003910714476443830828571282100226787056350354263791364312679655473799470379841760700781011816111685643705546761914058247804068652656854467117724657263276446200988533839688180629351168126295192640842819809521967177375019924268536864721695900209808210354731169269200245465797773214076154719948467924911332555536910987525900974705558503296688089431352413215395848208349793345349699218905217085740346660602193629646825607232048490873501361042033126418682351110309005670215540345711921901393225391866934745062013400863740721727230907043990757930740292433925309502390449336935372917194494488575182042627394344137361638191420292437563525272555182139079307987959177279928800322431721627217107200528526515698135196146203657242781743314288479241542076893588253413394703093745272052060421260965846449936750070805401396296550893366951438037546884799725858027322062804819211857168621095540681683079315122895339661908726972340352255608016623713809600861668669223190016961712168451852329264761637389535336052926699528640616377366730447562477821897080508311197360478835164233211525974051930221630463015526965377019768961460592465845306848197574468243759731332160867768637895879792178699665266402752004208338884802449244212524300640025895626186632939399540720269586798304525546951625778147860584711011436513102504935205887927450764858952484660255545652586489469495013209847431595192651791948378701214834394170424810838101428415506689142300716024231775772969300192198886880528775940903835989247461252598907069158295456761723733174974147705345629522440560912767825711988956885544745376388424806330883081277541692078440144010285377161710836093412227526797340640735087690317131221266619869715673026526235964038707383137301480015059817678228111459436730367155768727371160097962216299084369556529680193870078176250888054153524541278971210208233337279925525264661626312713324671157598138378594752114506538099357518514525575662031116060200893484672157210757676097554922850645629230244202444421615187140003890329333029446230523726654477887811649174374493555566499447929177700258638561049301767495307954259243307347563785586519540397755885859091140102575086910516150001179724011674361952087560518498627731024285534697212483699492858887795789740490102570998002506294783095516486064151696259902328128910593802900837307816116896889400958244625327109642832598137809954774136467593547629651004418907114824056163913517924066125935534631939399290816333285367704719498710155877399354322143447398483648132735068261071840547867990945872500310527803067337392612297264615552779828244310544782185962392000327173789595944425075056813972243473497175754344714139021431651120265691408965130321003054019784316770886789379218549511318826264110655272803485727547002636589966752747820667026115800849279672014107386982007984239488976066272171289600299886506568079475282745789902489195508480734440050859660265805635889084261528425196794894938366616542899717422520489543482484914360145951199540612775406961116314338171562470996093833858512870118271413561339370259725360532167998164732419679608011280977663480175911433255645528250187840415198806503327699104917292737684308407059661652011122131470546329476469927240846195753169002087643593258909642373572337269024833224948532087231988452144964390867004624837221695551468062944933599936650251922702089023165582348774616384311737821918676609794810122904657642318487935122526503885037802036402617184566632621268040687511581166545617124242968553880499503153806663775530199635192784864509614054166646701962336504272388051752475133705301328366037452212731536915421201206350720107268621407681733444771667882996159838951184976067576099306279571831052991063711067652276634358119034113717009511722527844389435906907429654880706476681322795582725336422939853287983531740244878080729510156538362723521891209287718249385453282000415849330186643432625155626149717745299811915195476156884439125631541339685797184457751201967998058030025896524396020329926844075381605647892528941928592479688391791357321282589977458803790450255488441928133121148485347752886577101284084509010264226211857760982191424746297967095451754446214994600173123696216155510332723989760825643940959839170036462642966133101135723093925565987545984259131467886597307157961517486250282583063331698820226879412333404128507074879842877059544616713071390940796112132177474134827354011301614145521843822031860261138786542214371580326423898854540068818803392845825333838375357521799279107983476320321792977373596235381526853666866582579358833524831623466984678883824309915559674377586867099665404390809041643400606622250269256769582716111227332763829462881338893348041640633998316457876944736448766418345485398999311634952195019135150152429324751562710450189119430250398232491819049045158931391126748206402878059966667884362542897325920369800402569168516643409183797616744545868237410220507253124428188626056968387174525714055224571666863292462359240213392851265734133331336019903239939888006464364947531466716265118574477812799312906297345492085170233909954232700544494227682953790593739688050834911718097138025707003182282458724893132576867477747344155481685255002734357585459463989634189339700209298192645303565346424238198214813225172897608602013249519739182468960781085674395844677226673134363468920277768455620332572754442464644376320296837790134620706917321140860516848553326236568202237099988679512447960245861646590928121120964028899511698001132885518005950785138015151417198039602252973947724423246536657658666664891514057668178381240092289194153537175540351869884444639545988326482725687159805623584067849894077856331532926729105378381490086456545421214566868969230092747879181115466407255200273579459679343517164985903166590372572786988674597591179987921405411696837563009596837171901586565762717638826618600827635529195986876814430650708176591161586643410922538110716176556020035946289640713443571817133391081831035842364888382255265713750942531625354553124472221238535250364211233237434612002347333494983469224361463140765388494615716000603994426480005642612601012359169696876865066898231360956288639535146703200969432307117105895736977072775637212229646774025640367101982382029238795723866562760652807442795890184313150691998713584571034099448599812048023479968098274368680562715646561867239425142954052885228140230031334042491225030772161875229097959238625468238741682592607978407708759957888181212579117212368272002877717453478196220450831516286339525633370919645295907977178022616658336656594001446289056189195614668744358928083309915782674996099595788705025201141959798315779007080351841531330374003352496641929199352588238794731217443688444197831846633718211443878625115617649551761851850944970593995222381488977815138924516233895007999706810654714441130606271563759489380331655365129776959540664610336849986553257608057996882290083668757873920794494921474607590703715219495417460815900393112145835210251029569010354165568367331094131463589464733408373005312754305016654193282715565930159791609953336562694277486150726955182195242347221955227888972484318004525483800787391290816799296582683181640421267230824653863939022919523564406743741007404783939700825257333189602181824086763078943583583356349587595918788841158952411792181795798113067686293464693143194030107268349248110526964655711555806431048764295903291317955956471819584139721383679742072362312418648924496170325677660252288664607295170334356482127288545404407148300950357276141726132603868178341133911078604820038591485116400138053376366598281491094891843626550518184649512963202148514401785477947198055743810064575512804327238341017586923200774437338341483891953897839472566431183779192264351351154189635899713342903517579729393138515574536513686999188246597027024581425374605383235053897321205895806282170459688924013847837993453493479784715611310336911529952093350077467100108205333838010837163996637947908409330866542309637634893546561608169212876604508234333210885215523756129516146557934608515632447256976717077015008599470582976767138046261094303806699546920138506338214920484827009286112506014366647461876646881379696523336071480343464158083223837034325735514283321281302491338890394878975831363244635977147124490788886070747658274226829442141687253513501286025318298189601060113151210333057359189118019317334032928435742710621984035906655053949760744098711247665181133664023271488356988750131290648548044687243784030699881131629593035419692927664239023978375940687943414252132461435469821761648319680345283406932741586269585870158096559604511875675705725780212033847248259556564441187933268787744681708870028359895959782427254227868993039304236473681371710072288735035193439218999338492178318149684184252216619292064228913831224996200180020551763581195174886813002090786121067921754882109858649600796007415671610080829844509215596059920235075750988247598178689662074518572489628646696078291976002564461509401373600693745131020838101142465566089888076377103330873872351502153674035648070009431322222763475114874490320331917871112411154126764998758059513767428494700897922569249067471103302162663356657400807307564116350750719114157351219156391126532991734972025077282461207765170788694734135992559313475989553148392725883472166641260329527336923301218333940046382023705923046249658834145527137921974429339103806418266097089837013962217745025703552141418043368589048394749281276074164947103404917049906988400283558824896655366908350689721465276118718141587954445493057592447461115447951878212998728502785861159068010195090761351928114816422268240788676285593454662548584626576553673264776036255521344893304299558429567335941539773935686893321660036736106319679814485420361820760353211538221626188561211124527565652267838358431860671778886734320742066549518700145765480897936511127529715067623265968789964646113137794366684821280011355970878015010428165957929158822665065087495869547377512157348207581613056025270667406089189965043535829437789787221903718253697165106944697759134153326789475316780537236524891363693136112652537198059310637580661373105475560783948873307963306135817063290215320679697654579876929013593946276741268390563050675130659638702730847394817854986765707803628563258339108485889865984284226177814064917953994049956150882318693835424495688621194498916526383199306114908050469438603360037012098196110417820420966545447698667242683739987374106008169877822789151494003163962218962714294648744695554161638708168952966932837565546351698297313783483890990036454788761241413834943651777463794948382793526929211543964064342045727736467863122658366984116945788087212276343582583709313560339476085472483535088656604760360144520741993345928089681881405914639737267936416201144780347422291555291874561442957864641189645737863584550830224337968096963546210643547914955947538738235635162627056962074600670518845564742281673694538600122256449242116222562063714504182612377147206962649037190008162525900695257273938122406764587536146366259685259264438571101674857635609919899032024783230599338445810307850100648247191853236244648038061989536077611894885895614017172226906922797136700716152254525659051511690715396409462220284741784887615209150574559761299686500320819614462862924800029212662042592671125017871824390262158231090868384141682187589087577252644330326849030603120081746642967552698621971806585775701282647012520971437374085446592225438339923330140139323262355627305134895671447580077060307330794126037404628733046629169712360535344007913459447178670720789154868264033381511399474631726280122696810683455235678722671324676094299880144052852402845370439107556012246888389388168704648430187139876642890368251048541392625590107108849954010084444619288785562279641604512589385478821792222341192255482030392234857781110904882332464566292078228233716576542377903263140277586959160644423420189981232214541338534099114518991791398608978390087869864844394913017947915463835096196270872611898688166909678552812871810744180339995423700087514815233902029064628059115139727014614123999723480455702989207266333241315085646712808632592770681547361564888461087237946772981326740924840453141798993390192763601550247918445281645952465798706214614274396172552070762734360708861205890715069127891026412028245064454211370794560167808856963536142450592846598892601918975188019221636849624361783943893149787378193504988757461584033208147919635973030904920944918634781344413615915043543251634459830098888034542821397852317433614732262859054978928118111714250124960363035853683358234440617418982453353743317257353479755653022291671805122692855670807010486729001050701807716378982095572707150613417383902346626608644604790961298757399535531006661141574810320905750073835597588837878633212254543620654969620162497956503664171973132744421283994136530091512620386551753385295758725471841162900332968963646962333269674503238730710332394913714614485836777029551339251067566479027888943059900146914327027935030245491998844289674039713257110048390828133562814731508662772801439156841591523701531778443758134237690826617749150541096919128624675810299737702595379933944385076118841721369849582520055729847805523501569604540377882274164240643735938687875305388339053300245922316908772724756907484256964526925304495542768294086459656129872936593373850646603347943019132069447135971324710422372869125930113073855621817572926176186945211653087403922160224919850648101030567678914602083472236698275450423342083495083892274519589161328318252015817346478580927673364638069813141043164212390740709024252278699488461972756321276551633726929406863975867641059703776380982622770105110739995152633511909673161697178188761417632933269228323397811565097472384658815991299890689478325654634870912678901630347449571049054776486811578374055010287504446180677165773986901516528856258991119217123746098205913189457866845102662281276894790130743122768296811646996770396736183193884369801837398176847240311109776019469291221395232174314232421839798926031824002389543412847897735923533186129671942012209428394990892995757159747470109978829097548799764038927983371833330954913837188385668228458324348339727319228967493903769625682755344625468003386620750046337492032632336337644116531229478540259554308103163828150926862463487906684843570983681729558643063389579114212512900153942422558501976185842318235589404174897968211313759975989227693779793674875828132207357113628722317250824569813133388440067064514689757512244790573339600382649370621534887951913223845929610618644105437655892637881881490687978886535652955246719452778699369743524407689860651987514108100600608463679968342828626603762548100869443268071882348498670582511924158136285306185752505946599413328669404960324625170419679806832161421679346804950489570357295739875361777464430954398938511952385358274872332177459058716853902423422082255263889174576279518225315448457966067347793151830554557078687646221900298511106735897949784712499922298565795785687958686579760774753777615502910311970359983326785137323503130722624132289134037725167394865974600222399003151028269473768777394797079600784607253474902563443635471687490220346971376481418693594005643674638216295347868783352212147015462144058902233570646031940888028515725333133491115939245116959954511257214210141744509145219541211211871345719125669237039276230257042369612815884676865933240167680208368570272396299934958392295092441232232975579095352520563517335750559561810401131519181111916527756589921329921151721886231855911816476873299540673114169739794412296996967262887262655686654455976057073043515361759792261693735090626737093084633497054746966291031766173963417598533003327911850833795325379080166180524655529255372047704667103975247247170259464053870556873235667257444491973147891687648491029327114236237911778555121836846921822383975043277274791304104880188099063920720762799976610003157020337680577396897255106637355396632653670522494327108312529510307832973362690284011026866680673497552444247705586357138028459659864886556624090112150975501602438665861822050415779727223661497076692067385861027040604969903758852378659515939346984665743168014801451723639079341038091853425670050881775771621374630945783001335377108375906025251534337203904458658004511118501783898246705944000682393657673361698431970346094742207165426360245033166152889778622462030452922649826139796048510737334688271755276085826669076189959638480394114815057011898369028342137835638178145691365245372953365596297864131067441184287871342547965702821222367205350105985852283682129826176974089029190087110887309432171648191192637279755419494509569843815002553537384522667581865248395831875090958501168620090902621268709481547284627663017281691840297391543927757862256872988123751244555590672272830680539737498559461745765280544584821732673655113354704217471961006656678422096507561561429540441775684783833001689448135963818742890510905732264800305674744054566481683917541061150631497723580553340448383167038030622802981551415460502924959615998339997775019554521085969472015434570942740306542873750456861940758691953989018478702040773904778883362822260708300928670157550905860806111928822256336800747305683850529119998409334238189484994507450681687613501001336211046140743329115618072121647722450645480130169930897859976271749021792732620467575466939215616948322330387179403067221908625438640867559500045145056763759716937339368541130728230395486351290517349733625582367399135865246748266711574408113964503439048443402300007831787486072934886710159083108956384117726458420456214956150177421999811495933288958624531846562192638875512174906864455813849436907339650364502325753335865814241025258418385412686069737613306915489224899512645938521738617044161780483752398007930444945567841671761855777820153206267920683898320704366275048431465853470284886872433133196124351153086256533625288985178938088686072946526174584230241921735649278420727164579137006442746580793976204890339264094210693408966326842027627608899753332935177059515665137803107622963507124829032112939396775566655375758508229320858159076916187048598781721867598787391388341647939725055574335367663261999355941128736792976281949829243559239894466646090090310740818216724466747343389668583151014287631743804401436682563192260679389101789775251828517669428646052765944058200815288307150137883448301251657089767583207500983842878670057133549344366620669804007520940876992983334062522870933745888768709699463396612708413300012660891152500105415990630791424790342188231563716665164279319942294189734607574649203757502657627425875857133498488847874261826723444184754462368380425530820394922699805863068707970312178585579093676971983833723889802099380879083287500494935694773823271669343204779410071172459649044812772863386515886824607342865504131016994410902630335265574625936225608015998392413743512744776603045625194069971438203746273429979274477244541186217492204700151294759278101212954508501097068661059644915625020167953136820824772438701386834037670399611255691536610577146272602254022233231767475132599477105492678882812262794482482564311500399608319954629041962802786445736735294939887418584507605462863418619890844003152544041252137534206475684643382631797431158883345104668124950039922845553362486199904787396488623414941291472895878021716828682064005170539475283692216475984973662803374137391299117472023162589555153104079521082841773548611441295800611871241202159213508129699014609068944153508379213763966134021766527939448359525989223210168421236157981617753865271455114678637316802240143931435078159714045412993440260402118448255132786060340924372978691651849702593874482508709770486594286824087877030938700878774837377850269015008572343056977111096081792986821488215915473397578928377421901697794599072957455868484712497791238471482797640796169293386234938751120720000730891704855332541194062286966138485783172912255643189062140191441321038501968343684803751831247887804218903307017597070176126509664635691389205208882294455365255819697180404816742415491528010176101677507497406490364688781743957957085539944426429422619631840890637455298947419656642633093353954883134015713368688313255648651083199477610867703978276282030738597414991414349965969513970278294275002810281151393997634764250190629393431883138879334986834218628621202695110790412955209221962949319769085000526791279402687769569855045892044971396488032479145963487736280857392702733929910500206936179149064579769470461121751144100540460538439635651199905880445231712153745244183691600765633542599487652070254129394024268227201498544989647267560072266411872344899756915142315574938596060625581695419082137355486888390368765192602416200761637384091510205856930507041569695724342610911918288743865319040685766381917143203414624345126377506389302755097370423699146715368617233576923053582236056016105040723953017480172758031153006879245981292356779474168091992270740573158800838290480707555260112800798375259949427897758276609408028148007768110412544358534627431848081458942989433318292232478084383748347727191480059294944296889437967601490103235066182635441670628531617739898870299423754103108761348348825240979229068717765993670816159671731740992599414996682610616813506535996085078083573300210294683026589113426419778945578041325277963036244493666870273997237884980563708244972522640054524277597445204802881710611200865628869580570935612241498101267383526599075943968806265091400051455469968406094552928000377086756690402863702729003063989214031744569138094006428553814291149475352029748252982125162245133071289499901928518686455617611193058784735594290405772151074060568085205072036816715516431512229735338327465059986277518280231300535410726893637624115288761162608524606253553155161308957449394007140564635617252435142357650464116262833554745113117081655835357402147841836703043007362384564859811809226299290240822993835157459547681373693063514468485225325280335338828863997381256206348479339127023292228647520553969951513124426155429632356053113385499455344110265732521153796710487043824200160741121923128073446644992666667726895153182082179588347690704332689428633383494482770317374814813292828570236398835423478075803252456891489836305025346113187702316579713485609966453006298619789637019682782800531573210047401780546599808939084704439666168507654844584929741180912035411873629386461662479488368445403590276998781848793132946176495177177385650033648435993536899384803288180801949815428752294153753930276748323703867576719437973957188459933107804602240398139949106003393910002566207759645410232366715598555234583762907579420272586214240195325385148383536298272996954017689104779348914935991247949710952904875911507073858532486414117067369740080170174714840213938271413011879933271970829297672729470327025441193705356969208440885313417519931873856111959280574033944970378266547586275712589853629222709482352743729573397826972240404492159239108725051670054780482959530859571743508956126326777213092554922293139267413525913841680264531039719355162312965656009732198196452446159093565672512855842388602580925299532308560437337259111650628600061923597297379795481064948713475873523219066066739681631797682810642649621967535182621378452830443535737387263848709098056803179095176030750444873225218375662464645532520014119779986948843223158416120527072577817811105090983151571668469299427014334248355754538850563968278414378223352440596131692537510494410651172666398013808575079068187981760270673790659249855426248084567811798787936949198808742312737076175215799886047988135189439244862966945963251374119392537257257638984455212387318896553791600466047262676794352174873265405653032710670774723984895127540788856922140742672654501647135969395086443109514668291572686789869949370083748662172046153334936579940786173626055177518920371321194980252394567505411011406982067565857957816110963027202327894960469483366020849800235869746419598947033242203303368603111027361552888182824691586291785366839336713988913452302251969585195718266698832185705406424797908002799813080834516400196615001416053532379830654894185665283768321005818740443913791508278025438404123408720307009347045089496502719451322696880960907896844018079683639361015047368479487068855551974747217049379960091835547067081387816830099621532022509428726938696645452676494193075981302685864736945265089473398893828448077452157734446535215900769171978723003168615684364874085263514932000561299515356046240659230855180480476366683222938958213746806118832236574904215770944069396053786063812471464806706726933654301003162056712277303129821303916766508630773762698948144780668514169073295151203329616766190211965742086293878615010158072080463557131749478712148517716709890142974505159382390906620849466488722107291022507356670563307215519243218685714920874519864986180385688509004821602068998882894634305237638000429990269852270670604603582903644835779044957167014939253406661200606239841237100935714043818290348668664986833558292246970183417220348908934737051511894159940250023982089524867611402225999245156604639333613617407814039313876383934386341601727572991939372968871891374560003424487468615288837278088128353909147443252076057509695337622941225329101942206847037555159680531168513245280863251857127348864571980106025122043241869266451461972149162712144318168805511992384192608143181643064468423730776971051081369753284114088652840442686923295850309025113009352125267651010026666124396736713203914149201419262491285718892536801858651205920481260728957723668762999491089546352138808622516021034573792627181123073184680286485294174505386380295882937545348389558162558464660774506944420872295266506414075518539986806214027502257691422361198765155340663398799846967638077867250320182668395239766208067796760353179689872075887744136447962748000934977687153898889760028414084717270831304870545552594752950773643576786132568745953580690623814746811387678001658687206782698315977383427559286321735402308486008957589547233813210730551794190901468921549157882456554062027067859937807120549326349275082861731455415381397259492187603405388079122574624302838313805469899212482522917325512731064583413951542070887360091229263202958710367686311119410824530669591276677072798372021721228564230382408069805254962602757618245074269571146588546137185637221729149925253022919192741734711033375290153576435883312888850806305986656818176168603571987378476128275997921173580634322149828265410036459053486268427663628411403042544954947046151744117268969079179875377560942672136956094959490216904043956189278146125716715918797048606674657474054102096328019379214526685873643604925612475384000509683452010719317479995549206053744548046641626177330324045057926439644046353587730902711721691545197846099611995413269778784971106096308865001482724394004295960869675988691464562658132514914827415557557559188814536466610387999007388686440349991055162012777395259831305031985441996141804116865874801396520665705182188924420936732469726977096851286654479492410609894341844029740406388778137470135950511263009832653174353258969170655995892824878436640957771080240961933324095265702372542259307276017771204605298508507892700061915800406306162054947458632614463225035523553599115948009587700819056354837168085580252757876743092279412489960830917703197653270384702470644543453518484653949190789474031025702864405320962046315654901166251856484311403389742596120843715463169595656345438022736729905637384955939642906234446615174738108346793300198383815307101000962506742223048301647303262860234836006413217654905784963709927349017558649590342842400319741635382208310526382954625753106024677176511707605167813124120229825745257771445038753571110110295622443663167470793961074575531586995888275455817566947953359722070638367926597273293614910668053011725422971567876760572798554417458646323243048061940848215242446668112449847917367707248020401398249238650839289108688866316318907724774025994149759038157265418319318242405872020649047491496658396453510279446965695555632387634621187119076972081946021589656943295847906405893474808476345725655968120406029821844944707975475324813604134794773405470327520011493933170126614676109853436051288727417263888830521510944747308085858802327925335802511382314788338983223904342141847440353903016963125637335634231560378837409056271098526496836473975677505086220024580340208490916900444197141063534752894064656036906988968267208545401276217940831011435911357083463287160730370356705756918010348901316983064143766287790564692485824880842874869618732695151932476004271382118193030080200935777806665981637515837046616737540261657279623303146501548202494619687968849072189372376911246063513620145611328104058174328475107328416199635577970108079281445980169213684390280562414540145573925056401599907154235412919006516309055909512160302266190810669776505779541916897520996311386424333824086040661479906922441521256184377274264998886810538475391459373250239388032206583133705796403194124004719335343677580049724590262739012204257889483786260143129025063938922741152034252324824393453743430577443536703595774911355024590579315661758305452157310699024654780652354629365125647012863216030853877168113813594595683804041790730153958241959787854565789147208972417107872927796110431754942615080079936848599258743110036393159424963627847374213955953834403625583114599369454190064502116064771405194761424047751431638105929085821538633016778359313312507865641567849292733275555589764544106294817309851449238278366141625858586748314165898714076937189322646533306287954658056924207271741230802480328838190253108094722292813519753375878371859482988815151844281154449867548611127005820576621859814032526393817077646148533508670487544674381746023661529864521116192630326247205575992686433094236540681879795512785807825620773917026592688526535612162250551550118819778376412662684108558078638176031812487434936863556304375664667902162551772927322078024400636258289112180838946710642305278168179678816786581150059133667074420691272772297104510504470248453988798723948269608392326579103304257322462995939078992063112141481121623339109939836114413739969717006762598097285254590457276081170599796763979195098293925567025162988381777026344277520766303120074483598351983356906372389975699260596446876665864324101924076005380596101861702198067594221119880952503259318853036839496533011358687849875394920451681952955674235911927956141076806216618891893540458454408045377043725421418563692542765812225244412141177586022831260389856109644193508494041308404048527675736328421675962825180579070034242033996746005007122191993868253306363133169217390204506521180997836431412771830989580127749591667447421801037476571157848019742785238567298570308901551044926873925889285696801416104059958385508823777995449853748270661537314710865088574289893348052045419264199276922153570283552110260516720196572111377037806113484423796867766027149146255239977471439775119862576656427807273732544281718319153324355095382656748475600987887786647830046889251593736494231425348008518978243619346769498988638553784267428730973738821778245101555893985048250347734735951640486568037153008016829627451183681278942248100429930080273895720270033427906868548699507487104303279119244946946824888460217070621771488381361480283308268118857739082270722016220986545352008185348315540105121008793534409221071150040270771931172521601201865598515040772356278759577281521154291256891380467318659535968617089039530194668981426141202584074375775087777180378423083330645618968269262838513783357019640095478600814587396702424629648523580147384245617000975408180525861477070223477098604221156635695621039232228998421928222659776132928784293717307918733227179134996684243492949189045691922835679695192490209948650338594675162031353780958996372183775481888120056240305615851577052845848929179087880284521224197033202322538584049337285473775203595972703488933379117220828662099013340168952318295762595353470481593293152953461170062088621618451018107250558570024025917188537986540679009354949979664990680100739947544885659987163331455289286049567261786514644550655583621525342575308017307111175296703277163473821530905258198227177983085553960558991600587432762360136539845749709163967876249302533893704887797578148598282480204561966432933414817037379395107453995103627732001387189396272739291399979391492962869022802016543961299416384766436655090180492565178546805476121946148511208816301167906096726527906496602248537705868437173019056767174702889649289075741013494213056285993203903125528455414103500353905002846404381114704007694547823328996164556936437923605530078118507898425750948991426548896453438679319137175909749700037784027480453173943221723812201454423781894010743881567947571314075536973806952263511013045677098018131802825554052755244561388142624090526435063396349280836936411159395717676421942804103655916178527107955075799276209354929255620724879522777785259340475450903334426830726471407258150623648278774378937065959792763554751050154542398620753218186266706991421885666945439834020527910935479921355634232745875578066957848946829340956122117941167126916509039781529599890396941106757421745355042330417936969867255425235694111999732555396202053869832261002869927093323911621566724475448727128157588091592366048185838261127028401379565634186680756761557163005867316532104068365271136270578022809712987156470085329353078107280237392223281480798670143511210545705816180498364633461374680517704536359624378526209633473843808498776894541968000730033077116059803567789064763986486475507793130177478336539018326759593085511189522486351185075964466579567299330751655141384537087460482377292693116421355122386046010870984092791933193512915949843598185114835820437362312221227019451970420526214396867262775955181706905102526198489448985252208460265652947958147007866578416845537674809176002848488332192534230186334883187837477360441807432310534536029944470940617701201498909701623484208955364727496138316793911081471166865684680451375059681415181784287813165902629783016083318016422910645670521408742140186581299446856775125327112953982452346715507497943178517585580366443120716820547425432848262478451724464607340556280692677012560957012360435128891749259882557746934877019285113953545797981854755938674767558230834919362312407446704857923140277118289573864526465807790241583612916545477831519620877079298020736571395691124172966908914717846141878126615563591942663915203151076369264584446860331099126606995112171027388203667277830787439795917220966760622113383079976630680000310756109538789991769338075031195973436410245869094773801118636819088912254367195800854488303888052360512588695665400052282533187955099277714704282713923072050252879748916369988432889079836737483751683849194771214908809248893012821214714591209233788801086831016438157036733498131767322890765694846705055854958916684874716442444987382797893127053484585578920890189872579345096742123886046515183491037513684997939307351254895422702453782783422674907536316318966266572753840703052466680969356263350737896940531324695518559463392382172009147422122386815127838135473342863462843053117033455071667542629238134428544022671100496713473809043227481794388099916223354945100225252909550553770351936095943671482471104112260400382226820548759847221811145593460093824960604081260710109772273655531263090419280224349032728369490748906814878804066717155577092166121918119585570370906888374741633654816305800306384980186923568320865346436586852167828127249702331245761869411966820864790923600582812441661829823332072281269209488304061568617964296737085195514795047425635253086347727966332688163439722878471521965855260296274859928480607635316163917667508810442605087228512107516552331870464711105636851783866959515701113183484869233340227505274441017861786440178589296673094785587643940215104483663282357661795472230129486445201907288648350799506103393488192649882571942234197460205070134518015710436785933496456461034909367690597189621455268171282974484768929180908009692086888364905712879049635628581698587100677533279960883099343602647031451977286149035975737562050870987157030396000075785250592576709863858431601403219986992416952266410606816152273682796710701803534608907435636966445494024569035770596305698386737518285200183172868704342376460828452919013394998799663832302456414633296890098481186476406385461490693076481909378018521838297549521439837396985301439541287132465595167701695682577614796864455527912774465694416870196064569602283766684734207980468544652050959806961737392827522560200942147946944725289785334917072309251927337667935066543984367656313088635995534604867893881266974422236338410349489855581793595369157175443565738596083112083346749023224387252563573868286270972477430681514122270384377710561113632244763239379907421450543713076946718383390016884162548392469687006710355599761286160662688335271421410614647082723226465125825806852613213008082546901602440052448308066505124395777951650484272891117201495784880859652620650614828484754614184706627841969171906995038830657797437587864131745662023064347899361741595530491452620795030133874199356894415893594319944638121445225645596990023198117527363558119603045786765514246126340059432321147106046216421812078051586858997935907139549673848232293106675038114074713282042735015392813360835230861047061978813319416641554178395013894315274563511920361161928381812299738687602342108290519930723491816728491754691515438810275182491933429877227643222722990750163423333192780486021888403663797524362517299138863424673879703825418709753889908956190129943975703924761500760365596616488462542164252166814819221265494262993212090851031431370848474106151258039079667171186415926723274127156166166231454657809158632786355777064365356269222531459462550234181101483307653175625489901116560533860417187464962377869297115852872089912997744882187520433542987954784554244732881211351440094436919591556888336821967093895375439827736582991637286162206152652795412619319789170411438953118733946228237199007690132585743451232818025883864063127139420128791286781614728816184217748883601891330915256003231176091107344835413847212680188647992192067107160060655031473076464544935174752340691580985061578689409660133180231460909359585196540846230773367295935974139065267288856924003385545976930985977095916419457251785466506398071680495912799768986027240789887586694031999299759203573311861910075118459949823677632822836349258670681800995314528626270271817497256089795480676755011598545777608118353867540259586106058308562220436155030321923719124845393948414123691754978336460596558264509927218352221799857553778489322976379390245358857885294351193640651112022429817393015040344881845643499661308621188278320373904994927041284672156565826548608124282843099233474438127498608574489785057053215959903691325192536088201197338728316640490636312381772808153174699951748056381841048259186729160796015814757921206213656910030203300120760190812682900492290876912527314227731047912948346276981377246344512222598378786040618598856727262563592610753676775008533939938415176547666120120296644160721781575648039727689498889807249710417725850450596490372901528483099465026464296285701871070274636683833908668956640885496509199529006718246702294465603616220289397330151405090722353530627580376219264856969411865763962128022996360912541173700908149560920096350481956059189744890816610052296022163445027992691521304357001334745697437352739302527306275587422440178404737602567475654553155466993921419007790942118033819992187098916658583252382317460199315230927294423477926140345427987097713643851591852163590805884201948039810919328613046021270790618164676935670819251978181239144340119074752536449825719844187321459844444578636837502982745743123417469074443710584450791741232820247314437851996821596774266305239282569373953690433530524348588226594071516151687321022059339591169153814913517521362127344927692710901754816909740265355739241294242163145003576078811971582200444611791633635758900691676144878950791102216770717313988528312602968748437044014180414013799050568090887992819568459003604938998840665800034190896205610057751212695401475767289903237350677432664408433987872260676044735716136393943727607011047497693061421653646593097744434286638833002947092226046744688752690608678246459402412784478649731664452538956965175071342051076534979259602640749191125672835902546731405569492417149217265066314278283170852206938197968668424239748735610050783277970415648219553969527485438554899981603381287228527844494472761034635879063922539389080014356726410725576899691000412642185004951313799411583769952582278954911826320397989318979649127225590481649031081718671664133917006610454833156704746222414776324036781899334807604316567174276960095137349932545749361520202912009564984211463711747028125837241528296031219587802795274909755078144134441612206181155819676052280697263730703333275385619696954736980349193929712923632145808596907766610223281210235189764203173208060896171012986971721923525279618588238148413574297688575500277344434679417372132698983491134945309056563846667711166568929560071030327110643023286696024696163474039199979857229009731663614144228542868935384543515282554841032239005434444642795872478952279876599133830309801787294491256263592642236050600223256691508140118113269514861498463668597530378784773723086151059621902128405643854745439499465661239172114836337564090270115311747009032382651548223220716356991120355046325417649590760586982746447145357559989305269716345074629277367927734598435121163767515399775946030789482365768377215201320542189110730815181472904376712089618775625398438612975511811160308325160153019851637066546711802817508780420190240913009990083416458411664194899776022685723419178090184988672720599724651727020949940183317548472282754830118125869556594533550179587411632897652363827515070154312083238397679727653848343597547354484335127020858247130539532066609104004807773761278975721239353327253103494991297513869492620350247340077713065755409797250053083971972172718495327217497660198128578791942754535073444676233132394204752285985190805171175651978506127555263773056216609213119399816734640722997581152575165518522396382645806822725603289618099903603927869041793165121777792341217406641716183594185774079771179845235435765646815743304408458533909428206983479078852582122545572127956412584185426945854708896285648131007681880424049345896343720708267171158810024714348450248445810579663015609255439858934614526154047884835859148139179093241291012277453323241654428778909278514095798548160246531567448166049202534574057632150180020603347951143760215064802589908202884278892316997041914631161319999909882133354732382274408747367281764380864027573159755765457164494037746176121584706030312201833425068656805058389273993978631796851750790168260836140482224941087355590229557482682105976350291873234916046282176389440318939710408543039188363638385939913836216924791380810899100428186292272262248666597737292626451435154058086742001263076636911334577050036708296668039748237375152831039303337810602617171118347672756702619264534434583585276417615637374743445385100133263169224723073332091088035474221906591612446331657549267999950506015856436973629960781101620621247547797252158144422125691885324082715550642512084523437657663679437718748387844123798175115674185042457780467293062707214139583951027615478196545542786979794213573607860614730756523777302113307996783395388008696059648159589778139192199093258022484852137467232572744638285650415532584207441620699866606768657053659692268985826448012037701913310868951224765470479762941813008170802596908707837022893578913281776440405192223259092874967104510872428909855838909339438799904477660523536476248731705320471728511382157602298064892743512612172083168918067051577037306311111450991461980166966962843035602728866295710721867657835167602436667352325382210719416678386605035021995779790916829216986167477877018232425636728807612758835333269069041618913153043394806578457935665484642210197904221887655086061567063921633269463042133545808693157627826860334242772252567273189854697744459232621855655991299694663807786709956379432301906092640275709524155709444933579468017580972067935740015387527874341933059751277692907493169919959036904214098437199866286416461701119101332823483305978466876009807809397077512800355180722152250183282633116317029261288159572870859257631194800189406484333287260979769277598716795429248943118994206269675017019159768706840673356542960554808100374889535097857325310143142987503537060819184841526945995219639427596694207201838902596816286263512068408216071203796096934596642174997731839665582359266586221842191810488747672352778665523729128013808080341307710600560248877418706923929874541703527464529964480119811444532448639048778338229367725886162325450493805873610268022762836891935953419518148546042152535458580413885991615163360674510903733764078449784030949936254246685419313672712680716702446645727417976811712516874320311251031069585376106242876128746930280660277573019001707749937768440929607300831166893919454794901142337068317471468842942336467519193912532476951279884533586154979470636669186386153939039143493197105117576918956211984240236768669723141567035591540199095855008171085114344227399857895078718628049142126553404646968811482869602136645385386329078026567615625883034817139265768580597021883319238236242157619833934550140844160925472776610647786996182422592697394702015627881826262158031025806565921011835957283856508897311510401436916270503798118389428507154675214948765504016723511694005389269919618250784126610018024418437049137251130766526296859184094545199849290153484169526029415233246714595307591109351136123337209577697626588370770840382602064669661450119283338206880231080033456272044688646394930747343819339669222541771043300288484917012864164664713381283551243912868714030525508987808568681003422971190321698094269260574678377675451104728395995687108263695812143286074883075364103377889726701635193857506656022248029220119850218553875336898370082466353968359609574737151892840900672809606518716247301039856842475435767762337041724416689578549225094954466564713491596807013733018909139859729370677707254970225193616047410427787247790385969009697441758215382251235998899751051735434119857562065152669431196487900703966537366130495739678781970431416557112932841466783434798265201195767923270560321629449855723691017050395281671336590576355069671710832546009273439879331779049730556171935313281455895601252580945467240311656671262243071989831013200700647588887969359578772665912732990317687339462685877383385063645728629950974165322085911481762792526714541887956262828199554773394199842990866010464775883550454083424300887558140563446515284738014434880568435522491160121388699834645294805641454268491575326948783208392421024450534630531476409875475685448624304454363066595801001714557624757266269945277845322022239982922839148474867413324691990908547390801164973641836777224848303221757822943270009933663246447850872343651307118039750279250413647922300600669626662730861400690591283128402042726879216289400259820073376321499788029876852361725603943354740477871281216490273705051400682682494121621259778239386237580490216976005946092590218404822892019899741335998880433831757911565507776389867199065573763202103375734315628709420859521392638460357259915923068748477982833343021067882358458380069183207492120303424403052974453149960450243252366425237697820201476217312918935015154023976737893137555604772991163506170850894525018980655953283883024258049143065893439501348438394163076474130264661206532425955537649093675270147452618537966295756603961433009746736675271479917050852148008040591646615021108342011144139370906032927157626258906847248546164596078690849032114967943193270934567686584791808601389006825485409106306539202265601456772559418062072625384023305945837859608352756681701594199368771560475604074900156041655121946065855940710187338805273998799782958487783843289263737735587976699436631301334831210770721307488818955291450953117920999912550304260357294504528114207086609186187573668397805653920207808396264138141661427130662367213334191000970785573553396108802199658551710527550798217448431873345645703014988660170224982840973726485025914557617026333409642852214147171804950236873882675298812842788232358681063025771389268966811669344440474962040677962808970003041624753234198064882754831886603621919358037601666546561200787440465952905350105794020488328976763378399481608459562264586924401803089427340495303464867856388741626508778677854068841539386823622433159122450944774582249918668011966939863840877852002641734941872377827831991993773617871321778058319630657014071593190026472329355111864807128639545329636985508943923768308681009991122991123818965566267407753509900879624285695700531215378091747077140924404517284918271666561915512368746478507626026994595246538190538680158217293693453491231517834022962577875412437954230714193209422938956395487871057704375162951912265913501425525564968267839958707736907091867313061414682706578537529057470707271476472500016538683562683854143325876990106120100840896860800163746470082624347002304846079687039204295871512806277745206722361304519038714271794130313954039290933634090093431545991720552568494339432736485978957195825364014324699869404056949850754479797543428940286675126109962306987668816272017873520741905934871669268632420712809995681300971112780845086624779884702038519710720602399960421987618104350654568549347623886382812862736476417272712691039838601522915456936554032062963264044724529471831969451670467061398856977205694846735828434984214432813208841863408415030259637790054554686469329927622950753906160559068845380867470071385571875702519555073510811936259509934407889319418962093720335633279214907788362260391862651690944078058276309364389123826539116558149124067726830476084837620073196757768255938875648635686596547698551944957318516292320366650902899648756423996868148410850429895293803260866442052306334563770026312617503364712043173390435731347241000984647386337163269610304040959201513324871702400804804880877259850452961344072311444121909764617852855857423694609213088666093804891428054128395771382801487774404613653688999520987528835866372601170145903697101066634421690687262656461587141734948205870331260964881900284698611494722631216941044565092848686366291609023268211803134180855928184731648299274592687489865386087286445247975059557147317967276432246580890694884276056225675529301463536546104567997460748420039297010521897819307152437423214461994574574947014261836460544248227060394435041329072728379926030891942245536144051235744487885775155960561894848045437378372712910866084720157637453096509884693443079403079603687670169949232380585523078657231077850161727578098498135316682815147375057512862775744992050509933658340567629241233791140700320651558736240912975803549285093606257933630897973790949716324786739262784020025040856373318271813747871321512340987066289236252601093167013583534583152105272354545803000692967429434751669386982116456084180643654647499865058910953751198036932497218564752721533580938228378062278368198176734323534298280523624402158701272703963326028197245774322207187150540659659888476367734421123505143223884990353449952204337906329772455589474598618544074754125223462358515258663231903431061414727286936885973680988171014671357543689109579910299281745852985202844946620423463403813244287080920926820148983164285718773058629630290498193091592063707951925041738548976352186769690572078943240816615929638453398323017617299780295515923926036129038182233301015482717736918148465578324875035701061811379870649767504933542747242024704385051264267819897465768619203500719204878236165831851732610422568568307966540204149170613919415612012550867749040790572922852647033370834027238774301874347181375817512625226596490332156795877429392141429265763898190945989101604576529209473401800917723198979395958082251937736939442864572795250474271208333107904627556472575451926307310772281210460611188658925711818008374060257424476221841274885674816490089126920887117350789922127266573413613441566524125675449604836053929023925690575870502380543450243859371571634443161505385886523986702549383270049453397715847806613251672984835919178844912206424079692077698364784401531035836481948866518850035249155697707506513583666899705475904162536850409218842988351640598757650462397869757883254828159787621931634330890715107875734547810842601942012509614031386275969989128851557402896301402396223793618744595599571741969514382090650664177150696940295677104450381744695928300287153149134788851644312699873961930597754936266394616856757867297779118965867202147111363103496913480958269538265071955760565087115425034700298569438156825258073710718132943530292327315798742287508930257606769538677650130758149224275255262337647404174264944063796497759839095654533685413065226860221096544040991001906838802049114034746548385660227064407647972885028193320508560007881752507291938271425809112495532627861941998519314561872625362808389174699666634674000710565620448996881209180762510924949102590185005214699550155879506064243767856520967474308229557978907944322867174736130377303025011678972839037905215008019414040934797020824556927721846034143736688321007385149499995567632216767685614337124198335707370294255649761257458692450716953952296827025098027366353782879826222876765142553429050342927208226656788329951854564362518206340884481661224860377127183587950131136682326106323161878900681255459250583405807767666688766196279291188927448229808759270797630079654050851455618626457562527817945478722364090531851936806953298540052576897106026217810016960686293611958421535396606086119139731905799718494154509548443946369588107326760405557630698226388672109209433876532592009343009371722072344410984749584161832278793434562720333324991914390904448986064962896777262500069174108956343648270184868143217646808560326481618634616326770345336640727222596785691154048547543890261642491061729313120571498521457855294417731170087570598296075674069212752142007411537230998667894858904971982548082515121288634991106973536307865179750257740079708705717903805577308481925097511350906007369864035227114046364877340000837631534603096383942589885655445796143979119278713275630852904102204162406514589385846861411945825009341477404314981136550329200469080378910015132804588454690192947287317969234138411561890743853371798083477910743374558931431256206107752778476584106384534699876181218861371896256039373060596315339858280114144354686513276462335109415644231635813680797447379901953517784998568589355203912862410115315260773189867289199956716071364494631137270703733081079712943175128602962386066769840605747668165849877716394188173446006977510463971355672492261150480427828246996151763542801333585925674924054872121655245788812512946586253375137805575312001759199679490936209293510322310264101603511555378130379696215836126884937460538584541541523706619011922120053009860552625704100296836324432010305912574880874888356367341088769529951681548897078850921752256819690331399761264298131723926427325879962767994275029913067266313866019060030197375984132418655614450876349044985358917077012273878163518631953962627246534330094810189376648958278720795429006621411796825046110032485305753714656292762596914635173159479837535302420173867066534910119736294003820593826243612324785455964383713937962364045814603909622574589351362208194340502215077553878430902211053763471274265577027760706361131958133545172437843322779398766459298028370966851360326636937827157510162445601739441251956898376432111492023844614641627363956102795482972246973395694595418657646615384683888727151241010956309615293860619386416658280065320178685447224119229482511582644612946945343453653348395572322704273010811734490135347228682375946499407989516083318764125002894415438741105158127870268841979937312853468549040846375862798288583122443756644709043208516319646965574722384385999512503674197933251991866098269587407813181309804042882409728945480596305149406921006549557810681872425084147815567223678082986407486334970247807878451215981962354812210555818711017951849685592773916644426922313938173844595563635895665440608548011775673632816545261428333719087611723813278636211340535225443633477761048035690717208629960388096329585226866937188563567765070100278701983631217106645264079973932966294627846044438026217457644456157602657486061214942443853360886638273345831443636028176851665510513431958707530172368972213211705811722193522129465404911785382017091633354542650580537271511064813449477700158541470125831312476863526639900971226047267594821207148919384445252763508887533330733183056078536334471930782633918503823880286147234915851670904352425841118319781800847474379890596496816474091272338553760430893085006825238963170975698141627172621133701405060756455515756357627460658471700242176675381264657388797040389112681249413340214277341616543881863870349403208399348295064409006638653672270701594726020144768127941122623475895152630633973243538687309390910555197231363044358263740281053682557668398615257387371590732794041935940036168225382435082020293598186898361174976835214000683910326326369354838395503754171977002279976333003005036012014493780288891151170547158519230027349970150556791864596585884138397245754436990762137165233386995567158840906655514920849861929502086217339869493546674321846511474701186113790262930537708168424898222558903776342536118162338620469434671792777705997166902618678573278074575055887741450600265316174730754989398126357234426937349178354635293254188788777814545024269105610146922135597955702179536660142077454769776365253997254077717294456258248461850903339467717830803017795113012592835161382820397084627607925958791781420316193206767277178707935785513474259769227085202838166807037905611507450397560629952976222260793967522658846720335033577174317050391364460692531917413417724914925183962468781305453902018232013781409976262461078107450120705685167940389980607409397413455082907402712728194510761246395895528843701637256441009835814160040142291768663832497468711338160181197699362413017804932309634302916113719301089320003032661335281284176821717033984837358503212677680794915790312266746114819610660938880489909256850462580043818256089231888476883576765883390963680385165359804847117260652505879766266426391112334148199101828470219562115233646681006909304229053628102635925213114537966788966981774664961999627376635313108840372220789102222217884538686204859611073496638545129568200911134450007844391729946423748406153879861347831672311499484616497274491621826908659530932563671903351068412310494786168223872306648315588839726105603597101305069695373825542014714649196412825892486195297656748240997393814714857859634627457268106561283802256152335792652796217449472427133224920372301170910230785549875642520546804472574392963186228667388898768040134962278922962451880760480789083464404804369577723181589354718237097910809477244121334502534976309862667080055578319470272710491707409445762711922256023690409330099904466675704079643154956883867176469105942255878302187454741569437499341466088534152787528122768987963140421648470724733940184033181237295951728079000603359750985192212972468410299867634955510259962865520500681601237291935486423692757977770831940413859230955339569335277854640588550807743753803346216558768558300842963823081577476233676266261338212119208008334588449158892446232429669844764963724411086690471203511011301562682229884924266809072674745008181901894483817576844848181361439870622180622647098879737506892796181702374717903548305474548514446738363659280398146810899863597948921287032392103082464092204165897230057543565971786551959152506944424633461674903455881927484558643507217092082651002683474866635384325807419563219997561190048852467153254405315483478847143273786917627708606905663132416138317608455369658011554471822085090190707091023708683946376880370803280212284403266728775784008189598558450712686542434080955458367690455243327863693865984734117265343751037244582064651134311041665205170098810448592176638775741855228268184366714497707632783581383542610523935106085867709939583653323448509365035624260620532619635291881376756273836039156932336646892660797469220756899414497989169364524262707837207430013772666567306494666016857470669676638489459930471722624019021007368591268546616280761188756539254734226907667197554552417148976450308166561360711616636565942226318131834340995458204557082501415281624051827455004618673679789022768465492612164340238721236870724431720408707921671087646513653761783272265856249987105154615060383690264227663560173781880631349627795133057175789630386268780781609652358092249233852752072016352495367057549263918880224544860472872893502588451484851321065530797911906458196450161280473085409860039891798814472764325024812194208504796123517138415095942433086579637989588826517134135324599600092347958890667749151721557019594361675468693065382382991657076797642172515706219351347577131424507349514412911863903630515617116250901739206838278498446024790244082897049555348496888030857520223230759415630759187701721917617415560695987546848311216372667408608326846572767557490897393784821606057605663429524610399104081495099028761182125778538428072142707429510657397355179480787594232248683246421829747505309084595656867660925819048622678081204817689190352594307686515025587786144943454466197682306338226973957614455007474905975157329659094802431976846649989671734101130256451774241987073460387943567370158111621499625879690463029323095535626263480040404529775231768533148900619870496637308216839200412727345670533515910223758505967213176494486385043140957546432118311283651522712957629154374098623329374791818355626989542849385134274704196870160823759285109145146231508362130388093864604036680479523973021277244740561196357544538362967841175324580727989357004403320673449475924334735057237251491914609796531173074452026992875836131836397152099100549031172986485642059379911961022856422528655779557106427524692531799132278008679875858440922861657646383930744715424421549771907508123806531449945791762106099212472060202833453021751136474748021575303197006568437634557349014656539293019646917021696664944848994219910190144709901190022181303864610841344060744044127952447121582425511990307265968456572015380207485562790309229160748963536664388249820394546212066931836953676507459383144699229520250404046265002130509541963917504574471117116026950076642947903707753773302609145618746282444756330661596858125964629797702290215953866663007450204072843822609143437651710737733643434967128448877627296666537262970695610853488134034626502793215797568296146361112739829383637195252018708972766564910903508029168370532849649485661545650230735968856748681628591322976973124281458608930396073736841250516092075986549371066674655837067149541629515909477076637246368102282324306928525988874404461378282245168405302568978766433015033290751441064621860364274320691638562384988161857951684729969168736270825655026481006407091151252314911581579952856203625222144759152442692886230228919973046120451744914128667344563403223102607159558260968893644259173804088967692395535364252976156626777939352937965959032617472455264191078963061009798316179854552690232951662196217940926766908018579989021237712040038191984511603952139241366699813435867654772105848152703844752262518193135606699937070742303793736100024323872691646459706261596556920119762725941334215359371036856028840561784385040867945844799110449760629454291932411896793269281376726236758299429824931839327606791497264824211853633756447847541426352633426588546003919273504934849944949184717441498399124303544798210886215025696148104688920834697629189279645252822223210219002581759849225779208656170236593302311497933190512498732610984699519930604166586897214804653033068874559515079457940491270155555037391688772447631823437605238841325655383508537295477567588146438610700501031830508607139786799707449712410075306289920628275575352498382859973690312860855043276509178756485691502978185616947072221124287452961946962957537923095066947446604749588073053879365069704855192446032984615423101673437767058214143062166504467569202827377691427936422046449910798734846118533090513636707002830930189950301266846076664662507574469459120426206377788384561334878386419391078037002625765779925580425917639679212583322077792564823071202691462406095037307611116222670996776641248736463073250603197527342002015729824425979291774319743316349199651200171185424839981864039597924441991271158866188992462714065097427813279595239060906508372365725211057147772169869419914967913622911579951812037255745712588691601694888929885221461144924086271978839787213278445137165319517590804331700013601865878093977196671739912279123310279835952219533954319722351756691164522330656974343226281904608269716457328743662177113369429141219059778152510733974794884763267757519395025770680723443913887777273086326030328554908344314675694017725776604669465769916359546710069464015923431150560321371877008774272440677696790405658094802851431947285320758681049718562544775226363174787651396589597644819598883455156035668217648861509003395910939038934540199994093775644660541114607687404680751411649088090674862823010497945074801053016046447013256409480111310670425790812011475775465309163477445099973355430140555138291652098074475728711179910650848082364661003527256093164209373383293087973424330919291722524301849550051596651151364892060279052248238272726735635535860554860701265463667456738806084728599963228942360024979200126354451703505305115662148057628134135825356073593439147263414807515427606834772790761056873944708211242427924359721283843771665666990820301107065982061699977519562262501881132201799864782258914339971297269755489792131091645587105268010137597625739148298706148558360769099094196725458024657368237381527136040543938133067028602973121187609305317871232422616113975485910946828686721489450349846429717959454324844486356822692951806777366140007518968061326113205200216821222742615619796196726715299817849008183314362016522424781657689427739946674625138277328161145387238937426558148535345957276136023893343453831956444842182205614914431398050528459148257105114733210957877973395251573903864243403817312917974271255239294024307630095798421520881331355966434657688246426905117579151535802221189030771270294436982819814825483170088048462742139220781023165684336731207033622240864537618462659319610505372383099063545062657034795579059219062091070874828712695093529101567253554920816631832945900967291119410920425850613139148810668380138775787183974088658565060617301238772574564934506654319155835702949581736096508650366634821959292577267519342812494538535945764348913541698904767143589205406449700245747074186702660733318013513654518052466336263320763826241755947021487722236634006676080178466971300833317446784805751087024796900306658002205559282533125917096232739329820463833762930758275656957368135853992319969170130838855097805017876448407252478928879143168027400173431940429168368828902876279803557544647477471735457285630776116144706415156175166586019840307113490242584127189458782530785005779424786319907977053031083621950714285414742709041009277510303785002664847943024116851252281029896966952575992253868337620797388155804301405610458305635756572650888636626746769988683699248581524697566664048434559017326179009577597585274098137395982946134401437024931932088209199574341044814069328887611210094146286573645555783043238239615128323180808899115763198269861542438543337325967640510809416124963731931498961217715787145328762683005026154699113303307524263557337566655169416501801033481604256689544867780845302576885327083160698539685137998244913190057655487008794495737382806943519744310416701811372496841550723855715794855156544663348679771681316408143726432570417930246304103147313921933411267845040551943590549382895165162797201843458110625355567125626129590645746025632570069152054945237243842668635164634138964427673767816346463467825051446757190197013234271036690956098876374696689641586789749807606125868274148875921170926505978587841515219064148060428520914262431486575047316981041091857158954636226952284657966734072376376594877220959349144476973319069488926723990242697421120691654511147539519837596520088324586877030884647372669459821002704051033879811701757344015220153578783626984536467073113201690152045302259235001167585405878566389979148099031075636065740178853268843846350859209777744231074362422046868120163306909879246782965318912296581276223548468017464273707377756372775029628706363910557121319899890455887710889071864714945873126227157875660200555478054324243324885502823287801653494788460457076655795527650170115481562548659797983880909933738761668136796101749883568650165302047970734082679803894399438020120878520578185045709426407102918652975330886942930017856354730864788676077047066323964697724446858975346731035824052761488598762668889675841164446814538860414019180822143036974693476291723950532913134901466766135781275799972649089842492832349622878964330593949709494900938058753674694325091302325296837865276777417044634876736821862919842038905756729479023530896423989212318377749625125822784339031731490221759077281592926059790381539830799128198413396584314836688555081477750911381852587249651396111263520747351541031217600946705686449691011522059909231042743077625763110120488679385036099272527740087302486415095586167248167097153399152083574665646924446851047069145340727770803292563473044192336651531754584135044107652506497817087187092021412767973501518207515575678083066406566128718611755183556106014719413802807909733267758127643014211578993802946243023656317352581299429874324275693755848978543973360190006042633792543317741687937028324817863401572989636270888765666269223395026243333124054018657232069126569121686870087643110360475166850764153583855694576779202233423167493254529184349456967550814823513900555091911349284225669579523793303919387159586095569743592878201840846313988260189159273842880014818852527562777175631290781211355419461821741586046144700434379859235721208810181795347551636015256532191131751775975825834501605498285589932513211181668125256682349203001008087827079894601742475311552814421139579940838599780286197777921376669593598260089977169390365963185191906115957760931591976404164838435469990222934586488225542347557539575586546065856429021810580070720726094633205708546191733483795962819020995307471381790723807038806714997785398202921344893439028746834772159518978551189885958976951511198499380355293874043351320706548944440728326043156406216357443548551875233580919691284724306956842971376749621446102020070145591203813962753064502652378181817457425053835622004003375427336936068579970440931499507040269799353782469023713395423024699259058838660819086977346427797029614461942002512402712801619354988624516841657903845798283009011234172151037522072961960754802062945582808323711948059452961222441359637536586568539917314885467281960541964476448468214878230571042455938213002820246332834457321276048787376262136727227808854533996327785083916785616189825630522987734709384180380869572498501811027325108282176696041784720016405273022483005592984348591573907855854212400283660755544452960627383153290386447067725302520369346765785031037309638890778284385303922558293315291749509719883215252845565605991404574527816719516984618138386577614972661340839575623812955452206242964881043248386388831988400058455357378850078249542868270470774456982675086192608862855965052867084738327120500683010287555388318404437036812362978907596894961905788550455240521952371791384167128644079522421790826415930561257555612329687509960172876058685204703083861956187060725830311386074965693811486189017848794771938588302206540754538652010112019248272092934094087444004301549460127886229033369652205863518548190853234769220445757944926912152840130165873200978763700457095297253861440633632844012786161259685407631478667524750749587894080394346170446341747589843049744111314680719656022493355499568452283455982182196777003965388284396641926327579919524048183930856865697746644971180409563121191675820416783440181294293299043929794781850474246616200706025490122283515744307686739979112448530223281672427556946155898785597777314544191756683399166369393269427394009007276221657648811290050055596677394082169528971453282234505175406867231254307417365342855597653148229742537186858993291030829774023865941463051845250894940384496776849195775406132574882629979718300107109945772742860762572845056430825256452208481667697965701805149506091648399173058857495626177796044388167816015710861573464483276274521912515725978059992780876740955524637124211370293243139242029447528767547340319489748498015410885064891520457208712570285707312609894637389767850165319441502957392565290787635314729095835565423603385033914890616820720832700709902273056522098280129658029636702722109839806366931598316131511235549950983535188719343649048500179481680536828980861853029648257318609940023786874091282396275730769157388018550059315175399947930378453800212753907081495942107632615488848161921078771449595635906931735327027222908874475217121116510458476258885966067857450273246447079706318681381603874014666496628481292174700169577073348201619801260399343447239712150478537075860731232616208073277793347403940484236669234053366515895421994933454318531000626450949843484818561406845636012645419166639691514438291059632687969134621500111715252032556837177707600074620707693848906768440297993273212952601647577160512001067284441942580293292544614344655251608258616125440831499550661217559008819858556344901242382904952253105484726177564514468182097755344104176879971085239351406870837213025422061109119569226109209846805430857907637957410038881660993955133030476017246609847455016954695920857824549465758845036038689605394463658188319209021435474774905168257335270119147206088205594665736106332816485386732534742330197950052684826376932711335787214367200552068735594702284662606880462883187534579055814362702494266337836613853516408066206537553116123872983617480436238873536123680596361974864263842583390648195501839612296783762170490814316493528956621246695009672864024054517121534785309824519231892666112586241368372827031043702613906518690206243337796180871991548058921843186224848805735626133731063429752180621680672879029776054105755839587046330109052261782883259169082439089353355069762586959286560443142559676739541561089826422111613011041238161373468234679160337581888170818271594966609429408454534466410827940219772756714346728049097161134137936725466127412201846777640107269751286561691963237550484554576190963365529364378947492956870915601568898170748832742240522763703395707498483713235424757366162045573100231885287166298996759153584650232481543194617753688760725243850304916638283341114923916705304483249096000479408466990626334601171064019892584000634782497159103101559224194859500652716310926140325024526691983427053294683860934603171975829986958102261108216309544028662679429228009106175916875906207097556054955660752789963500158437220196362405731322066931985733029520842265445197661252051829394456761451356315517533200625804983968888026381424752324620638218725298971075577069500648886890432948620583163325913450722073210794867187915794278545504320053160072019686079666839508251665644885760644790907280939147387697098223529358892670867806880151844403725791858760650497060015490029190888202085811996804078950131082866190604994355786924318302916710110127260922697123718581977962173563229939551280359950141991346964301411756063998596017673869097838968380701985561561600400174405516981301512954865853655031501205292267669699455893367430558232155834084299941671988469899254928404642216122331859655335855708950688293446873975416439320180052472441913560739104185093927065280603983740307942499212051434869607249608480262810445109809767857587109936638689547513446826264622035390950971049435440981248139534837260696009112607327755152416957399166360676135176184506255376034551353756138092908455366589368083723417367273233756338429745772513312178705110195033590280984366413428666979882407502937392702003050773974033842543912198531440619327436806644285106583733347496262164980188845792005468815881009703128381581775337148519586139254146713263519119578466003578791397234428615523276654291310374914668693546803272109605878808086721058126456405825501912210892486414842449973673595807710662579212342519868488967541673425489986898566134202520488024197831971014546479051955897189871042361502456155222148395996995600470035911100663340280192496619225770565992063174397691811519454132758932745092230474209855203555011786883443398269203382720180495178141575406456160444566322921228672281307982360967761046314461452755678532103584912916376306009569447179489860554078322962317434848832902841336813124260890604365334370945244907896719153891984645854440248386669998424166407934085371866340453678463142051179179334354870386736688224847081411891079328798250225134128531223439315337880095223156215839599155198418499972330679174749025979716229686835489911826451466165042627537605749096276656889276363915852587247405020285587680265820635364258734601911242149887353438565065687429788450652142020612940830064610187849190104059770014429936892299134289136277860178515982806663091233408782875751955660634838046324235815225938599448524455706593742452766841114527977794656816438812748322774003739525764098794978370547111486957014629971668436793100904926001084913632203493429993783390537219499371733107220969582399748017625094593908572816420345350389684764197839455293174006795170501554109468245927163507476069304644860759693656071289966533040490163236964637877288431117404242896995270248953804539263900369570231544732562858001871236487621024697530184217380376445133503567825526463621563184417291205107524120380266310266137166449354692909554230786481947190329048025152718438548561157072505346576707196540163988058168466592407175496487793217528256618794326419395689491347873812558938753232462769297182753852940042821631740156341519833202542783834107146019677455880337808705228561713498561484292774527300354194149817375001751580759491934673070095750627674820523243849561044876747594243035087486608954584801508967972254288179263778531184788345162111844565544749339610282161604416164931573426135514407577171792628957285648115268185370944600650724877195897597767522534253473866426028809046191629738072148530341449397727033971049498400756837984238714007320260388553935415748641453208347751861622985486872510304415162985666337858676146149404670414485678434769610405175196628897184649094667720945806663623325034631505883839743970088449122807174780780923711871606992333983953337749814202059307135131963710796301894888003366198317952362837672102713205671702783827257132944931024936882605610371122199892135313442315949396982867997575108091328205743095916465368738112387867979141531365582824764672599407789884220395614498466231111075231779496488635259596951454856160840232293889691340563717258694201349908592061105726445093777193201472176162506860452881476747989720676679815226818652710817901707867232125257483745406815955959190312636818501052297388233523383845235436656868416422907759905326074674375713992022115597250330497587468220122871277656743953960810866672177252679603750986389141633557621730790554571223177109003961461214482937608875145582950932102793225926092747710701039230517151153693288050332999755808969807434075717786747558648875908122791357376587959574242278008193673573276114009653840834758629497781229097062922375748374179364347327757302037781679926755742929690018092434633918474293862752349283563669681831601204940803002036917705762794448495486299704362431597894654409239862247676067841150768222424323110229384612643437579500752522218265626916299087694712570324416630167795180754833840652572229446487041289061189555147402547217075800292155426842476820942496540513721885568255549014177737205985996379762652132712539678946694934721126107537244967518167228288468651468425878909631749993859774564394926783949154789420980658880822268464180093147059428021080916576752332359655571785325754085612156669841938507786048410330370464756987599765932118650340354604057168451455018842865311029010595525923807653803000368657438740122446071851522973217345289198007113540228131022500381460811636229871441472542178095058608175287508700840284919096141615152963601579838251410542078116369360400823366783771047028740325192372037621345913270028654878761163469820664474440217178352639185072718346180927513429246693054169963336747388083609958816442303862518084092418215030447328033213058039213886058962969217645847261157020804424084044893545765223500044130149273057764400700783475297996309294030443419268557011748292475425244561359538269702994992470788580219773070371374655477991109471869429480163919667232518561706708794074203699756304707059687417205749847862578010471707271663610048787442151302434585261785623420987588929574289819736995699824084145749454036653324797535729957321384324156703672870149855103124526016063890744021680781573676401150744161866997953839042455955453008845621982981313371628016449942206872387123963942092085972862289514505147865188647154104603155647965707042432335759483916686633414108157377640934442441664910066261234331963246560831486760752409540370917252437508935349086785765836487423351417787405172660120625241516008791210831942897777043423111511053329903972873333144595912881299436305780120402729353513326733789253148445343250455225579014396342590221614295343757966417861461396365010351103817309754362041170013628875057834844533497795895560480806289637516891317387283993800236221313729627846394251648696357297884018006582709806211297862043928472587541157652685807634701581249090513008994607977685576326448619033245168842188754540793648393597221596523433150765674381576328043873240306548980429300768293973082722337224896174560270931819845458193106218858651552815264399719555296143444790504983772897311970749415056847111667099496441066375551418588286114687626257412581860771106240857147632016476223665362413011832426257654525135743547326841102849031021906679580442467686071173346200457928711467205996571043854806289573760738047735493091172530944356715708984347204872008087305413802414930825295464480113383748647619780049715253834341071595631509485616704026019445835550520051175520563160182786693495383125964511644237931910612693059958409159267859288221896775402781621217286595485768876274329694370037479551337707201380301004012858477431045283337827264067416152044799290362184358611192924473509082757851555950743159904629853695396533877928473019574978253451736158367031574931231307141874347106319871545935281313468787634952793965391001028576586165109199491024760508624629999414279773204423428709291011175855626238347592741437303338943046105732248834393293845573240936562146654058053057538353991160598992713915580078415179758704367254114888203784229944947406144450345281187462721899914877549732873246942172548612679355421403829394497546435802399769406303852404595504775433809984652785942054696223433844120311456710743897816788803234041514835199032406461262109095751172831874897015875809821903879453139677364678227641694900255675318841386275345124692424879323452825222720100134270602992021921848877489070045206545505525211912926791914190308911394170780003592991996051026155043835210294552147741303398247182094839131830191769874167660240679641494714245013576514780255441422449614933887702437014137797996108562005397275516248270051903326234255131012254271779751256100156988144594052125387307276271946027462719980089895966254375076926408967041308424285895675632928870877044813164286348165783688143919556969276028501134684727292114761304103800079949956587129642908407586089747082611123002435959648001273298479846411156736543542259785896052545370535178273581982483371662571568099769112586425004966763124078021101712122701400427373639549700393800644334637434645407213010426575072896215825231803509950792509464907472321277187763152390160346076381329721364333152567983217599958924035998313414900719298534474579592981472797734258023397979837609796426403555345746775631727260650490420279831349151664476226462078481512010222100275186590969323342974435056687643205722084065021183247829312640267388152779973645009601413081894240006964817629763348399813956880114384967122630240529737589241142813949831459673931956611941838169540440200409792682581951512296338521575586710014366430558285860902516825030128509088989194709275011568076917634699780926987549135408087254118006134925756025965816616397382444586316680932893175244686910068614575140086159817391537481764675347220584834518410181326324778327164026751179060108268440605250773494007948951199421874128248883966871401925725954926310316873760143436452823616041425875937984808274550439215395904425531829873197365732722398544518372818632407113460219012823504025811547728341769222412869784706107092515184091000579190411919489265859071939251961914749097141079203806344218339866579684594067318413248958877586694304346124293042817707236644296815440667929148775591516054880376618950190567597610295242281016614546339142294241634817853056863699805615254064140592839281746859916487342936697073250974401693169474854455243866299247941033664875788442298564881236856109130394076029348865996343293179735625190189610274506572545404241803328926925182501925690879869821561034999880473303559637828951991339513340998369595672140878183033461209743178702361980679162639950020731007878665341813564935470526138377810471276882612432942707750383731547200892419039557856366014763454619641715556420397049143657903655605651777787421086722515699461152886869054052088508110279566683297298645442607286466197083567800953910356001721260061392137022373888298655541628804120986565256115254558325721853207576350028914461061797468720406454571016389575919824839114921894933602944242730712666225403922392014887080308323864917544396380974029657237324905630688937963568843423600109766188914033354281749035216717081103109900149970531647607156393510638959992672520286300749346415537282812535619367234528189989728721866496740845872549496603187117816032307041455589605838462914601175985510270797680233965187618753193290778605032686573896954557008463929882004883791926923660267026830590451128781357764817344840614841706034304060283963095963907601052779698733653797896477233688169005210657010881352496809555287454667473925307316348909803602174971195573044764723625474694339540055313931805915091692627685082836815212300762219845320455118175542704501373328936703372305264673621163475972362908352610001648653036767004925269899986904242862962372664751970639825611549468132750288919685909364379436724039056521208601975158130717485643392524714454990545746305687106361803309609685432618901567403469821902534207081602035257696699793875284761183682064389786112028587666338727884946175051411365614566697504242338951522613583042000394130818820306520406932701407367989195031528784958762745478954797699002166030760951022515128830300787312781705808768748736031573930295769570733942584903145648229772128332786251345913312812268624557571070406067398726690374537669593867496403332064774887906224884663980377654572890349547058233205951328159305631893622065067674093977647998703235147252000189327935262783048157606143341064917180363129017240024782516549440831042306641173757885786991016826768817337077351259657464968819015042683255650989698401750355346904678707902195030822642039331902335688670572167880148459727558932769801351915266390389921062343838868087238014787813748448135058397489631110010799992699492943315442473307530382262071780499947109914148644051276188334498116787115223074391590392186071191911946291891568909320674086985915582336433648669981625533474113983428860962200279941224704825231900312391882551877903242943659054445228728034555736688006191117590117862852849554508907198071554284339714603238928380179942446502418934010344168852804655726102522448603329676674895922599877942211855268020384496484960387075395592325337833486642605669024785844267800881700952229241096519498902982624420881920301239424284617801829717371940245083962837211402296988710320980959874740153172871769879087491004484112539244347321920167239353688606620977373442142140500795102813850059075165765798762125743508864703309510201092704224830159076310759488492476082209515763163605379714696827592501168372518996404640827641404619010155897417090871929811750914952920118145254478986965439833252435696209778253381423054468635246646905377480724413219260126216959148037268903173062036822194098693877397423333366369097860935638615761970763003087485746769096583390231997198578488699868340650954734600712159989735342365484597537705320229767247417021705957320346106932454244921526890737168195388744491210863734076690520248225732429360495750839630925025231098482707820568916847317153808698286804375799171889090452591504504616867109014185376039225557830912772572537213579872660290537068482220743899889549368703939775884939940112122363552013363223453486837162426356249784149514196957222241936456445984597817624043202301595492673236479063896276935743153153525904074833620700614811572935893406552489119906252143322932662210469394591151613075365165490121783209421451510469743967469448680488821973942706036476373143635279195573083999167824167734749893642247223702596745566082349011343884079093102593006016544757464094974196833856496183684108148861879177877738040305945254086310080073755256938621585939577009461202189870589706004535085854403486967374240383158843405197840793879454950121709130498797069355667017879953441692334973142599548424855781612212204583823546994929636845942286794753667783178448194847916506656261085041045674182619164330067603401980512989457202938386964251938242564912065012616034107145542241067208640091548356889765160143436957601791416778064484310959597230546267414727033297730672118730721534395962833519767986613962320135352547043755760097990545433303122256681353805159828069267570991134709650403919642706516447191157564606966263037292515478454772409173177048999315859803272702066099629906486814150687502616226649509885390518012702229888967661894866171426517631485043466806084414381823434010833246637695423058935234470436710453708882433412623498053520292123660858825491594316015454990809586440779585057856523560343926513310452435699714859693943931964912548071921040644287150956819120288795433431928617179011891581367904390090340154397099290403321083708007965010830312449187490277103912595986821562761122807814173788072661934100691674686162832616138948457859096972643291707640346065020456634039446326452289959421033753967693335773576466540733779670755945127223151292644078638208508327302519549527870779001467963564870237882286935939968054231581311113136238773031620219666319236918636006170763466526826550320745428299739632791895024948729193384126041974492354776788248207356813323666301690546933975186427804557273011464289683664805677406328999045869016378744683241856715451905524519448699984182083998827377067250637027356673756718849815894496606412906034183702216656956794817505892836788622572077958753180705414968359619421222483158407614817281455908037656677268764251554353280701565040558516642316554969177833489843712779886445532586075094005944524552685719049391758757347633178664223304732564866609282761080621170760477876397711382009253520839538476421039669156657511538019459235363204306924021010407024925551864181558977563834048225632255966126166755034439494333284340924318115828612141981988748975918367896587432255791067057919354171005200601202642581653455658091663350216120487856578162590872520530588017569535022072865960357844128518677134606837010693675590663321896737548967312541352393004457641655363343803319406396470318034237522725005338197547551354494452609456266392708114418300460387813790351216808403442655599072936406845394554535485794398664047243730626373972684203828868930788080735167718496773075270192327475374834579671056768118952396580247429188801681044807778211313631502969889168687608482613250169542034623601135668543080871817633816674909807997168893193380525697638746331087673913078965220039718889186768675205943651075210013917089276949375680933885984341648247435812906872298373486017467590906610795229429655550257756165569697687150955233294475845969696451486416451404488307881377186097232455391366134919794422969033072093811702201729463970780009157472971108807408866052827274628757399995036928206728935715379648747908066488667561401799259913854812881145098174131674967191778823823735115863927725322218039664496571682356120978132537543923328553183730796059871482083292811410982477042006632261708200092097007847416455096181451784197434002347750849504767563599347906475128433978861516065700224214659859118055502238084552517983716929931083057965445549620149474707183411458800599394327971445933327171555962720651966880177834945085133391283732708400698149860666290624745248328736401742749712436254200225949916894679726957178341506226333992950488713745634717826200746156359587685315366012938689125552460401476217227785154127168540132674469979264014999367354127074640675782360291594415108709428544484038070057580131159820065478471955963715630572796749104584804836187052347378479405530646785298001595141940918652560058257440007252890022366143826987908331998734284660592113768795519598152433115911244869569389491384152991777385672587690960705388065348141695515909575689684778581521947919236510097543327226871954097376119893258836295711296342676323210429265875823095467212995555345582771296779987613699443126819291576524531164696686793954545218763102807064857180312295991581658422533244664272678340588013904623694953888838331908843808217707850619962928964812016568205952726334878654176705355167653130257387746886141125785119618650157636222246481633605726079532335479204833042461171830937259171818645392246991079786977782224798285850448302482289022790244612413482783701427601274654890932756322829381912027193932985094514513310877118537728817527108034020796701495129410031927891384029032135101186518174858490339598877936809517378246907850073052312044775369066334522230273652217714140620217227122483746923513448241113388012353643872583153395312425661671127471226087595716960346795422788952407777747946535569618269307757149656532520745537682771018729909267947882068086933809295764511893673948111376757212492614428767415862538582563343760440768814271093727321658746573437638386070469796296925357379841774042414009488907027234818403019361595088822625766567757410671616301012812390299777349908310971180534741294654331746336508854901952909164990417598356532464503323303374209378453573063106540777408528393793061258454245406333924606876658902190292831698280485817242571355012816914667232521351608272989012472653777101416471554569655945481119808770079335368899602832350657647907357727235986342350200771182714457131648549092150723719506266172902294721634679872343829138057352653390256145428389527995245607789344238688956302693617434136886689217542906018015900098079976174832700028477768910757703283630213434650241975473548200300782006309065944950992877308491999208902527415112016469949474531246980796032226229561907705491087412698682367226669943170934640663242004094681070921194545930513061783068776345082666034494023378521031754161026001801673288338679011531682730958635787337615324999184922358171616079905366944968804143380406011559326143280923211490030782751542888276543069360250717197543145403597298574598897021762518557015982609446683438607546890103625530234478276091415142775683901672570859556565290835322346012116354639188968977097598954791630313058629669052920985478600257652827290766889217085773782260858660811725384027781162515492068378241632820016508109613883874847645378368406723525812145033983971411166929529896902341368899207967602892139189329188349442466343620091168207655414564001667719193754540524676286214965191847718958448104495835727028367881141434400052408803553667233750557823641491979968522970718369643480130375570111098212054996805158422049423367361882648555032777301472840028930308509916551757339540740551511162044435053156608531816714326070950371943062908000169893961871758852602081359028487102011129347306922353097402040448849599613307290574705221797212654491910330828214116784177109327398563185017550690334805740970502222216170267532600102661272979007509761773893172839317060861093114637424620161547385800760766852507028785810843483355335499415686005863312093081749415293567157898558713048400887790518879831900081215767022119382182787001134125985466104292996648481528725048671171961436513418302069229050174239942672153272472473561178611539230081697380688173902834651434258669173800437879695050714098938529885873513482665313205498310808025025566048228184016001289030686633321200489880147209659881284811665203623328184839969415568494153522280918870120072575439897505500924454927165033751887918765684316731303824072726147658174598848006043661269219897468285030346620024868101722256724857951505262334311501694037823726465178143989447435940344690555769277333436821529166008256740839815518951256533907538936708551570281532245206457684557024376651944131364826311848567173080891779898399735441598319829366293934385922913437793292069478948296431162106109843961291749090871831199516905634101219709860794711262020285494590619369375860468057718559000369219640178977906727475130258106694507745166070257662200699653127300127797553327976204545804727090266020731425375905895821080538063868758937663852267522394441152644528063340576850295889118845428404725655134758291517049195773721720182916976245538213239810693843231915683235212363219717897607357969223660023739781675190357407528282728817538332968082788303276281038227231970641077860860182839375188822878138888461539402016190600940535290828563771943042261864529334742214312088209821536038528088802355162844350175687481573645369252148392921371267038065209546492273736929975484711304074609781241118209054720994745872528905845346068724562818610192265887932719925675841412757107138551490433806918571636917040019528134414331230070683767381641422285442363495693703428192686503318172776184113376951783671166136232958362203178958513881387750521962543361073647680366185505680973996464058760281001531295528777068581782956221410975058129124133516656611992682867900425826202259057381568581023263501349143475601431061899915355456309865136022821406778032955413053890826195090627496370875901162485619729658897047550407453300301491456509205098980787184991200288948721486934737769172039073594773984945964753063914919755151713584246268240742659702638423007943912727758866402863887980006030381852071823356874458183991226575212654613205597790054768550879198589092592890613887548265581140988151418113229784596006844115456454351268353698633957157222389610253747950479135883715299658102731762566258931314658789832486095435344234001614654441469271455632830095985221917511567862233240975477007036404069770604362975018592886831817470022840595540223281187579896677866862250164910511664018404390551720942973211139939477993950054420206946798090374592897761300531043972639746340346304035883054918115744070526753460933538108348893904755568101039188147497575206344457184981310894137720245898063084047399365595016433586281507169079361471257576326774481907231094307819236844168416405554279452403511008225850697196106454849216693574460645072213432742571419767634614410666046045727416111788432701387093745488878291929767931889204153914623275481913194231791305090519030906675565385828412527658426061888666731081671796777138405671881797847220649631184754395133420143148630675693826348996352227174668181895046857171729409904073510933931764299108493597770250552018143337004944945128736252257223689101007589179410631985882458917222639934776838082455518235168340847788050242550253025269467851438348239622547944410827394947566189224286130554165598344295409405927060502721185080234730790426878634257579605788148373769594490528761000367114511164347735882548514711532978666150246402698075989592893175782632195065421070025860675399219401981151928182435034390932461205043959511588836050972868087416078905166991240646271851188565578761813850442071725330326399900627099011345382642506305432166867865319058933681732060003664124313088117742407402645515130193904218954667830510200070001452215617076967449363916212637049716955359232983518273754199864688151695909955918943234457863747025578842155639714792418192792812738876243727316312997496688981344165592201935219204878145215367302719668809197583267542544052578584283057380579886876286623298312124691920579864543061870392572461838502763412835953458216672764468458280034477199610744291006202602836967647928672548578597215038125291557996230662649704757379987345329122753472454987843044016004281943713505160190592829336931788687885639401151127321751976790465927210653484057924836136411315082770560274708812374115280745973815636138681862049678031468677617227100782124616503414297119345740371464615244847616146533620775692397158103710595518334163471121447105674080715809302674979991025873328275929869149334293175066606600256226030581960743600287160340819932302780505939246113310577625016432546258056253896133553488724162394009943244964651402170524282501594946397246014728137216888260692086503173997846609479602449757661286300814564249453383939567185450110515022977817767144410241351091958606050277546007648477005717129656685992470435088848649578284121080764836129101616927211932578671700578577258015332823236169507782557485243911739349912940544561284049146585506879277417666817283236115134395584611531265523081194687599058320522480908498042505418638471366688732563537456541355967849841359892502812540697679909999832628037051842547161540207902692397170863120311569542961550123902061366371351310556654431927203246755928148333092116685373535217072603177884682890456253541766671269696417207556257521719743849296007271816602794526449153492453388381408312899709280183847653624328591498325601960040735566446156243153113150320176754284120718492110037382757283341194530411357248860078947277005697367914552992993071376576541697561532065966632990903467332491101540494443637982391737845251785715448349931669510957792704893178826189570776281855905154245221246762877249469254219529892057153620229222364397332148224402905529971369931729490584833508581768784538204569718669494029098095425927822608442479368620081630733704326721837678666303298303372213293338073816429175941455627055913988712118738384354221148630364054421543358452183647816651088866969970715078086056159720188381426398965967848815476275841386233230053661893960124351113758849224327372015201885502660697823387451090553989555816768474474334512719773823994525064349196246082396265878474408919210758963500568448813584580549277566555274392680531789968314680826813327885902894484963651698359210676928738340362156930759658745143603990784465454206133357994169344305017968423202856021237831337671250125094287103282948260145397962899889085477693724372284119561055846423809565343312311735213383605037075835785924700810361783319058361562805160178986646973760842965047642612796351052911360664068637828885013783542288874460490606555271731927252012349286243849707011866571684185949703383841351194378432305958932580904952868929520004430662609649762177284639666480460286959906092846978317075417816527972028391714840850508734222001467426548619854299510184924698530181756198019875764092535294994415986783858695123189466183584027291583336138064342179431263587302972537082705979601638452364394589500056328524221566363304626315674477185015188095221447504016605633940493060709810224260168097160834851954732484843917233088084920937283727228357334326776496528307657393661578213389730928629276549967874665642086573458583769403287693182325526561721663948463283842296193325599252622884331399105397755489074280222792620325879072893272148495218011490505316856631880353212438134270646545060796640326728633988674934103141259782829958157551161141053142370373743198602007125248212376934174852885715177461207177320181165005859480703585262914500503518003877097356021447365258020219678468033209226225608658374966175100571241223400810901339425806952409488778655335064979343106554126881032556188385748246770927767180049263306302499183446850383387466078456892847292769831448661912409866779053143910423457910730368937640079111838144661990518963202373986113537645521786770038121161825837395440217815238093052415733916736849423933640620518094210181942869203860320327607976515444065487195652168762256508695836778490142524756199316726117776198542080761059747898980476056705118968267292080194686526060304248175115152344500413075835084302658564081633473333340381757697603530017760106699879833052159563853257156927591909467034610914746921665726060541142004577278846058383409014090810845736273145029741149459346758129879277878885689394980481135601887975758824197005335572554840501016862175659191151392003173341795365080377764821064164804236521780676553151359013100815408702978068602704230386279830040133977498561071467517763203662636785175634198092076815684456611570249606278309064775733843260507206875887907264817079213737755125623091882016693706927035674181182360879386678000830512150707963971778555197832690119875571637896124453880529656389620773555600667523357993623460221867096793490270323506141177082340270156524684284001745602824844121056041611479981105607518272902299639927674827718970276369927538022498373822494682589595145375850057019419102554503033260316622833800964058742421028614789426561002495055087594133170703035770789274044779664169843888585629205522289827035696561558106581566853707609795820889029245790247940116115696390878535135627726668022582508456197688556551217812753256580907925381662288224719802166576332332624270358333143922924515348320422894705502957610221830579256443200719342958301329251808313498289383986809063350863559650979666134439651908333464807526411565713163263301164648816593836238185576569460292105422362615969438752977565870810842465699906050547085039706967380075729010787879897376539974241840560877920564301922750969208572915770813110253968528066937076259430785734822787183355212937954138764156446329101271216800947376738825614897189590982827221956156393572893420826066577334609378546723047362402901355019729643563006686560435314287940592235653884272030534912297106301266439593563008125037230661822808337385848312681260069363785749603294526554949042639797685428436727479083170071909753905451295135233965733848055098462152356499476743572063645118483471458343177765916677069858860662452327878672780136520556898625922792810431813617906797462814018773219750104457891315554103186748036532703413775491563437868118004411972232094353283862534164823862523671628228918738550660492846983786496888720099750932476126427138497015886178419707549609085602980620738002047023316218322270916434407278303300195550007759887991885756945208376404858325385575654448834223018094323453234884607725450921422773535538593787460506995253792423545170259972593199288469555898512472314662426565302378579466279664192674297597032060741908891059323476659921741242268966783659477009620649771357434233962599379181885150339971414611028452911360253759799034047304596098667320350039635263429514242312598963517541580789027420566257475573233940568443352954235171695070122167349715427982046812333691243182850381834057253847680143168436859500956460408523675001513795877951574756398156106559688454971523928020072724159594460470078882310082150275453260993606888019010074974782264218212157147650372717874045287561048222638411772528303904980891688563986557426515458906479177617909398302827199490208315830069795155064691337129107470408735605826819737422464841824819130196593884820834499215418109916872996579823155964444143925312127964284359181177451593212578659602977946643415707188159726337960507858871514089983287830334511214247427961601840950072694135739365546888313407646208789806935646824614989191366274490831744997356116647266610366013363512293621778967211391817142517551329787110676655221892047727549697374456400687288886648663915696410687450892053395697144337339202929407425953758485724686306095441125540623731252940862892680100821950394012161175180380053489321155391026017137686199707032040130393956764918355883521421562644868228646993919751012218251262906076253693881384079246754907230980056796335683523093653154447675451986806278256139299826068196536353046415816989479077557791505870789797823796222592567244592713586955609910322016661203991419460090283750566405812031893826419893663268266813667842613254450889936949470689922933157366286654003472052631720415935686276712291441429571848917115308682751964855976306883272663978742074445066412077119935040045189182847262484220658217209281983783594464217290309515445719677480630149308941566359576323181345098335379529395815840016046981505296865618567581574961786591014506685492356456097336250697906929387666105649252478156503043858495167221808644686494427343950592620795383354448200665660970015864528358640868996709647718301554660420818591171672083452356884352793170647421204004810503856833693467934785360001625157028361810217309656169305491200913292065583643098395923751160033207754498207518805330668499436043491050943798750376001913981755238633935363163557742583229840086929629847553267678181347556162933141107608086800179562624252893711160153280457673557175929689527154186831793061964135097158318620612855883749312821320356760508284269741598580235668317402742182798679535511248172116013174917368619494525920171570554192299698924712941492424662744154124606806373943271359690959822597423726902911707849976212981698821745054801420846977049303756954642698478641243913903888014721225014025758757071010100545417523679077845456079061871368051590487018784652601948394742667953695776679396007630597222867995800337048441708272834071387160405814429270558508455831964636684435685256885228074515422151911817067388832607325624393469869864693366026227162250656106979031785633377724191361954048680999119348922313303750622614299593822634522145010011620617054378285380263490541606288517638150517642818593966776517635356476212329094283465321905048628517013662408414520244768206847459114620276966991424429314994708290811606585577282362107638588489484600581406954062034896154447984644382035908053016766289365154480669445240421032701669076690260649533805071425794150149176467771841529995335524081024689795216717137332434743040351554106776273538076433994494918036749813370715163958771237835276924501799962415951803772477396631676854629998100797498504490479273262361932611146242376874353923040220526174425526825080668771115700396592470767776890248456162180434935912827799559011146211992130769855904116847659203425103620893837304546337881445699422273745884751384765421045105231305270798467568992820419924594101280229619745486700617517427494951529227705730077907686955942406213533270147895604620882613408968851110648500394922558481188819648539248589272809034986065851971391496773636852452738012953445133115099677755105034938805794569704866942621437954170310009439452997067213094782059444552873543072687632613438766469112087456294770541373871309855769631085166589082093260947395042211592777405829618018803871041566978095150465181133235829767197255932257721783574228753225873970024014960741795491491763314300210925499675332162771428557418172895579408978992079182198403399845411274901302262187188521305520570167636603728777945186890881750303601986157709539542142317697693413491693059632896946069119177456841192155044227953372635690099505975786466182230404746183680572783352917822990467254633427541304918573128867901241701928943049129754474397419833251161062867194608524558789965326081137679762150403911828377261823672627583873321202444482043528108830025718637358186938635874115052741341056408689130965151619432703673827391622696574319869153639434121138137919874538637566586403714856757438912314930629216617230500108266720173106288192125438246719081384134558022179554002458789460371033885676120081926526405901181406031763280888181569163702703803753515311686067403883560133903543418995144515506321577971359572844222940597272761732277917695095351282796351927077533139945761148523040181773998764029414093507901175662839068039700219290142903835913659675520724530741866429132974997352412097015048959711504460474323423474823388339832834225433349998173451984828040457071335361508496749089390914630576482514277055456241123143747511646119229785007581217205283955708386556827192597503315318151996629986149689885591908650290729072541890627685572183177451692000267759019715211358168381664425800100716461722429357420107785269474708533171610269433073868358637650824024174750604493838818667631504575119578481515103094436631236305371967154975605539701394672936622710281539440841642455409470218361833958600793487784285908481261722040439161791459324925988995118516485561780214431486611141288649335196538926659777827649323633446993437516509434703309719005490204883609839284155560031867518034075821449989083529490782880441982436342942861501634426561745534730763144828964375974473139509059012711537890255707046546909124015721823785915544210456274449765332831320204990469295291643419561611318208320572098289019253622782811888623531520867212132401779754719972635307501442991532159444931165840897116489134917393696894426288544191113243528952479212936321370313058676625626511142043024341186999380900118126792228512826010302504127007438502804183904352535639618743795908409522463290658158978004529164247672837693463899159317789406655889639750164488083861328373542035096984691316579754331649195661783936274884481954422730392924911376009749079696109480169482850401014261940242295832779037978038496558811776092487548174394897119152279160870134303720138011841328942757958643767380938396550069180647883809614381744047384504074261308046106902306399742920516171799033911259270884670235951564120568117727431506169087196001209697339358920395938522594404637090907008254065143417284439536531605483423805448861960535170395633669278945744900643264328390064805171834844482922263458618410378201966417579647001433678618468496171381303508704174107866097989761750485795777437047002751004931559269714185226608199253254143793330279547582797565564394981670301859630318838669433406079720728247670334840944362911606700094881642960740330206324546958218461564136759585312326273627828884082564569670044412615362954399861218555852523215746142584330754609729615492224948935666414175915583074050615914181861031176606794720329756302263265204632735780549363746694932312980373679207003690676654902447468238681885278468976438548630408121681111951362896435958460045216209415467881160744550616926456393744296132685527082005434397677499520042677324933818223374607906260232150218969154681174015129247640367215248113282672330416727100274487823831921869126221696269165769629340977814851714537666452341455312889063542438966400243385126470731286406298726527037458643287840033669474022803024746961010803464751980338117790677659903528840303609942385766483498964097120329690626874874176738470848861147456666054091315796290836920957747413044017917236547145000851888533701237329367317595032389336416260366635605709081968645148297166655034543675854299340632677148885786580979472511355545833241840155305992798030123834057743047088489129755769299826379972526815111668621520913927593938768152354821606730680977395495842251142856268776840283686785947675297007192074381153813485327929268919921352385940011116117283654350831126293808426376573571728841305184573640101950289638763622154236629683048687118115351970821951625463024171547932648650994665637599835771683997528392046296478651246963772378387051184192917291951531219310009619695689326497550895289588864339115719636091192784431279253204184149084036285159631008506744179594878424038469554499544330740427536081826850437477180443807598552788139696556739001917875611119674009178750498076371712590846778711620086394698448355663848013372479884419954999963939701765219842070590023745326413840506084628110921848472685379647351985124475926457056718205533903681400162211503516175754655254771561023614170719365259958732977103893629412665941574674190134011466269245799826528587128076283275243726040796542767005033582790767738283075721129503813814875477044976377194116749555929494773582829351232024549383697369389169593554654125328870969889136969110396210855901830398907751016314356653562261879976217771674885470584392155585105078728282449051454679867646805629235826506007490369164080169422469553373346101201571441708685947486983399608096293177950926125379625558684026424593589995094937349254556155054015521222678319634652189568242661869156454605646811958454712198922308759917632232689825572324394428075427857800875404258240673899573840682436099602169711656615684336427082843087973110513581303977273325789563986294739890756950513451825014297426822401501307125738841955252331051027278465968488069920574027731934453696549658079066406211166103767115838446212252239941816417824219351810984467343156562206906690636746353987992535572133162859066489433711690610970552958434261581198791575421178002200728976764497488470185489105819340305689993669023952395870252226249832620887484368638806989103093676175942216324622072366004862064378508775531765506938694908469305782161499968633921442871984956363067751560230081820288030210136370641556593201660761504020165865499352957721828472809346433630415577742016768392863863718763041251284829038219472673575684803020339935228968875055730597769650308903779790700230621104984075006858284819612838261457511050598715626926881584205579509566131223178434537990227439591916737753224013582562854466512965835436674346544264341482528687272913441461693126114692356746015294292141115240039575907347642704032402022356765189814049399339644754481714826296543461930841365333726763934374209256326768614618492436506285238633348479183007476551253695150584643297260532344370982679181409600120712335666753717230595228282052995226285170149577685155046767003329865115097198639086916606049475511880773169644364256682661010445789248605737713169402146086998619726936281088746469215867485622285123995855639022086781571170832014790897742711796302951060072337628046753425830986236134071562900631970202294571048719473468204335230771203979427324117802056565277827385694356393223799637691384027162512102951340264354247009001390566601286645064824025406913547546310898754043945924383111601498629150104825094458534238472840333142647056780884890628420637211085760339104692887372389994739228022950710594236502310040601937646152890718617541604492694035544484642300820177292595879601778909887857009425410222993532994582670608032087289287798252323980617857531711060657921861384959707302394641699293665075531523567976083773570843265448815896807824814905438848570192986131320973999558092192615128709506586273322734554628304260632472874288359503457956633708133069170784662058166279921440514550556535809879960713031256820399196990507577561621535252655107257119179780923653048318993414348566474268018261922129046266715391690518036504269139422356805952327128298558454838057514204729575235598056056941541195937004229672777118134904973614770794920080826902536131964967648918125155926469464993664703890876231438588069019564629885893335693983454657594916416334248335288817232570090563378942995732165500170051469029455231702879784982148488232627475992142139226718026493365836393643160111173286826020062068828962238930927780255649054575791844984068264956608718154663576960938581539350028439211483666703719433494903055191829885466579834777157123697448771803837131269927694664559509596699848425745436483796747551593775833783432344413453651756114427707347457198954189519324046177491178514309046778888745947952396754431030098975492905053179845692109593323774304785689082060911981239598387930519940249824955438647996921431266933945710030063253094372647056201117872367328783921802557012129753580583182716684685246726974950738984103295900067947039604491575588040222711903133336756861039160836426443012994174665356783481579253658170124247939676837730109167080788546931045086347368452255374246187744010628985615090389180387413860729315985890393960209388349927329116954463118869896348151738786449823582010021438578497786526044983703047598694971620062648809416315087187547609943874829390949386596234847999809531547608374062286979399126817875723197940660351480174242216301398804768684120757768819646776749706296603684882183583667623780724268955644862393234831739167297519853437819572706785355393825555502538221073457365968991338745330643384309081950287782875960875002155775610605177946110687582824901704815498926173572326763839747679545826657661677517003615457527744449441788960439542301428365120796192894645077883568241763909964792828374941184636133562908523566778330527987300926530273657559059392596103874150806101981488092023750579501537431363601124732913748793304565485535602839496305998514990975206279284159275195365383811485510296047966689599918573909580760139644583240739557678393438378189277797647804165241309477864586072654749394969929143498582036414148342732832361158464634657102321200512313937254547353937268980954698220878135031801366687881124037236968057653669032231283861978539316283160731438061843350813634368151878631567123966176027582892202350366170342811820223807461221598418730236191696913451664203584895072233739651444861864087135755914923383522012890049723744530351262666403894058641539908644123538844881758331335256382303413699367582895535085424835758265949243455490888192008247263997996646463770952388900436407603151873932391316483226744576275057545096381808218761881410950649992261269481936532983686729693215965150369608993290297401536408032213351941083693424115316945108650040242929704272613559236246236364001101316215458705501753611649908574894909554131176940031226880988918565873109685397502740864037009715590023160407840683766102439360290690919187580605568279270770332910830567288134627919010834498210700316134496376986233783908119229886946837539118959434035462306322287490606943319942130462649796437605086477924228066841217967936470995352256304293588748066100664973744402614268951886879652583063009059983349743091445310357557967786782798711881243753997112108238122363168896300941532008448068802330140886265906416039734689406650798500967403243496446508543154500141130983230200531817131440475717336202912353905909900406665898693761682133375824745899107268424574697634340299298906241128829312371206787446633741433902463841868335918961519108612491769847579185202301065064645046742576929908079276692736108420201454475572551475940572553109226739358472844179952931603584476276911775401552200197987698504273045679049382823559780805426923677863094454603292288499854882044361906011435100336935189046540024960338632240229589388679991420196507683015118203777996444329485074047131951205220026662946760081228796149097870687657880267953558864947379774252129460859840507728810151039270087935819662260626511572962999662166904078665510564015462692803611692794609111385014687709932559934852613398633443125954527130493876502441617859348571347608397143825543168473089736525202620300094270403226717017368297194205607201659804603305167192921592691164376001587931051711697837910238325992809137843415587307372860067086343748830691291475360074136057760377165676836384937139074471741149416925386896759420259278210681131671192699537350880045089554695856034847929008496904177471802425395764050177090318424649457480577883013609845945922919747308339158245046997338823421357877394436255727594063473620635884745844110933742066557717182505381911671790511136482706896874196582781009613362618536013311816530482625340463527889894140364314790973933228368584173515185372184402671813610721188828170192073731139677605048322224589112912651113833877043444620648788575729508431271806823089116110094174070939492797439779139458419775272744254522167850932313289280922552784689086991103242239482773486702424808602936279239885433941834870376919787881311668714664749156025660547102392691162620990273335004026947611932534818252156678257387506011301589222576544471499763029841173055193989811585005274170278262764268557340199525608491856328075863746835193618679913394382162655408413361028821466294460194838715014966976945450351085517474267026489671625665897440903967839210972292600216365703541196658544207414740722030902295940315560985986846741181774633990488315088830736198957106041458696941688166188762838539176270854757152038908879263637953764266213256310025092192771790235437109515780749647412629394436435639732456022012667190037350476071894689980875372575402025886640236653763811715509382118230270531177828532869614235736938283501361791583165735994216464463895127258616270650002453431665941603975293864101103679982861641433000712710039263353241862713341183306847529105949523049351523314033316479238984886932287858528154704906402866528615692681398433904061497906740910744197949770666995644371802561225658772932491935771437744090236475584748038194690644912254616148946592419082808756565157655253541178579581813076605143477873901239847549464910655543584019479464732696532330681236442917265703906654866033056052706054974044178428576321584733782322704508712189868052980256487348910041388342396703965048449690468609132806988323292588250295705694819267932449596973584648254555705394645149369251937564322874349607142102533763466628459107100496648809335504278975387340130006066401455844945880590920671791942730590493535051419836067793555284468985312779833337754708789755191004157140880647692206744727329820479305294711806112164523492114393729660017328454165293005073729663599543622884873460016332845555604225852465993337939540883994478512938295556231214005080305756289717439452410965762511294108038010818418002981597605633682119957404041984586006369660539085442199358282184587094152415501437915559047822352032855141481870884057863446960149150548375845544389739113961208646401895415052505688051128752528445279632915550055879513742756552824328822407225440087254297925409617242722683443688279084015485998641110048347318350416267519802486444482786664010618722282632998097994818908077736457588501209265634587398644542212183459610932711740571546036614839290125823247415287149139941591382525026977662505777760390861722666807900640575272408529302369539495961814014602374787841997391771318835845641041242440976167131594357317487865296565484182878863172455153152385189459329365536640785523606306712469273308030520214113702475690654780336432766071540252003162432124164058541435399960347071899660537517966897268180887636945401478553976409282191232531868345955833404984500511437591704344959560475357946722420923793743449297929303465432443960286074914631710735139756108718344791620772375335902572159975576821275484631540288043387606800211036604466232387190827996949577812218709438508347166076167332959674606548049093499837610140767656275248526577995810082708210650988566743642167498837567863658995332447825331186221988619835172095585629071139497016916185727777411126931789046311435812033875167617588906462199250379430038974450425506396883522412477334708664755689073739844457628095102682067823688998472759032646828771224491229876161426510393907344522979854509745005893614393167117120218654056677847676379963673674704337099216985977638505189451798124572532003125911533392599968621467904432855169544511240942499516454863076215082044719198922224020117941521382847186754480174153702677696283045341758988627117809142512000005789531026911741570343329720136452780894755965478823196090374885530997235831288932222341450574168598576402575398045133061690923472002279664352637039150814615570454276283585046683090567041462699442675028254310144644976167724000382714935486597117332424574426088011606200131679965580241954943398664422591009651721594824236686554842899564158806544278108442604983521748008260664246118065522473764178654891936849639366914362275183287086702205363879839480879268861372969437688334234013711856912256826993557443547599993014960654425433410479384540819935836074360684245064968887390967914358536380196974096559681162390553776867501549005128877126076754628044537412884322076394158149582624747638814072309451968790929303754567293781439854770017468632112754824068358305761396548879512400156013859435783182315652722761150424930218871633685127619901898070511191626198696039190137415231871532076633774005696763913431285092191260178474734603996120558555758798375543661841435278453979369057424987468056506911865795399994751067076445790443824737619736922947023903864374868887136436871943541673028448013987220263452536623316280050243254941194849349565093900307084954903004854514759189863663473794529083260105146319795965000862163190222653472068099277141535329256249512032871899461642609065316793306759963194105371662221757459791242772531344538678751720641838320685179890986742208956084639538872894970056015038537154299255821189488285834987639509457205628243164786083806233092687674878156284817346024532511492340547475650940744218532809210502061618812963002984664567889200983244709508453178983545973219993893822572000732838896172616490623604741492800334785075973859201749378099076376710117443220522998130170124575985638434750533095875301946167786413856202426959000766212043459118409332901069075248749368101316140301719731213922760528442022003080777928870121529359066477922310985784752476614013551118123343189266094712299472836525304767470752771727124349331638550365318399546204833437877730190207295937704249330130944545681129069783378822110252191220726586460729550532506220972608477955166702152348187659613696693568302327371575490502293957690607405487318290369288275217791922502917199216924311317261001264670441596984868410007200942776663814746526260031025220130732910425475278096944206310880204613738632377249482522770626042064303404151644246948960686301715423100833094851717281146202363019979503240484581207053831117760747393433143224431309209506163219943375569900120612196861303370681799654266818731728040607086086830202276156480826366201973651423913364149075688864735521537845453417262052032615817487242463096694676053894064421341116596126132763102702993700246233755719391364906803734456297781786967023121330872094682193646327266821147007936571915893626215996008313835862369788058722199308033395946496281372658172267692171016166156353369852492228250000799352352283039977779989216342152283385426192144773595458608817328744603574519197966133092898622744681439962433871397611994905759190201673838241621315901197842413305883336802712786904927151525995065321309578692489094270397643877272268930602239084246323792081161645186289607359010658088382380615405784188632420984755736579290550913652724623987632716104034026093375902971216316151485604267727176952009833765435261417519131789371209701116509854519667961086371428935343827104732923548014290040481844807485091960597430462144523349388094114907004857610244647262683474445056877883126942946050318336120499503821883718816846375294999019247842476200540624302203085993889212227404541621058087877413088735697564673648557617483503096552744649332852871420142878544185128080640853137227961063616137697843805080400905271958550397946076861820098057859037398546122977447680693020184931450127915392308794494862626222962763245229859888584903455012642983516153815951866458777087477526189525021403962315550914757123880137792685844209023494238219135665322456182367981940313535598894186675444617388735725342861848541277504614067170281988719385219017864589538124475637611261305122374160073952563003616660668493430195321528491483745922232200548120871641939257090679168066790995536179532846245396811968191210622931857307210642920342738276837140018019618977057948157520886666454637002774895572151093886809105363596961569037657316782849791779222743474070453190986747396473913029405228448291634197993919540366860126304676566388623816824758796200685796173459706113098312400454868221578225530830956461610903239609324960733967710684855228605184825689514844216445764001051696879790545878714053762950949635083457993250879307445478229325851377262243849303963211394680948311203068004349691229716811843672987007635920106148968015110712656515434580219593058570335631019997884711809070779006940258009674145732784126755340273801572589809880519437280127608393088117913791239973771581243024359204511916038348863091540707799074629989903037096777592663804277551926612454828239624198968693491523183344918703095908299071636152933597263773885024391614805406786180179470234754372503688646052705182314698670564661817827698118016150298555178315115659410290677290733211552384175698812752190909538410403566530406066379181111068093029232955698347408989352101705091673352766055235558104656986850333465782147557985645534205675953439368783740155068441291397971755575345917195492074952020879293494252972660493292570557533799375930087834546781059147405559427794761087171181532175861699565183497782345070294044057974139290515382877474141044905733144769606708393512513866079543512969674301114874721939918088854184131061386959875060235286181994915921504328266227596549816034340652372407030706052355961553877007257461287017316418778714717569079256339453865026814967011332864516759738480155185691755587970462450263362027031510395895975239670136900862643208076728534211138728322983130097195111523331065517214548078574331314741324019528453500696102177641537336530356234976515405547572464686459990537794332839292166972629516360210293736425033853140083834713292914177593218678009704004335514706674675284300563868415573970757620435584967528693630741875152556861774864039336058215595348334725156414238443696196250738594925826447948377620106981128479495864621983265907342346991617596861180075388657488578678291182701476295255834313315515062053296281811201495117039980255128539625600359095385382788621171960905053323460031471630406016623551492008140865129678328540645723285991397937391056956446726402573253920935097154364881040510957566576119964276071145173292208944332425224666415660074391282395716907212588169165706351393790272454966430103943061062814700968594730538056654946933286648726875148945457859801432016286836989633128402949487138224192388759676893242156568868574374752631192128086681308547043541059881273374113911176776111869249894117827933621420780245358637083923616075655236403701688010495055579153852517994198629375376291098611361224665342386262548225105111955284705660752416426521775493928900169057304096671825276177092272509678839201308700321653497295970952408923322308594003661268638189956955626148648967769878648702748529368048640170397810449997574763550919867283012774172617344725751581187101978093443813959348867320557854570926275377845855180232237576328724499877145064801940071643511658644896291290280617966014444853748298237137271680190232946366938150438730771813541054454475240708693254258211421197031428052082737496913490363313847717320878423363084184014752393959190959693469060660376796910737862638016077962787822773762482571973258101580750562376946916016655231951645426988061879674794037338769607506819113268946749843369716537926193675028899534242925123151562952970576243458888972100343409263037595361293446948324945923105933744375098854249005263128447228696900478151811096349856420786728424179310073164285110927530796045919314447422412245825100487505412941284929029201608269019381056869694470479637245144933452352747555731643981746382951818014778112160191643966383867346244099390643172832105826775732548019561914670471920609745674380872789786440744554363757292440952128343005565973094504162338628522590485905187732440649559099661010455193511327835496597471737452785032278828340510467064067146040965600789065117341660197405857979526958708443443177623383943947032524787747153844248705733216807600193669704377251999144249111214322320024582428709030943062771429267756105327286183054254794931525274936991999579469757161228080626435107441573086076751132393749025101637674549189982395512181348611886036750785419682922273927616839597892659979326837708561748836298819943165501869111020356619883009918173957304368344938108260523658152534987443992869616767403858197214911879789972489474499730260119251899330755872829554490404116650265693353889052816202887230813854610102486629105146865529974241297517047469667832462169228183323708517211260496048272502118663109995511738132301481518030057569392842706101745739658505210028081220639520717917496283005992616723331424312897521850515544054369465000871359050454506133587507481714765474976849340855671774252815232110654204245373399955634760509323495783226040707160127259721348336308530324657149236822776497833688812702185152233113306164396823802392154808449591149056602651047040422836489130290664815968758821044322438623237277246684504582317566238498296302480475987560431430565739131464278266908592953614247556533996703113835756169262337165322742560216283858481597352139306832809315526724791967423539446821441821413837021716395615946626731149099133938571644174663016436402589706888736072548690082047644239463171103712589156576682134593136030133820912713982404608220507914869947695470661373464718569597217858181832358536218918411563432401119031284958473409121006457750593357766034649632150591126477475933646407479804387010414757833717856841282327769594460204578098642992053681478146534239337348773345447560971389998661269018083632249541601725739765149989923657373479255616289164382131060059244219885086662393791120501822504755425343143902825897817277409055014658087599483395901873801584154314692721161409909515608706875569002808672182400298855355101773288134852515919553025741540043617936907571604779817610681301330395456432993867588159544775890017468453658095196015541680333648907006650652463762419534016158636718459115175871852562688205269298946151498770993182081628614554121232287366805536646339015154587522337598498492726367664739333576056734128582916092701519226092286093224213165101560270122376527584433745951930810788613565964147837416217580419166959371689788288449513000142124331991590700900390547645124588474352364390121770987491183364154166427146949314301624780664717469195798022572058518707110855918841604058586121788097510011914320518300134907476638721639452209943940124182760419259346949771680783004468373406272916852750903356487229317921621583323014310385657773415938060765415273772790375518776234631981064623376426607090136516334078755337450883680535431173187972354126987413878716753692073955701249772744021366248898388353285599537861953850896205354681070851255443636641483666433191976321275772826611689347906415530536013244960998626320139199255841431465332439635655593075877021928532626085134266263483220366713241670515471379405839087462414401384463165558721747503838013863211599904743136803087277654884513940557883525322450284031245480160536498146532784588845033383054302785834633408231830078597880144700035203646119388741622543423490160036040260735276671778921783438372563655828045812475758641945222038794044874303281886570505203766577655134466149631572967125799746316180781423807225554620009645948891290533617159331901219499900346473862266394888939071880272578583950179706734806549228078808169687023245176056681055834086519496629824242641769676556491426197764315474476824565097182173253158777414647611035672037826943779544190071230044231317954400268108952123767892766990574282858874292362760717975908047927601612555918068141821747278082867752309422801261999954588846679349374529620431460986273987683593710113103588550695132840005243744701391152774786763426788275627273766540805572908216185233840041100365064118179163597697396265920858120522285964794899762231833345780734565036104652492858661861969648567020001279774920740096593611339766823493500917148836871331217153583266407598022639574787939411484427636496528021004456720570431686221706949455945820375291420894216777878378592055650128795372979686341355850426879369792193294543497588641898106994493882566195342454718888113074117175719832203031677958691055970695705237876378283796375575163378692799063069355488527238848074843794558124598230294487977642674209895891796936548472730665187666831993248416826956637120433352135663471173501625482549387650561970451013789145863295443574793291466924454119156440143471726975176169411976903151690666989074987112993871045389016640522951568369549699070969686162936209836410070014767174539675064195613430553774232789572726613876691029405787195542975059604240060979834462177111028232282068599556645912939940581919915640135369867675598223760266829186718010161730671980059082328056285790084843494462938687291311085253222561074116936381185377935053726513884433170991750326942091629693441892127675250510607449898277088016192694751657260484601645209171362310954314863224478114212080191140504240098572207607394166107244510891465069418952335182625056017988895153055428873216607214271071680193662752687712273022981419298919497311242038020179352514892439026196255869189365466934000875751346646115650495862784796247961481321208957283613182740588306051133142544058484123909210789559517568269659374114351818235520802944257731024222352113363667714320545810139016429244475459731494731064165148993004173376306687347533160120939639603448568456892548039963700988794684469160057282599260508941917075802058888010873235359408736726408927393039442081250962737697257400151154922846578487104416312238248192153305315908670440686642120603647371589890394277683996627209582277833861012429626515875512027310461405798026576524483302312390775986489555334372425832894841694290434867919898384325498672996314804542822966382418087441556982729554655366766168976613495530608733737034992665203279108077606704314941869703582238379408788840359384814154287834788151780637424141665676532296501201978258383219146519573433207278022382323062264363323882805323971242059405594664997263890665741237141548574640498924772947794840586412846554631880197616334671202233594129135978541661344157173497610282154684443871624161363848200592893703064971309072890050474297668413306775513454855495359431199537596104845022605715133642844858764403081662055230182463877526862880733310921448590426130080719528268209470532213967793475870845668925724744191264119759393215400900256557214925335865845103773589902434190755974495501655112759763077328632145147639399089412948619093869224548221392697880843390437485125945170384918959190058182715905920095360066981243927909535701210969258481060625822651883620320654340260233670984297417782941071560719819296249944016952740401589639124292900822327565617246268021892367806910037651115821473746309650804974949570188059686106257871843875250853370204988119349764423544934702343410440991113498002419936422802666475529633586375660694252897415299160005979058376736595205457048471947218264126782444537641801786208155228714615003199556865427888031509127111416520395227625116794977378406730989265315126313884019331316766201362791377059292785072280527466011696286865370173230384190779291355684448677735752936121703332044875276590034272109910310215748662357079959441333876826088397942400207493968869086188647528792453263431420122119238978315760450491857495542177258306967926838391165537117772754408273135266097524135333239795003822460791806513185273533712134805107357778352456141951605401962165707681269744266364729654673675787662513197123391561420490407256188706707098453326676789816050843669452192746638184799943660977680709843899814180197341977020205444850103773220296771696961380119363898860943053639831670695889676464374355718535787980102920680488589295679341092921772581486609545431045539996726460912324347209299017541967684013935130059771005741760755075013441108304291796415691508384863166414865580680147631724020449160173717407015418271281934251533857247718285541248967513577380553267509825964632196336072303189014714603317652783824120639936927555802747337178801866728405301586331749008764018922060857618424882630410091803223059240598896298093051171345992861230590168847252132842373958257943949348027957579953530020560116466189831414579218303763796305251883249609197806672485243111209556957696846450238892081510409805378779402612349305684501352919789550482165024773775634490420208824409964971526133947820369509206933415451072188917289939449245017461889088112956089361329496475679012282498452438852401013066091325802184508161929463982342917812579943405180155901852030375267452289359227712817464901983943268886227162243071338484707171055515142581885542396673082867064164533727709037001958007703055286649288777128816230631881580791215700221338133242923893437608198455401107596849559631101251535722132315052510391333554542987132221000282199570807751289809729278826488878899148698672216065577996723325992092530546653186575187968767400268903585053432252066435521934328841203460157229690891594780948081805686326713818640002755383185901866967314380985260244046811058285762970858421753351528763594297557001912373513686114801622762051009874795431294995593798032316018503655931648233766527778734402686996219790543659514588236672244044525970712819128188377778092038499715510088676882256494334343824793528129655107005671146188645421483404743175385560271664058456968589699448145733670564676969269555590687823089067091373511686981144240598342210298899012634288425402076634792834364017495054391109575726745545206050113762073066753399745169835223882935091311869208040019202432433376557293297634979850425692069956233478927736141518524005390630278807845852967780592343963732185463813545032535128581828845569441935599138349014154239316471595964426838166738532986648650438983608637752310575523416101227903561210152144204659946857333542221394861221700324974276348200020273329335706519339004848629218744018058123542484749226932496347327790036360328029015704332027450578285991270065647294813722054494024162303699942414352669932510547035849775795478308319112094014511292983832016103854588777992148204951465974332218579582367852534807371436065619888380601810899958624678378637402946603159990583556120911484433414203649037319930859838575601089086383981130448187758334208315206732041534377661990525661353905612917866819067942998941286168169401080568355823854588205317728764244273636890809277855500077844499753924713988632882287781517217575203563438605726352935006943606470324542815281408200727025678569500508408239136797699405735095722560165546194708187593932975355887020779699089389778889190123206392168968772010397372188333746744081546218055898992675484692658233957794383989106968837135775471644759746443874897795048502065679424105745265914043914869638432015427036327620420523782447566725714371382063563002118864677312043041637656770229104516727964214370455458837174038567133273599629091138908642684360189325777060772193367307840851837234194358150991930935063941233120912384637114616934130927799811893108836601176423000907655842723369975819421908920849524638601610523533729531158297593722711203152133212770895084210155845376537720031949157889809818165649317714087551252176774897223811882840576601090132350629440870938492923090315929115448537812937635884913803925464079817858849551095259283188053283335486404700370632325564062258737017195274804999660450752675279750284019211695682121504040661049035260056726426821431150523000110249705532766025281103291874737125876616954944707146032851942640429620088925930581071994720147265477489424254950264367427757048159813163286255360196952847215810403118495388294307203902528273109886295072962411399975669652919701267191609047428740802431883405992971770327229711336575843658755697772764551912522169341328479639990673130575392947981514775329650669204360354970365054447194783338880960902588875241516052418024207334162101854132249618426052151365177009951962463491913728108217586362285470609042987963372720475405885432814738573800278573712664286747713602196993401651714822989668654927162192575200620637949126042048378813346346503828489757299705940590876572123432733127873016612686203849754382962317147638565869889158730758659985042046692405889258137943767141808057761428989763214428043490420052994124099499408825552701966996874712862841354616063882274008339716597486036481299105837308496683422551007202439299500962144690570930250718599888304878216457753913374654653713821866245867232304680929196425744209752490046043212538847871645251546013179820152389525234788369587045705101639526309833929318813156601207700921223530332933316520038904774221430705772822212130010599721468299636452639977876066810158943729087347522166091114117924137585871600783428355572465848677274854407052586483850984801542502466821792452173623632257489092868890939091283253855723890374056783811972982479595484768686747021481302383708051815800623279710328940183320164842834639095776340049490871193282948830203999575250326575112162336374664401325019729974215030793402872706285210223601410662436797118012393386860087811534207875469554467406460482798691070223793874006230789031234398698812233853657221226967924388615326887617346553911204883971538241754482553462389134027362407401175286513560959276105507117103724050831145427612954113244469351679178484364260306619763462050074664235626406339821309692438684735275278064960255297548364323617730578502775862006603008536716488909508124850497557959749810332007766578146668074063967343268321797715804931960369471317334819753990034526524574012423560190342535848540533931669475719209734931183575176533299227959712309927777499146461540809541487647307574679782404270709723130569932735688194589160274262065877729119807516196307481905850668745951713254236255327313394545448908660947039419504285035539484699115480341117636233243687624996278797631881458784313679479768268188205860787989211882573830730550251804581471527426616538686655499324494443878685497449787679011164744715153695719306734961711744379428757801510717945462055191064819400070077594517109420566848208652234873718607205791078646626054167333209747188860189882779295733483885287947788302998520673704494859254966965587581403744804026271899582010353527105576640076155998336428907737457423355909455928502275454541920460746571231076123827507015161574345374787611122256070600232811615820160781780608106341859625482929551418788573245494351691914141868156121532949018758235370646082300173065004554456095612149210720710314816977189420907531589515266641087616794083699954890975484911563791652318306055170196560452412009048702727644347456135363438688359943923496755996675439963413054550570406640753733023298608346225803102352912116399210457137021781654687809583152641386463585323905208470884012815815211329196095641079631735730299510036141200251805349817744264284768194791518161145047625988035444770515316057301578385026149890209076225370972935884376703917261260447257325383059639171428928479144280793601887238557522240829949865629741119849175108961233849788805780602907052246519001794932116089323093576035204022210777066445961517921245125204198651385948623710189611665336135637993521358945675254721343869527234407016792127014466574707817547711046421602664048863404077632755884429643089658533451988412535719257528267932511584629360882905461930178378963503380136446438284240462115453916166574279555658617760237943164270849639341238023895268688114091008246544359278323901726683453550840116445589289754667968370753860803339235169651691584696320057640221189229072309546448192521368548329594117462400100699002579187226192947741931400596730704395583938199972832830354120779383927563854129177763917433851330228368814084625493298700238493244532348901992597085114434125821962493671067262519369837866243335565252243911517856552382002085592080610673373619041418605799991122125410647023216421370991402484651080230728399654628888520285609796064796472104870018193036051989028780242501418702415244644412454838498627744492517191875906939639655205223038546784348341397701004528530086523570523804415527262103366839745862541165878274251949909457799287862117425291808428660043612708290441764042435871134710479645940440662187559550303283388017782743850190461466502349023676765338210152506416210087508067036811741620953564732907915547508610846402605361640334133189425171418867938608112533181937718938069995337475955975554235692346358807109561548267879752195361109046120693303422851717983320076070613010859912536423080716985135574950838519731831034577416992474770907453887489880358617404611673585721143855247471322870752356978916802464636958285629824063571819918770880114040638964016229356047415242398530101327759212071177060204099276060119048604889645172982424386317209367432276770255101413943470683821547631883058905055942876716472635099789965930601607589309843718686914027580910538143028040084490648297222836764896127387177970098892396104339143462578012382646726776022684926866237966835459900077433768161887409852100306633870726287029079392043433515933871860654531166736919368041296984209919255866583726039616958159223040758689346956770504356534043650936687569685024989962554066536468860767756455973888063862358442560758772537520173619371586951244927030130182614939740869053033273432546036267838493427942484948294432185374389727313545092969642906922831753323713878957339364379822157825583068935608142013583497715594077332188078526454028490653860787134343983414556659033359511162128534969666488589253740225470413448302429185151395930610800813864219465404883497673387483699690925716547818322973769975855611659513449087615895574425091057711743669004038480064439275641637317497563308815286439613307189884492101505908463634681974204717799610182105117468126209844172462097284756358682162819015252530176656718149613139970829555868194884924569089619553645933309420191407720002962267108456102498866616042856388053037910758300450696018937454139526029391611940256314155716133615982268253111644397966092741677217773310355940197538931948078775219017320431472266652129641675401592882902186429510092917865936232698946529195555124637443143747657264623907715261327947609348549194660395566556724040821779683994923670763755247529006536419618023425370826197831011581208386720557915120443702298923010951373499153837130535298205887896042988739946850566656854924395006114115500697984341477038346807779228890253635976418892118182599080574924018488969785858317134546326806486498804442489849384298037712578842623498142872998689788488539950141131607806632618017834976326856239214539952963316226404036513466119019110313420096901104080235650336916904421746166954358325456651586480570815328420951934745238486617375744858040658512814718319054780757774991009050209703305724001600320509153045307080267863411346380668849908740294447352358723139648714634453698255944542586575575513922060809231925135468843180890725807271049464586061244026850535480355367391649022759566939056816562478112968197630429422712972583305170122895165327787188971537348978151315519378708482613285191865609296827936767021420235849248985540611889071407676100233459578728870837767832240013865170416160669022428747759892538480838642095093405405044545153534398915996781330181923559882858816065391813886270904617784219433101826751155863281964665770881054071768743417717806186582783139656734208205844059682911850322499596837256494603361501713270717253351008709292012608103550464440824471406758610178583071442165276963119450743379417932672547967627587507798768555956870280666003929267983120741079157894704209292165547974601338637937839638130220814399991888325270988279357785085994415588591843996157734699193008354003698533759139041230868977513577519509591922166859397854316609096306630748116400656936337536532219601918448856705720673379534186427730702672992121544910545698882952535914894486215073346142109558839129851554791682860034139169046497658883984048337823836699646193984406395916367638331610711350952770744771810584489895659009739021080580354291516983205555748985238807585471109640985380524888523309359528443437370255681565426892561709097982283452774230618667119235097271944421948951355847379102415240800600907902041218050031785562246171395924360011029533577634039598711943882063376878364413411366003812797315126677145873124381074766641756474229101000665779877834958568760565870708572799765278061203184539593575491824474944924167060120561072755764327323890581173555522163668607860190487065981646434621630474577590034755924124742132254548602743612845727297849088141112030942483686440411473679376470843329896231912098531261411203702064329861236220124680791469907890414368374178714228719212349658618696595443862537426545596643572458928164107392465278528251593262811423764571613836239629889008900548418492899446906017084505486829400031509982701918598498527910843155513250119285976403780480125403948232075525927531868324782366059081297940510451978074590207171004759801724365942757807324535250689364505433113240812933619423228765757852480453549835635333997563885479226538191853076751448507637325818967247517884500408832505631620211174024989099226009849428925505506471979768375190240176055929385554541137532127499139264617127344544259458615494804104786190590098518401793329966190698589209943956058574152582123248185236327726709324817913449906825818338966378511983400897898350290936432172098081410255800216603352042825655457016731381626509349545797920390377773389455089040820269493330573846933344523866427784752580001048878792387112962258562400316418202560152981131546632228945502766766737998312939853873359071540802420747313757561190386065773711989927590694766644958800022265517201263917312399259000385177525763330697028013617885293238926269948294670968727364161438665351659397190920178277492364322487362828070109451306689276873877264080832358367353577757911409425151549717650884843921641508115059848326605893662485970459421544875732010959656167930631320859233498580814692741762687080609851093773651607100129043852065442191374263449527760951662338223446136956451021683416572175245391184615217468392830942483368075494320755071718340839822928507617044317244115990459225103441575966489802388328031455956626066430293325810451316539015470528324971004885013830403005720190059473045086221857333838171421328900518088127448070980954320129015739462334866784302090168399111427707953378975063418770591719713407407141732282156755365875565184729615380792428130878949937431901032731140271321819810787848404516447348549102080389630459924436562739486081125086404760191182435845858252972761060679884019960910573355679373450802920107127717337776008564807824273750226913048894577625639186946506771256798082032057719917557299831677618015807358484650113532558328543406249163071329694149983902037749224029596580703550202197890724765589099734834945652253449022430783414054958055363630049670385643508833797383706276441495626709421242643478308884501612186673924323166392035087169422758953854430185256816570661496067675073302075172416193234403396694586329824624561409977223946262525988371631988550616604954271984287922361003994716482146021506624142411100117553239339200178892519544890489124920467393049876199720538751604206943655680361067856957046535422612031232777056966989995474480655726847552666135838794930577050843888321971507377192544225627859420872669602460928028071186873303290372016008809218978497770484231023685852919228754762207474093252169858150891079430939049149739983703380557717143284088014953807298617453908989114203874849291686288437536218949491666786838507600805691851369017874369790431425434652520442794640634435425066589480901026788915829832616688328396646688108890163553287709227741147608470966725173725133790361566921465293159003626042503088646686876262456875488313918205172597635092407613624820377213302977190562481278967379378442983467406192136742397608555080964046689269227351494815464037718861360263024110555762908101953969014605260400418080040816529425028086039345860896987595543289198486171722083552489763751015165370800330292886174876595133515594826036984607444077263037552562396874845746560091389454229165588906952558100112285688005008109520554685632279048813603530079891508863964830259249352261946826705840818685410294522752509389717516613922676098175159419674675237846994215124481807832601896101130543929528858668685351022784632732078499628176479745904039983495282956574098233866392803224201446180799120158149690842624202765134864188444753754134630689759480086255891785341031098408889353508939671333638576947716060016078218385578232949397845422966137759630903273410321861574076498291160184556775813803815536233955804258127707755817384115710202610735115035949651096903133752638903420109043301442573774382023306705145208920690598284535490133942264296135143474543168636603736286547895469257349396124196149761926882567393807240188606748674051735019526610015551355166424802269831448978953323586757335050663620788838641039294860542656639291308382443025005225742343206807300255265336386671969077202148837057421260648189688272315578826258342627800088349386189659447940314381017928395958676199201046906414389397058111742271660525844394537306011308348105123218892040925481361006211390920896737786279245621345554736268779486593903262544711515670470232686216472937110910860914276968786002848402588185529057828710909706988519327909541760114836385517890106967729787331488749290103973195281021557353265715774667813624103068714754526659881394898182111836431012639720689058631129846448617329207414413951373353693298513777886454874737660037816637680166429346435609970485258634148735632210648013919640451205925679964702939398977225930691473721293007439468351830109647878290770130005334666990479467224643541890864306632902955031351904149560078362236194690966692223033045259263192803349886214880251549424223745818313501654232440937671318113213765968392279622904863660422603208862813736467000289653058664957333111530209654182694258560915514895375915732727142010807670033421073367232475741606979711192313860490083090638552013334950174247865370453235086748802653865861599955765655856814678333993419567191856706157055301369378017109903762971146145909489756000528285596980076137739256814192921375235730519680001245078271880144156708108399632458201791635535452262318966240830591701383747521980191122708364823564119142021675055571552838891973156511244167783486269484358590388616529553049981303594214381212358492861887499121937774272962994157669616109012391983804615298842836005624776745000800891307005372273118800862340631767541829465161451138596510633361860582162614397860684273322335056248672654010293454733795389637785887420022717273284974985118715454117019428291785868698229629197280229369286876385609741461444528280944931365535246931263088989713599401311155580689816172884064091922104471775549847499149126174915486504195934680051819355561994747872856797529109881484096082261248783399861403023876940049158520223195653826131936782714915425541190717293270042922403459043728982101971111656039429588695410629220465413442196293851255424103233147916213778909135411008493275976025827922612019631407816030557899718612404203568519668807662076479047453721984335541715044864432063128371810427904204695521815138701965787258759970271840105122844156183581627806006903170893940062001328182873543520284924030426277443082613943975151360021145405943113531961281823456975857095486550590014644279653917067716217725320740395378118937533334466488291850360194124602913165508202359873747029488799178864107552400208227923404700353230138802109523775095995165871621995857356032346788233025889450087985158187070851489134429168856502911838335062422576630955794720713191269506372827484343396556527689823969068136480594951469867428653174367658890407054375682388681091344495082075273199513096508157878241879681732061245372552593370068566312394133946862529237154601680311528407811489554835853092138409519324152085556683361035658845235699997090621937183515263657873978851379087275336170656267445864668009598684514155987653458086774720470595589631512945654472969480346174260733369962730035474018570468532964518505587115403578169129220899708759484749305119982730238960273155294465093862108193157718552534748977163583571668431246353477800933288467412149209038965150825073105662928237506942875542817848572891863666914411803298233417923263795486625598706104505506793708975641010795261495090378016985405365163180076447267931135053526305808817603212186954091834748029901125798246854727800313469627834740575383302012809125054219726276950879654986092042489356861293226178788698903458031689604602215712579706843601982817555760905322444472017932887953323133230087586303329530934460667177447591974037996591164192208482916652405981188917766080167551161744802590200907748968056562678701256312026909953941772997272928696930499917790323887669706122863687529313885835744636332140739601785388505243724244086218036739149886340017009161558535034408682163520227499341900826501479162631417061764520285951338530018940039334868077053290031138107834365156633951916251428961581608820970374489314985188897568423425885690472953051210908829665968071527697359091564077651264742801626870223677635917108845339869346236671854515067194430241605165698996418751227279357740382134306264792070244123679257524136349980427776919098533197109168888686420529004985472055385225718839291219961506246822473611438028369756767703619795893697025151487502627475820964562753305933856818902974870055968163324332208868964752989806663511062959583830861312826083634819797907009320933879765934487279574214620932412988868670847593730567512707026982947783248141492786762442844362693050317396008556025056399684950939129075944259743048296473858968549572733086453563280785614069207483717744251968083670660255600706336118032981740645654754864944272221585448022461755005580000988902861427611568634424911279654196305468340832247455115830605295290610069883466287508056814935380374924738567054301568523227480160330478825058684077418501006531017027144369965992151490712227561393606650718649308843277083329913578673198788410999201647975210462286692771551037706245366354293926706446365229357855523801178557506854585365622177930341999759894174151935389992955343341112833321485879527746475906737554711551814819049230995559580592382504273285301856329238169058804592487325824130347001411638022451078733174087893999895337098718138392542865932350781335606493241823230171776792601945711636556369244718969946098533683481156711663447439039872321590465387872800861284692920273281193210717451658810275949893430497394560570972905260198993833535269919460230590352427833261113805467548871178497316946850725632455356690428968305474894296774785298578678599707895842385431397709487287550730170633760942832483360195895733030496942254533005321500867615702383260304381847451036374221886783705198032765705322150492838935964630306127848039924227447792048428171262461717794821222928602404887818020665219544791033487313664876143692058434510865954299479191802398302620534335698292279978843116551686908222998275720435897619498457440079829990119149944704364342601956252785791599455531786682481277912853194601885640001257667417313552884283344287084518172836752264659695233189567161334663316911133510131151935306024322957855272234394134254776034102477361269023000319996690657170272222331641179631680157750673536107996402932364593153192312139202992777617211899411455393328877353457914091671831339125017626333284783870631723490963195341807015199637831587461882827621478941737657086312870456409907297096110703058649103911044901362407990559031486739208205032182115697243386017436269910540702139281814384354989682313564281632682699802222403502023576032957875158948359385119247245746066404584152395550509383063443951999925445164609362963020279016582882196775884649198325624820365766879697343962951720238744454011522854205770116050880924893837560488584278579185411965384622258600286734982404791365223912996130399813297638311113809868887880483473591072361888322178983693759056235166513231098883716415430368067181819605803041683927422510121644791114983433922088622699448068157779663753919276039929389075498705602284553636620573692260525245687083150839396690384909649389235586863903477863249667863927770299853110803711032130097270332441300972187845077873792634156229230245041525810384283321965727722665096910428325944717003652793835969293786800675969586929228040472226055878257815350371963844140308511585805856518344381847875670659461355776576164794049434239977377097489099595692862085910870708264286476091870815726535382612171674877970375074334189353367841009861133435953581149149983639650331597762847161371531741921175491577587529488020885612096644511242910505160030580056600873702587213194657479836114460759699753820930483309489524621297570701466259369248747609452219385106230693088299363552842095863676883046834190110397719483045378553969698092954567276529596623253581647532226459821939069317385721366015655974172695569126264904401785941752165306793138322588154658750790429397644358932760539326020207591352289093295093377130965739774143128629730334926387909769805516181043458397838962824667325612610918786877449057142777503022104000262412987565010288595487937833696595180585561174977110320728763042415330429296388751769095756214210313582107670462268617575370563483645731683064848162737047909224746575898478512050965079189731245765106278573220061496435406429333446381469938654864225181836665369715872876931840436674707588004971980518642087455666543122749289219618224591370972440169423010387353012342439494922215415288764500785307467557953579105300444737626835818800909288752075189975668714111109361662863959036914933388311380282937229396028636833704405094139244434611441661687012877742945391068863139986584552873503542503768984217430608549758471668551111959287265567833174075981659325841852011732946961418479085034215193915970846226615821832699283974416381459946044995889388566815269808863139559763371467124811227431100849251501021794251903621326444214588681776693239706739040218333739112275197191193003919388433270653965143733100596623139643817515312022649951078266375276653537895038172319599931242547927924890154733915105424067955630617134182375863740421155477560268411976197893701718687269974987472560876443508232334842336908000548853185828824674508600155265359590313161477469516593249660553968058117050539643390418697180300250456461584483339929662045536228917875930403675464125025930636523748655591213286479275250203891923110103313496830612063084588648698751877468844302077375721598474874273893035945952201783406929280368381936256919951897694479741487258495013571964860233812888050152355478339581381337429485983634129198876429784709985775155914547799313151803715134631803328739883648297401632849929139950626519150018992770735054342159942280255772684708998453675433867754260468332313230452035013563770070061962355724031250823883827243345626130368509454386856328212248052331930659297852270100673621351358800350068030097122533905454654621380488219415467798576679818733990300110017995882775000997001889108454193401219847916242834809372550744964354968049971012314318388832370693106516231529295544678163936122426230167408763110710077590819272560262380156367712509611123937243890260083178346776596873653174440474175872661343162195187128367561069816838953804613784719052608579315957868015588838321476894206151029111682195799580071040662790841393508829438522659638782199607096503188269031981391528548246911823773337770293883088696810379492111511870498104051399347961517928908330572991300506367548464247141355185832863167118913373675102666993879595277449107531852353677569280838115720976512256852434711811878379065525370898092245359009880737663065763629464716304756578547172617509017949890610762599153430771510244436996735460515022974622512996639343771081054910319678625752939681024037279387305989129203172594452692360383264295077522075590434221800225144385049499853592272254476180185683188086796993752077924101725298770988065092110673731003780824494421190675727221568452398836797807393383118562202654381401456758863892937599478367485456819489881114330369078770563000682351326412793095882971638853998971767988438189856212298734557886004725484391580431311100837730570851998465959934424532050290870844484672170008157968606823329894629465676295951535139597611257569320287031771577328010939235127584519938882476156718019915973219673079015014157643858061221688720407059791231641588877979503758672941791638945209242092449651151900711200685175408432480655228186321724301379129788956486222883719424176391319566955744309785642479923224476435981089368464288626959130915120831772249835674373711443512455340978727081977380208669598554814093943804821912131864501080443845811480137398188863289004009900008496721681219981030995759223183425708022509665484581939295723706531154635801317005106563775210257961298193885055761769616090461149126947924152872267608019051727939954822480928762894460543615030486208752081134566316202614588529265089726596093472023072710367775807661563494231744141539347765449778563742144735605135871716914575647489894359749817319215905679276626927575347157017725017106127530807789107326283281646328702847098053686334719231280720255712544286145698581877110395517306059129465996143312536912322878007107511282761750137497235972940353355207771210274791000812522074864008075273659645718556104323861543137773142883317995000250244617824531037785214278222692005209622220729098566844973077094637553644486778270823532846967917277905766276645098574135632155143145850172368144756849588593663871873752149473458909935789949029908710976864811123158077737351548466944789318770655355720519739656918014343314100292405411122619169609830020585138581148848579157142575609406251140051834317532163352719838371163960689062115077359880429246339680551893622206281846100719426163044242939057862516585677461939568790213924671111109702007681007313735773291138463207114524477445858581173097508757536454993093126179548268395550670209493618989777736800515042196926340393912099280215386352328210030776433520613749780043972477068024324026077956264679472149587217300370044704354891275704831671389471962806334539932925065032037364270198186840572923642376356225100055720738513127839148874133933585135299907268494932385339948414172908139915950768984188082030784523410087577269206583610069297318729724028165025163581044651339718495089390795253192979404766198158476039299883487419833525003636691439241198841618488521866939550855690919270726905862706481573970376507854331657633200846086019172985284782016299894850887736337713797657246066403302735603436603812225987841031859341212630808784666257444216834760577085197831694738904776450947184581362668861115166962955225580133314523049970450854652927463130739432613633260425834566953272508322707952099123560074904317926891674655762043307447099659253221479376953166321003519627100445436751323201185573238969818119991248582924829785449843469385412755879273599501810926727586274581737865593276159301821622050485470602547854536954247877175519079917286275087932604602195146389986073452209703833431645172742606198535389155102631900998871600771538486226056354377119795579759028279426064801148535052196388497175831232092393757329439786313449028428650985365569166092928586446014917024074324024793590896536493894760918672741367212387074413712114592827237528853062634372615864398698887221396246096450745745996200760868301259326189847490172688383636658368016555573166508489326340733893352251903267226900691413341984945303419759247638596603034164652985563026170235237447698988041257084679678108384822120018028163762592027288718539957696243889427108341434863885499023372197495387153196528447003805156441052329750400281700777146073705831952220778054607425202711532519032924345274508511285540302745345371509937555119611529700357789377044426720036853526234087889741689398056194512280186076619915920259783544519929790533133614030184301708757583485110388301813150439232232828758282627708030701461765788399225422422702184986548735445459661965398359417348299561389023077338389032026133941425738087883990004460211852069147417575207779098171874761332010362168492423063307920621545662816155882027717616409790292799549138315495461145981006367559495053966984565371512979004779545206867446975476748186499410719916755241417776250405934232559879116329847901872256047715209903293169926450134847868964062374016219091043481252370615565982466958353206769979606001056536028074090272024013043635032741501640182310498057692611315329750943283248274991520688721801584553659050095891932847469095821021676064694598838796816708330801731711079986692136808853149161236684241228549470153354372674406828868508786998245168202036425108091700655019507601836777451793732259274542948615726091663341071171125937182020123253835381831287385833229479949863751637684182847638212085885105972251901862719126346172190570239746088081245504855819492664185944586070144552484203123454832183786822278655269301884741835649236211166984312279003587654887859880403876083207801180035889882491270826828150158588529849485386128592134259920222053924246966224278946487879051739022188036604620511495241471858991979102512514100619752612389051885441387019003538001010463669395286812627862749847030066415129404300135063122148363950073491041064167096793394502925009258492632222133646813907190175992031034478780146463148245992884970013989866336419583508697565412807646563295868695947201869117538825105375939812494055197828841565884651380768411671003634628778242612612429705811565065820462312262263683806061422108975157859980245749473200678930414570911835233269863512198606890666479629482124131751158526387720298849526511887255812398096477542464388559978174863107059699928819323196498948448545334164353954705255724921582689679471387551199068234350264374477602156136171368642587508725278959280971092616444697543709757347270802592966528180288583838621438168486103009067455858526711946768086569196507623983394916790602515309324845492431895306644976620544952256139227346304181646774594110507884196981213741984462612546300818700748480343944279554030238980268388741576329427199845167465281953051593067035145993884236196196674810813816734582900932844107943051241705434668373623469022780743467161402877650646326087998862761949420723747817555410727337612540025881620508997805406151884474267393943610206654347076284285015865410789465560415008294160063167580482947302669961209504544663661828029506644264230681993975005423277575219159565057062395528529466627380723528536588087727833235475986228826231749827196645966156889699251102514991410595374256645842545778324978457358835916088695229966449151076587082070950308183113529812818056196766009596827041762543610651890987652594010782941452378701307638518285776800887026014631366563768510391667858325493553192094895194394169136776968308994999115842466292073060890228386539041718909373141038416367479097355981515650185485035085782704856010757273699702508369159877759366883753785316822026310685108531974113308833083460128088728385248752527833754933975287462361503136704414594668044861389023339133683614034324478308278545104215303880362663943036970124787708869176719186869371871310232269358698235406866185879242403999584113833530034196800459623945026241324871762141226401393361271323707310955022148881698007811893155167240780018878279955131397680825134774287695662532086306575879453104947169591595189405563197991913212148401873977745167168465053551952439107827093481302824014393764753404898436477962207388522443547036500910273056253556874816560193971166906353693977388096234266429087796501017436490927850495132003563775440423713131149202847710105038408998714432038129718830409136283561463983936714988439010127039945377541561513210702363834165043790348913644599152405334492722345030292539323076571321758173631517090567242920767970801739451820265434349592397761667690689482365241035180649451162658607713901740038192579628182169843650353000601261713758229014546114757807149019388274105674892956578251678206919136505098638771129891198776688430331752115072022436393598448736918350170785017771774502642139674666971915063805309661622320758090001623562748089365219731856467064770895071236086304867913534369710479809295000709325587879135399795363760730641854182445403705971180768086702226665085135244081242425045242606296223118609874257732748070981984454459615825949859911986442027125694661922866448922929174787946227602748884873734013780015083847533175494128969973704806319967108461947781452729440402431799077262492824261282132720966313784235295593846356149745031799918390669232397945236442316704853466782987217296382447403005527585134405103622781644452732390569581121789143808707234440759208020918064984989906150501285622567860307043304244019287751151439092907984078943668608812988887569612203808529806487579082155474898264596582622950240109348136642061184106244839406318754446811754832141844320574459574090171164052074688874696445268403696073039900914987667560098431001607732548985280989667793081750176253235019077408697169146729913742682698520526354958614059150384613202144191715384069200324883809062764863844604692308790032688880105265091719174447248516229527557981330133712307845134057075604962816654874622841966118696236012075409740831431259845007555440461195774877394204306094366472363632598344459683722800532278575721491488523618503953893231665749138981549384707997919686196959910183514116105186410061092078881765928471309936539077930298235025324085132935027281756115131444368111507902870620039567635824872352414712787294976493271511209609677417400606248629688422642031389734819948524916054711838885369110165558215487777838905864213810601317400764908633343176291087055351395363593883340567085903791306426642251459589115106169409848271260772247240128689466334035058858518621888025405308632007846485072211518609938502922805003761814300205888244301777547589534725935987624263535342667253410445981157248297397088427730648185543686022889894811683477420326633502299623107279750361016507187378435925033947505251944930320813686070494794221818437267077967901037299968670204742547975978278833346902168094678821221306436601923032565717607966701975096188349998932076170522299093940545645075779466260713658286148531138666742248360362033401899293049311766273775521811951216716546356729219912297897374873849039112458764382467068107514602720571001807499126733715518671847163892304954013373886365266123201816649133608418145466341294634244270797948312325056831912829266529788844031695698017357490913041019401036987696484237424834574958229938511095674882994681260607830144439375514082566759601280271413771242976723197805229606327742844754957351954621029185908261076811216025948757741628664103507430220629745655507828206022695442381473933768607580604290170295238210935924072166779790020555642410860431044707443267079675133897526149153697899949467740439386986643546913002527034937189914535286553024097906493045559749110012945507794212666453898870485704371043496990430549839730757494129960255275894296136346416549559128610047438190514371984111459839616268115613505733902721183830175530416503612395490832947482464921132591598549645271070514402283977767333454426472883909186471884464719767761195189411452587220928480491309909709594808951251065143630079164125699267973284994535968370335301821609923417828928537353190441800963518734738012700375042315107110430247900122143231343240313787061033668366252268187276164190630592042216125979140140234729031279021579437025996120541234774235320691787821389062734146823108777279590336680629337025358579443483914316995298105021764560934039857421781004943165813397750114395843217364060096569230401821443854402189900038895552184898323968648372278375213646609323488556974910755049214479768456611100787480500797059703870184886905207784951778526033437600950318569832315514883716491076320727598727504848469786414069766180525887241498358283013521622548228360298558670606023567735425654849380902419337350116512827356251835919402472816507996120842059319190471120836445039014314053162526243637679351786152487003918478132688789160356524685175909117959373969295055190952246037864998097897142254799724408951339062132774595696251319420403735946043256521259119834183555538370436861103511782550919679169801367148833443606970956348130959619524316450911471233552526651522364602273364434234295796918140197068918011902588971052881179482855881491707585380132356480495825673646921623563017623229743347691675365291785990062378618688961170854651136795583771993757875368327186633986504339485220270847148702300989204593861095451822565283970703092223570434863556471417713195369380072483639453088219979095662040381169364113443589194614267534271530425447099084957772191647029053635589659297064304811306696271050572302425920027840456842448486329179552673139444421911763713126440829064127844841126819662048170111528654566944530337821997783556514486108389122930904955400744224649301984919772365168184835243735918673007808524774551572224802040680194424709811170106978551458662609969861771596002076598834420049992327025191630758215036389614182874978742058666937575553673492641324031391731186938478861146138785512825734354894718516859289546287445756703352291055097117474877581672534245245893818677714275928719106888585518441429251726674192457584894097898490666718000282267650406062289808373078423709475391858844731117045808580072695881423117255495409185115735193696730072571051348373066728720948629743271113876262540368748015931304365686060964776069405519193866136783335052169307879025899286877342700355954188805921369875228795444923043219515374525564036984649073272208262774057578860525252816916625713838373803355112020435692125701325911297866991165714242651556496775015496126124772293328996189987745743191315219770707221279388108694992990204477805274418570122746540426995245086507656535383061034912708345046799887256509645769301430475957966438407283586725680419524094181610432247531149444244165769168545667344774220768755196927548949997884358630590402005773419932904530725693815481619136762766519806125765783618453393493796111728237756491761277019664476343252777735933688011222297483233523722239849664501861041570942372733900109314152490138390148189640104036633381500292671193288676532024607802102043299718188239639745773739649952300005464405081903692923638431922471711955909405942414852781547257838527243463761439085702265770116375514762339083486304229933823358191725865811085524464208743499383458087840779880339766709073108110189750121866835314357825057106291680278545756947514809048067728269209429936416428556940582223402438982208328389194804702466597001762970707807843046477922622289289137242647037772306899765420077522302320148853968610620712075245496573919663902620080174124312413194729680329095639375590101803909430050969341651764652865730545606258190851616930963821210253804639993788524537023723179458496681915084977819365621393373092775447203900294202088856357420489945933337410301942967419533704907616808238230221950809835561831824779676823681574193294774788200724526897313655434749252511531693658570505144334964356392227325370156877992604167985657289704438116448887501387587278749800012972509814125629935592469217568789183771014252403623645624423400145722193776837658969171056711459793287124238012132947701785501853616201447134459876067036067606126436168856636459929133679180314865165681380787661652724050749673613290918087215186068950966171051562505227125030253194199096461708403618478570578477375114338371540294552427513456812900807865493392214949821751990993813511665818302062657864706046155369518428985995301737437570122678175621959431481603646701779955676395913006126686516716428069395513447701008753854362735950233234571820593557815722754408829057778772511736240021777760760870416213264307902730581201557638278081664953811060060293320446507040566599403223493750146320458838370279306894539927567062765682923230658338447075117497531089841416315923287658390992630832242439063658180965891534728784476303218491365856835449835266662679874953037659275038611861984830044388827290498940927768616006802746010827282252495233380309820825696326445400001738300945048222136421607155897728372607462467859027340243322095939215779051547081268777069665093590805563179317714578705036549845452418907520023855933806759143598150609981956493077534090182212306995242345091372431713305075132600683761817223535909120345178564347753636293749997588145635228363758578917786490005293503247269662577459311924237216317707544564471578009632409552220295951806922751080769309656535646973488843379439569883520031877891838421575978109639973627535719741427096587889259777940470754868610343518838904471149616742356256098620666704597605018177352710843146242672114292826314064850692545009953723619183043675501501330371869487383050960224532535202862277576674468638317970562841390243867696490776877382489385274191354541693828222034204524748479150169923699777936439890887873307635687043500353656219481404740386165348923870911616544911480208259186271082129101798599990160428805667205265753363294115633450908157311442373102407975217946486909467327125764494730083480396063249166846935952037590578709524672461736471090880512958208483246258261528809957318594988950866017997388035810294593360875633615368222553710442282972009724668477702765523307372973816346294627933973603716374046491531196402564595030984839771187799389388663059613417981479097128217780606841839609956997667443718262496171068445573639119240021878751276876025222828818269497749727229318212295505873356547703194595033471301713859543998720509879146163705842119109582411815807530941120367477652444022959957876974132596939437192240527972020256189141011225872250756529906650601412107699238634657869569572055885810793397924231432713281799967729407584973337999446528774367545408690891512438144442260329488436847045335747776025624898574403422885175317480190611539521518298604137974864100039574223486170013854531779290220371202571428500936350780217654597250723800645073962228334010520032130745863507877887034093858802113166958699098514646815271937143887166932819757446518564689320218152765947152202380565199354267987972403277050586547192301442885831099308022658260785132103063935931664944558851068009633390677398552893767841691129869762062582887146938202008852224378024772389907477957276032163992614351071630122616850075702051447619866271708745322316855560044754764333598325250732960757815850584499211881260217665591672670871933078956520690225495573323035704726271996348149610642522284044130970648383905699699491025087726900720908023585400917689824293497959412295887653108844785589078070382020081228304505901225310413546903061616960247356758540884795993171629325318416107711123551777681202775650519992214944855861569543440940329531879621907180386500131148660222353807979788676758711830531400899951861442232657433143154620389944053648627058629738330225621387940860333419663587074732190861197563411248033533707283342864862110257738397260801210385971723647543950087154514465923357958727375881070010152743608990332061408532074937612762520385008134435350614849406427845047035392409781471501327607766200273803182385218294725677760777187299420884418938649710254102445524224717808025515050284589442775353922376214732380631420907941164466950640118698069763040491877306024578196758792839653702652772844430625529580025537460211863307442459238016453756344748336357142705038914467351131597025161483908235405280112543380754040152736318419790529677842408871683170794524993033070551168556437614509338200614092599553584967186450279516924262568156611046653547795969168575003527322637600134779271172863027251565888146854034926645254887449272856169912484534118983681328810423134302654724072459162355688584548021333044368745780297957394663188061315999912304042890203906970466241277215793816640866619633101175983435092562990495118186380848592020532211948420627964941471090978386138119960939826656799308680087978596982347132163342149064913366905843231586312599327523226009139649777340510813393981060759444528770728661872405463075251380936883586559885697277764545888902555267397889387004547465750678818518973459918335795288006880885808001661248628779889812386639983749630165506209276300235447919618852247403384309185436603538835195182207291236419033379103816793193503288860347859021533560398853333071034075042942887612328229660656096537429208789559885204125532690351631595467777816379074402698469859648609556153045987562378087101021256104616475000219006056555230783772569565991034707322365482720927356362928656825373838906637628318842607866416634857938750853096898677091375761355485726546919683933743615874033439525799964611700836924639572562141895932275244768950306584983363578562423950992906216153299880553208916174696645347527351963273944878420368834057849193964104497705366976285730705195062151555183126551961159448506877418028972253801813391520228470584014980517527340300040518015501099543144589202122027254345063310999562737131106711788279005970266807158805785028301450261528665365358038324493838504109603514198414839626945313152978747960804987277232778578469379818940993904127270938482451592311918792190906733012767292475177264551047799827616027505275952018610650902135255222560394644815485324533900110322646291541676413589564338086583379026920283903172366486266080138971831773506402721166137913503991009771282123256382832335619075809476032600717134042194870298670605227670686947630029977168859368383397933951440478535097906400964193081708875137627080166226033638222189036041890669361788495321225833105068941280112626964189538603319342184230962691234323609148467504702251956146325939535999220605294151972597946647677974516748846794084538907780160861172509106750398113215950828706946795558776226442314476416020111695157210517516325886947264071695196120722123307880308652900890426907835545755091151488246574190852724358383808584022060867590636821071217830455998124815714923025009111760371765200865916054643185783084743865333073179904305192612190737236044752313470897145596227588272278880781389679163930944536094078816603882283334905642734338379379704870006234232102884835274680127250261850720847913102135741028467353844535176167940076803651367655121195320706009006936502353944999073011793249288569162473589121427055046243267451385686291954666421798140428134791403951831694416327817880422364266373691716814371518358707094998597792505257773082125643909799602807978932486028951904908588641655962101548612973284831302384478329852927537049811033131614463240497561593533799426773692364586437477007575849477076394757932399717742146974691823816774841603449264441848984442218224355700548889667525639120190464983188511070948980027093719870766681854470636894236121151664049978119037167671781481447675443076308845320413920552961113969734397591060811099470452618934866771315321829154670324792341543205281135470611874084088723695792465712885771992086524043899733106045755362540185154452955224506106164892322935017389124140933042271072753238505959270832409543311963324815856824768801802232910720679823276632880698188213114436078739927658255668020536338214341567095314116551239700644497309200474833137340711321192012896831187739996704990377729006790592158238638541698860356629334686828147824249063206507914560775538370903396204838773258762134411231123798400517007383078476109181447128991551850293779911338449322498091496818567721941564782573075351443012117358432606069308919841444165330629337216130385767275619315755139129710287344363974731515737027621557088491896209572029077381021172409234430265663039056232969134234461896669556665438805142307517256590187547750949429469655062753894720413890806393485732410159632964736086525878708155651861183037878527369639175169971279731006689287649562526828303673360500426722693481889325181851909770324501021762177627952145787307240036168929853066892024432861999166216145055690103899834172076835522253934172248219730913850106420723178670597929296599482424451601752678897161083407395585551760955669962900163122603723621960679396294697595374863071916945628792468511687875345723331102290397494633962905281848006703369759402899521585954121563190937681616486354741129687243742082831539877381546293423149213998920280102667706648857048892125199516014040055148308304476790965784601388881071650056929099229660737042006056911070727211002436122611752374897752384529172152621300211727560940921764986774035683353554266796672344058174209353310434963223655976616770612109496206253752713189666173269338315123529080531951346678137204145620249960629675199493800814209811060071457849224864980687146931706901187247668148144046314865679156694268227939099816162805616539980281507023605095843347779647726814592116146473020354193392463288966379222196920811798600871853707378181252054112309762676331656349331650433590998648978228771531243863579397747614597628742750814741558698744140656443779534334192007275451180943936699375500570961484720468926488400789494140792820598844177421225872143933950929506231838586289413832227639736118696159775042272394695270028821356390762760928673920812983269121699150915104399681290389230000226498997745435450509346376911883320749988464585731575418429196098884657940371585698618247441503804436510035487153328081092920365277512049379148090874687152400946652274255669187370064171339426368130083405517079908959976495698681677261353757299464065934517320091155406566099394421249537449133288006016303445451001057113342071544810686060052765044383992407242921981523544440084058476377123369620336731974370091919881890300241079748413328216201796761543772722768613030473229729857677605500639612758689008907387541740114896489398712234065112854908775020610173836657372417220886429960761350401721347984873964897294774004858902755844326334828270202271883090734984477106957222988437210628650416841116802982809625723548739759587556491130264531139026538997213694341731702502771424036488628089507849993000376478083237403579342604196021560805552394879306316201593837973585180297967674418131835412628896658241186798106752573197651336491690132566688147030268422005948715208526728181198805853983319710755319109873794620321450859572720376124318683381732659923391420335459900243566985407694766048180043215268634574769632410190708146595441512933643826829777077563982937977671700868484720972177868344793682189208149671927813780018848218794688780572092847294877228594416802710422513348448809607430449437930173374487504949884112943491521696462284004447599048833141073242567245455671808903899964066933115129728057223658650883344674276202008933768326523178424791552771777927965814819976027220646202295813961432491315697248039740172322024720731671152479362458439559580017762902818141354324357238412252541203676303734120361510460300705967962956623199471063462108078074504398566825658913646951425830356495909437004225967427274973327050828725649851331771983917788042373348716161178746668063714195214440257610183914737385960307431109105050048209938406903100235521942146649518688569601539750063658793265792648872921582968834203121065231632022064415475427609749978622106932164920536415817672714956201178383632185367714618554469888069709095398328031956211818505509420681905131400578215543212063732173339571879407228065697320903493397121713348023921259965220251686655201616778023344645697707613195710748461691437806765261649775653259571562645917417253506734825154380990923421659146508964119867012749578788227234086499203550293814106002714949684991371951369636393675903563697912834021374010395916614319418285273874441534717586222956626522270758955835496347630077224915552198518414358827193818188110953146210955786009830427756396721894513088750395804967589109066284555939950790286704244071520932869688943327493154618830660325476213620198489843785135934444521926535195016767414647511698946903529384515174889850513401411246372976153861568664983683163237362332735303737874181617725113822240993107065549795807266843250893673416923644319976992044725780119080805182755301370656687586683916973065175110537100379788428372983312701455974078521881732888650969843456066164683606146519201253180864766238274223066477403660672472085082715448596689295759702748728881166866121469870086709043323486615584414972120507973448683939598102176130811740497012262416409606532046959080796539586988126079398061099952792571256896336337184309446226485569271324086945706914828340465217965448793254553482566660738255376356151458879577683924864801907826101523154408497990657706509102364471522434089752630183100241726062124613584686172862659892195508344874891970429339899450531363094489484880479341473833725355032558194825158606722816139054254016669433543196051716417569862798913924826903099465624045429239670348068737551537294168796758309431672737263863882513188667412350637046486662460462183618637202049233126024882279431666812222045965185654947700152885567812819247182429668108063345942470818696538095413592248457066951507653081465673744388000598972798898440861955237725981776032386856805116625560439663769932628480174670583850091838950034910043381467796868302725587439020505371402301293874779088712713281140996827730960959872127280481320116553057118540164299801389133841747121458168701877362201508179481377534457787166754647354685018289858639089305089688002888538717234191195770110935307403362826260006079896210913248783000938023086913704822053117453500984659661228464288187788695105661779245051193419032904558122580020726750119891072646101041879934633689870670989310411783415107299022266596760908516591237198378674713440583426281369116116131010414233148885358110520177811368741255459913684128582636542386233790356099723680083588698351717508401229312433468632796291933353029186863445873965533497012529664067327777391644683957933126187174666221947440126791459168220921725373502000956877178583219751667947277055633421421914607904593785413347583097628409274155656140759989983124376913636072659359731180764860060980273025954976832305854297389661886422914581603460057848993335113299385459504898494731194004901122824933855994268121958613157118941827032227984978365836788650174350444866187522231149611238241350087991210781838193105118468107296229670695457997665445176409147044853690306694803984570165327426807877120970620064240305388093529077243237215854987751776804017118964401987964430655842396343514219873493427062124960194025790626554937496327242465434343606741717845822803803392644824436599122555978278073567892680741075729852359939024553065383506453156289405575972210926071364288745797132149270978890382457289600530571052493216949972318662513303932857546134204146325823674788859287465777083046294859558194265792169883629216891924248329889608219553509450421635578654854241131574148458429523951043494729569820746564552092756025993692785597343562873149403455651734869258864355662811191110438747547752111490350888555557398716737707828544672075959614835802793033098728960288199382693738074852632167662476888818174027480353668677615486049110118463357187482607854231095018627752516099768657323433553672067322740912457679245728529593135276351238085369997337752136322889258118591635453458960370012850468940162057579456784357000385864380498771073027802872335830146195978837993311564429377262143875229606185319278412813064304169009462062043541446523273492201155975109140718678268667062926767393385370275445511443820330620873052792893067908735320406931686864752835132448892218420825934424224262837045900174636117981921608410537889741880272045426583953136871990575662053912377090615133902236217219127103988263451579430689056241001540994214288511537181527264752592954698453506153638323681952384348057782506092819158928494320548627582370258114264970278448400479742100088446238218603918639217477900558280256983117198642689521264743294474447444252275401453591500077927983637862752196788112840886626473654269412716117782838236463269292836116294643689043420694588157984360094847915780276534348461583217062728906545490512675814995556416090003738300066684791099287262977679199177292687164074335605058136467339734018835061055061095433673149925035530391100453672161674586832774112475025225030602578366869831247678755068430794224117451138367123928381130787044470088301168341759430451631932079526773608075415768751358454505067688513763769633468136361775190011727090851985361022297951948737927661532260837682256363326958991647004558610715782194493186112689799351792848374057794148051204124722132685654995176164469407659771617269728808417630780387210162950486407861879480737903268839696227297971613932862796254563465968808054311219014102526090169414875242457574501047476359799906518247505279725287998428787021249900761652718665974394421896182549968920808763002080530120750208372441378003578996520294089699194979735995154445556863147882970489860900313711741584241172566802362956083976279419877002667557669395918432960282454865457546362930670379228198634146421751545421996816920531852310455255141671492434271781934023079040873396870192067424937790365890200611770293145792629187552317504937660294017236644725353314705893909891070424533039890542063334959358246137553506590304064833693510393092564350589400766763686057906279812765371525417971911316887815705544177194401113118802092598658030171292901824202501362912088065873499398612718858266117076973710926994346158091541667954373558679820015840496666855071148836358643523909096441725114443410772341386592173471545620560056748465622832101280433542908400269173194024633710682967144205362614675951368501457361029741674223524987925068365838414495576158371299614803759218467970384194920106814535015359784123479980958550455942326194252700763602166087092665351454838549029812331861545806006981874990417758270595689911187981217136813398867857203491501175099094590353802963629783259290855009500261029518025598795514563069728607337693159742971184696132915083255853195611537122421666838021673332209576208893153686763999156355885774590904473705877745094540410994208657358924862492956959246967419661686857491668561252453648568793599636418551732883199097325232510343861467450193608569857363415836681828869968505367748223755625937421280586440534341222621068297229246242616184706713083573488159111579367427578614644689620656497156468943156067125215935296772694753386564902828707555222961902273931487197430829948341653224779368343001028613707759874691120690629294660535184145360504070952917517684544108882294061800286292488877146620277898959552767515780171114795933453790166995682042968174564125507938724111700696544128161106110144072647620294415263815175135301038892662760464444980566887591835305223501819141692795141562507587203900996512883039155790887026900144925083259696816285318744363471886523638193349704778908038190480871050687430287953006137491465060700238153263900048273877136055866720560158360217343527420332005179523439133747206723123317806482189178855011046420497474138121168289135595175421603116424346536688452557850973998353069013998697929254046386538529822225586437097178999835179470779686063078095103893658972157182924078997029578783156419968766062823570104000700370724062056717820866638903391396970948844447356066811796943586265003116457120892239636183119144255496175801180985282634968714280020669665894912036856299912581774065433464662348411632502507890129592262458132410352006172575557957479497447005477827858974655678055140553895464617091264858917377812494764087884204485600366389239113604567990047512407639202440450624054951830010453626147602989908941139017073685177163793182218837323084306822979172452269017331510906073024984718167971235609903978156132747863732629408044823807585459168100241084035112924329036652282430950081170070852001473416138349434444141006950815083683478139830318947021691926754841300524765434008093776414594487819507737876426370624609772111606549503091277503501422111010114503382503847974067104674441633176266600441360046204880237608290967212312790647316704862294689692478066630570592168407676510689131863358378704025336527998313627890339059350480519611419321795939581584083125437580266274539105787365842792337260162390397741257233782178716721445454163374898850694642737209292779781750266428408103662803588532076743721641073792381566558982456605083317558247941268038788348505120997269286718423188346146202410889063034774115950588879954904771567284535929510445478126488181159898309928653407235027509454072527390167376219215841534635493238075960948598078782431954821636135016288521056517615783332876837430685085590450512634323647476442752785483612145443352564644728999654698990550531805347649631630898948894642347515078373514668676952240867977583146954257642788431261701946542374405372618082694793310418501669814603073410502011045906543879461127266179848426037961270473910958127309615384768097319682961982396688123989806537304695116760372005288487427885395434321807124966255684666450886300693041846681918537961470711898659463004324351104512129643694720974810683474395731804376571501887554247459516761168882343440060570861947461235212719463401298850782739864012915322218055281245042358939474596562147374424877429236059455602524008041608084306226648510836217983705571836816750015975091261472448243460882332811636550610158963366199824502752402803223958134759426768817460152021142882176900755040349509000411979081145580033080041429893787871978235844480098844190146810757316540977669001719864188582588087993630775581582870450721785430172800992973082732305180788995693614706706739116076434815433262151391731164965010108973870956777516202584651123897158179357788149142475448485303627709428607651581743278492423271040683314633729448374820422412092419724840288196364780178029739552943969875844895098987378900907738241043830032782454801583186818568934022887165678631065471957493962896245622714869557182670876709575984842450276000690211291477421069955138671791457406381171812286847626597405638936488585028685583217495287790064044364254861910540139701240044327458837323213003132060363920848635375523095161389575304686055042254936569107243816090339261967164564287362166915844668398126110138685789925579918059054686247852608836969938782056485892689799905266445067486121051009487350082512066013705897102969580540368135996131778734283865898898453025917431291034055559511680768176517543031924691059509915692392752040863510253998640495028867170377466774145102972676198575134769054887774816043965133550180915988687231478267570957626568098385345216479115584924801081079935186638431988215870510140588071795013749607303756503753316768487765853999511867826656643311490283190216330160055043660022510961225994533226819618707891816806148107287346920412856927536029114720136123127677619461985669944824859083363606154972862094313710234027868746605467056341341882940315800507278653880189798267085895961620953104383273231442819446364965374620857339219402259779171712475965811951135127173796930784137926505254241758516686508142270781566804198817798830391827828235593875062206932523595202061946318965849430447429624984786801786291795712380179299894755533081426236890298733510902265469353548952800337071412221627644510697464772865493239286149106922305026688166601863408687433443982729705175656354452919129922406949632997516557936144173865721776389017506233797256024223619024487199502334481525078785749365414987028363982685827644452324550097719256639417206007852641849445111330892770656479160591925474324778860510241631463952824885162850546515479635915005662955327877695045878689623234850135876845553020739061779175027567308578741711302033147052985854375712612324423701870843526561294960977531304157542168223873856280584406165884323825227938754686863890902205793134649578278352698361397154672910448765326462300758104554815545309308266871968649628989979480348593134013289270489858358158291630935550386715522803424920269752709340353363359208770315537874137950619610107939873149119436339311600999590285495582493071815125982008487115782214960306621339850231571682000571178035579692153531388327249757378842926807541665578045823381927374642525384310109395627560710497862450419136410231009320088469727291893793034291835675548412545417721211491942615293154269430798837969931757334662334717657300608561299994081498816190873844251022613565482943860338335386622964767848764964218380967896049148170883384791067776001936452757176537545488745432534964053789073259771938519147328054336113610890096970034543510601330635201751695696887861508429272299018599220958925783664180742974922241721720399597636051211339686047672682123864007596301182779684459680432070228778649810627606825841813362992992673005627200578710076701744756224478173420516051175794737319578295268408120162455473642832283887474820626755079340017410622988116635447683842385284891726108824071136133132055576713438230339638036242320993626278666080906400015111633365743683633472239756580435142563457285360007840972565974912760606644611519720765811246041238174128951079804221012209118794294632375892917110321830109159532803993663455549483407005015542063282107611143159331751026597042677603420352376512387882247451311587291926578065378080871591732700977638169205466529564541193620218030469759470929670962674164114131218300830818156945165292317564580026441821861872765868681183030905287782530627167511263910516823596330699633820803661921852611527553527787699083427747641253897842322982871307801491553932807290394035064066730133304339341875666721821275102593813558423512050146561678518036756062558126859650035083740899958094512419567632964407430763058740399176672777826010742318314026863404824011598554494156977810213102592570428634398415846421042290903218166835293285922186747950321677508208477917199262408958743364691640412018376541423620891085900581079705555193268824858592138516529293484828870363697898622018102696986940627432005725741589160120612568050955299256455729441761761794476808120475495066932938262663936084816693689125343563956234148919692171785882674325177315541266786811147036528548256281520704201537480420641730751499209816483430041629157543568317720457426390810242181214445845737976462892701131266731678301495172311734109818036596691224406020625520674292536281744330154311771133365294842740564887518193023668510090526831119200321722271942542613786768651776915002185267928906487623881673105073385259837389877597426536826215333372761383577454690475953433726173110263721889084752686233157338977811621879291784851985193551911343293129634068194790147049365923880789349649063216923701002869238646010671700414191427879751445548831127359866393379493449364159439846619903963723770114487301086392795797029586538080398898215510671043343327260681417998564800472541598597509499246468997507393982801972683008783115340255141335960114970098198254034238712234206385238035869736882787926962227902051801653378418276116264196130555119655126039038119073340425562211131487333430089794063210782901689911177404218046088087994478616932235544950254273153850689683794107977754055640257410285540424770535261436974689817495749955081579888355579771003323662352509213889881219227703510818448315000332865044776946660150198147600685351996655189039221857681932429724507937097898302974177845189478814859795953947054647399043311893427722465211555766936376724999936572999020358153383526820979936325241604431581316175194767069500819605704728297444078511334515320814087261196783206858464558185366973859960536999748249328822590631649600379075190060454273716182609657644567731865596057829603287493355863000693263533374232173736306356749566126572697343441411685495018439467741909561276824188462400763457827950866945442194039626968181996803790888546072436014278066689394291417753859402676260084106022012832191322562518239643226672453022481727022491504423111952995429454649477595108492790226148370280725936495105008706172379218601888459914296975234100282636148509394435755430498096390221703034997298997552085009146234812038312120855691581830187040390433030473341204140521935618262810456221331055108775402757037947392265412113047733462852093762735397873309449372022992280354638105123734294248655066186156802786851131057579207615475135005752722805027091775050401566813036472580610906338976696856963771134517171405769083908314668855704809921417587908410396068163625141666643472908810476292043346808841977131519598857052010395838678594638194471123765325941436677294147155587838057368423853127362995007817295605047509831835617728982313089131151173022230964845944114109817516828297214628850931451643974844582757436196821064920832841250368918261082923017057712546800052173648741775680331029817003394895973340458053181182535427807601391820672619223911342532166594246982575016118653798716848976391369188728463573241050704262596578612529454427840068476273056061908439226792416696642154367807832345075479727079014375256731830894093262509348743550425253182749034688114769497214553990439396183445895409266471814553475131966830494156154140029727071513122234506899412973619545931443481584711005244390108851075612042091865462040763089584321576224678217176731587349339058404444309169782560847579042454545161872877261919149531651023285147063900285082141153296031119935615612156693542606798395280225755392140667801075285278597662349941031480646073446230049630794973778561361995173166685229517413771924576032926690734282133304174905602550034675488132081413761229544237008472302346428514186191918693423139208780596136851985193252352203042790777665933437441341587114774897332077784471928403136152781664670676189652493237554222451700623022105099305669194151703272300502999610075183054123610127495806968817810451740554866467728186520409252510689619372124306385911329287631700332343507511173716976008389163168727394220487657817909056121321446626018545450349726141862117910528977998331308699321199547288197360114264654704121972232988149450203585855130902419275656568262945370679315685618773806022462526652380472346344584219208619837911124140955395546793408283880296848660291532355239526677443386851044805862274894981263769228916956831520185314476317265501014626334777791410068628223990741076994668866768499733681066622517494875650437223290811620752897989744249009080545836719915341334198056885498140505624649994623533138317172984215859485620128530674616501935801685749177225998250425119941552928918498802518135591658866735667227196613126198810221743800265857573368958408865205228366305899007127846814796888220058170114229077522859856897010098620483083774010787676048294449755561785257522893069356602963302083301652232565321398771671103481052591209252378747647056382268228657012980724003199655626144311805544551214818727368683915525090225247125375062869546208411643055855957922582339955973675531407066640128576944977152101766297233394833945227945400761204695814828838713260003827525885359736058037635173369895859218460647929894105041793037838952966548567581081764149501953182511536393136674238146548547086026586953939023855034319580048223961014357386880580396759675324302986297794466409946074852292613300234217341656317835639997793083462178887251056062014526803231637841208630547600322555450695878796544911153695499482923532861821619925075663011127823148297595274886779282353333353870172292370114167696331032001322164450760668097049120775348694273974527144855221572988004531282477737339587955269414177313480086243098530425708613313770263376615896387044985194048140828066323740054383678341579300175907666203398125066936024779069888129766407213404165076862060033548840033403160441199706927143982566932888800778953398660796419506523200846466628931781505125923827468516334682011396985357881618532491732510784195590549721284304509993957375144323500937088250318759757324689698117671188341552455457687271647626188543788995333611889189772897700765407101619654554648219029223846584390078720845907129257104204362705249942825721091487693328178463307334767012388689183349705340759400812114103702808434360594212123654491360929157519373617186174010615627023389325090636256313191116199158624556243743993796982001280402678857886017723614470149593242999886234146828108494221654088497851207957432790554287290911713877627392869194617224997082819625233416659962380759019162100054484000061893317547201319563908859222597209252835137672601107469622950627158956615269743794580299233776060393968545356274339264938724099388751967179784392981599730719727027048554459811682861588434513871879107410480961540546390242751733703463206867034542405087413758743329345143008589102158341066706111235489537523411635939192769800855858281986899163849389538983637834840871131372780489295834446620010131738362196761398144037797015691597426316797354459548766828625375286633403971003096410611997444172867766007812342032995684758922980298425182547776379634675662132601521438134998080114982793639352646703402734800071489726125839245137580166432315323133835315536745173589169849547788432311557046335849257894283186450633593652590158476439907811782076101854108648889020703869437357799813307632187485745379435195458715979634809226046421980548088615516114135990411182912356548507770421298998339291220777779384841910035596320289452433610338388987082052300781445661848148359110567794346654055732925467170497009280510199586291205596389345010114933525238245178080450346820593731844083459383864863333238333467788141899360428501967999111449470230091127228189619434790009500536518415710801030390470559217349506865246712042170178784686012776934662723108877811018455399818520314067416962720580028471024551313809431424930719524351531876149231635108163393023013445597266557699521391069948499218672893369436271299271500365570388825017006766706982542307696383955516972864404528770231208292881695000916465121508087901844717555257229364159993620509245743935357177070076591519518974163006892528348037289107364315491096194898705103073332761344610459422060819433651313027694202186047624269010220890437850913695476006730098783372559065873565328469292788407718421770686458105480552794775252610123748494378694391637426617236087815823588997932175687966820095697347471038244697706704029012834788751771163772948265084316772952210986925975096203940170134595099147685316571866395963225020693964499667549838916125262718410923902143781990542469235057782631535181315212478173568217030979036156036523576823681772227847733176884747651111921755751164757029233239351222983127555104452184433823024644769496894786191505073396016486382237114662780652346155210973303657534104328992142229802205335954360343413917705180575330902420187184610082660963062989583133164568951695099104502663283949061678237075450862415237749869027457063884413788880442453606040874617976589337933717903843078058934656358502661040029368693702490126958908091905776952058851534066225149830534584529757804748182245487677570444546282471793602832068276627567601999086679695199566781844831021095080404565557419862214332679994813725424925446162784086798132356696843506947906667445630795014730633700195995762108951453823166964047472191134306743799870496746950579887058084200713926073700808574119613093922516366481214908914889098059689090603937953753272939656540932609899052621559057205906406281322837957622855433409046825316992882276128905095743920731971590735901535475640701780096190294779307013976354028692478625592910573480782706719152731315019599443443677759653794888205780502817627511960083879394764048123027512448184459347590854378635367727117896514286889164374276814143869346900493582660940916729445686092903376636353121371610196548166651416167564054541481723821500397871631651986355116885733399952826522735337897947278205128556557550845938273870868642336838160738930799109196647654324739986544695589843023274099163344272418692137562802242310798105492042169814167458945240134514524581215337856719635148558076615321443095763446493434272466938373345119108773304870494395111801092616702884598987760143465216268172980962925039558535521658410333133082028694075901822925386180046427739289173571630917934503490949184391408218608801313455114045570859954675668073005658198237173776255366084698173530604698180193809695805375807388597305413823958863612033951946760504159984226223613437508527376420215656655030659969777389977301790435689724136995521962965489767496246192614322087525521078569355667147242786395255969367399036768797834560583419924628565869138503007620573745171836771535609681224670583625019235791917050792705440216133079713360084145290468201019776802629480932934404625161490317536918515373015593811575684445040037004710546377425899744052214090054583994816897874254998722662454420606396739368239627891072339581599554619907056865979670759171309323489084378617610523257922657052267898335410516548584521724296064703852183155179191231943280864432348952731227923817623213805970577032364251632297022915721419853286734058767771033478138241081730623988247686405469927096709554476975530286429715136991294132940684691800797964033308460256716301073831535924249371899266476504290662515170846599391148226545011369167815189429551713728931654859024066303547978437062963226805528069109495460936457494050451510168707599179889630405840917092795890376023563999326175917777601239922702879271812661883123095934802799693461856523502395135392075564209879072721025813874348249464761944298892418626218251354004309577333732759379598216151663335401633976577480940324887474629515578779226122182782037224436556460583703277339204504599696438136590568060247886591451837198035496969219017887971662217553078232370435250566277700024372129236654476467754307976554805764268891615937657915878783399719401557739994332589629651126744922369423306789590359701877323665996106518494731430370325494035922932832325946482117066553412293195686302294510484808942266692566234761816551725711824960193284745811238162495965113762108621349281050200877849610012305075132453154641720283508549320502594185520698998694922854932237121050252313575268302952690561210693237760906392904216416545017638285436316863420051506826213720090921730062925501615415944008342743615552946835433842222056976277369107699908418224219354221544079274602712208872502248611712113753540733786823912199991266824168611475233967065697343583077703944540770372292693128772819103474059455039995454364328610971941637889865138770601380683160318309496419669864354404086603010306709122583536292147118575787186176206287709647739258017470781331367823299678393371838537157222898483899553181495366434406100865588444510565384453631898929264101022109081129221880385562739498168188860611014027256220760366319957627205373243164011095420342058794082222021547724983938706306674131195624800902014444498511924918204996135015674296463106571882613468506578978762009291783048240899222130229414191918069782733804902043580975420837957783788308732581083227074196765127869749290543975215830331223696118534344025330500749048079718924461439760438189076151616427333658550581146010424056522910780058229181856367627050652043382372516553976912822474491293371907453178221076651597354908284808093673801561581326434944831392085338214661500197759758767644137283448442325509065305392299994363102795507614764330344136882249535397599266256067276939421238889272019385799718822202582500699113660921231014281889085883139120861379369669774844893823070432681547056810374976394914324655553622845678677019744478919856868575313788206177072559518498828778415430094211842866646650401076013303921988196341324280009989559386927083705788197742846252374550230779057837723412948356932619543171413551255825660807207836466131272941326049940764876438549757988933702263488768867997042211212735616791810663623126508453488311889036176624502748310834995537742493397215346625809219867930031578344856924730530514170392918479974339173453856198231202136517654311006205975960195969134072998219436980395877417371123832949487807851549908486159290066170383180700548592855760620170852261158533449949878732158872403557833244190067429966083079761778883794017178019326269164873796709798345968256069403466652434564506655470317176155700710043450252018827802455568963544532390707257107518091349959149458241135616105620895698584334199525851149444696501509627940184546842637829141301621196174660824629938509756365260561586325556949266529090731493544104899508494275502748653900975136058548834060180819123726779206672776454790975837373350746710611492574070449921075589398624435728894353956287527755601117414551664672652287384222970317050016593338097773429877915478562525577915441418651096820689659275893060210042953467588499902429264634191851889368118833435181924868956110702539942327434006019190210348773047646468775886128925820055748922365329841259212794317371334282764126875081072102474017355770860646214937306744483188347653499312881439662601872362189406329495266494074635867164799124795717924409975815068569638558425315018455971340308615591155421818019123667818149233211232765877615223253404860369117371619564054531241605005250596568520978952688448181262637815951374210732006627576624844127803919217639885390829650567956790406268570252195660915430678388930442609897286620096435612315742705911345635576525493166311069463201911063888837150918874049396367106524713834354175735519601536524562493659248601200560170431500169498639518342835946489738962550931504902403237803715751972190308376556064863439186256027719768176442859944714677215833238894276770864475984108517987241534082740510246638022116178825899268715713114589434767158004222937969367010693339737926102407574774304473708684818989042544780478770194019756680814154700325593610583229700487562433899170761361731458712212925869947180524026368281591313105644931820526209929472843827136949694002203020788468713345813846578365971865069568588585370540944668768430637918663164381874462195099960242305951986843067134928259196273326836575324962864234920152101831471911399956389411098778626021858147714803860331455992996371187883190442622297372275600736031585737218441228384450944916114325169502889483601261394494230943014584945569412839994498213865465139159348250344943910483315115086363411857450608205671287770153043296965003075913845192283169764802356377285286904992083995650422002157891983876345813152472962715092638233382008266391862584821745668729848399942153748268022010579791282881296731864423068007565008119486806891667948872722162312150982647496322740115343221778418633313866944025662409290915745945210036939022017465879327013060462344036792207251543188513481509236808743933595417108883362282286429317525231482746554009855774084279250785384409099989222464441243712559941018259030900766193849696352775449478779244627015530304462984342489207250775543157490731511292385007503689778090462354798249216701135385325065772224136499598926911400614538107243444242236802218463322759338192541634536614424881435774385910487189249857131922116316915002708438226469796076175407681803950702154144159736057167904802813432890684628504012891653364734428188089858531335575913512324164337034624323896128569597302138371213780601726115817600716374871580087452980165842813458916434884099519168497501998172608299832625348434601949704344176292541649408616308652082442248590634557174112913081810316346484029319597696443477202739208239780772411623679944970817167461278389871996061988209248156404429953552694495138608313141636925532993370727669209571564665111433051424182954306119438451898374990154716928161467127932096847550501359942468035506626053137039327045732525631893401297524758649073579370084232003297061354177955329576372979356462656839494559081119250298055882819675534653136558177118939396679790329698726274275713933541560439960844536955845284233921490360376654772948005142832739716713725273834215028044867711308626093507445082720877037664537032286762398092733052227781654307269785104548473478336062608742265541444657962072615471664005200373115127329792433743241752214050002010595440558837473498730992068578234024921360042633784438936180872474297992922336399868290568041138364337725252385542671692464144415265137892012084659192676966177414164410757969431337260762554110088697467043195841227174172160957925973521179079294892340869394499811025177201929943518803908799508427552993681278197052533378626170630836381934914861917478975354419906653687138986371418086865642488833626674563229446296532090275106385874614592879118035291548720489370458592482352866724518346862113781754093658057381580544276920463830419123202591763028423567571303481520060271256867949936366042627064441253059991844052391571192027882406921395727086820151852802194518965779976750619015667635801713699646211852018369148782985422715090842929783711217416540848399836957649214920309588570456287043726450986636726443082393643897822067481748553491461422912345747986807035615841672424582343736547944911068342794294781109924915329696401722328311606393055833895332189838331773664522701066035626768425860093884914027727021843706273031838530175976488834357104381949068472802504015983274593254647892106506557353918622557407560981155030814016204347069935599950412135573729816291029442523527264848705221635569030655192781900330701331646289035466425188535541431274403716194904257178895635135619960836275152309912325615611597370988680885892197477001275412604307778338937709630666340841983001720748327740405776497346855653160593045207508950729210622999857918702397083824711212014250313547622950300474966409868728927172957644372935816298015283191155341616913127896183442094204563852154879656645899546968409659526517367706290619699833334309255706294625327772900114698883528339317233345925514086572235757438765513221613977831891771381713274863952367226678530410315540865109782792230763131812138250592130378879181741234198124661908046724840371187636230017405015744560432849793732163466945717100641915866340106886390747133675499278883153838064128589185208657692975671946795628819292733417940456016887855934287609358141615719754589607866550748819399389930372992757306336517499073095200449824846859802487195382676897246771809510047559194279780181893984650884395925779004921310588069663973556647988930829438989913516135343413808626980639679701885341142477432544117340250398146341386601906358811001132138974674011910405471413855889759085131588831426853485734650396023219720661931814398384445032760738060274885409282139225208664325978696594198415819649027927731326259713831348026491652631497276693834063658960852455333246740092853914760554639807001703762564511025706641425490379532097430419970913971034351749593721746207929191478069485919980996941994460305689337054080691166811250760699853775602507253869002168486013901972535971559811279229765228764895261867036746519076642039720374735245478243197695011112682169048376972674007882073143191593802743329136226830783035764949744642585364038966641184134785706663912638076777208064431935417257931458525172574208530354879442481486393642540532172989218343899289430650476925493945688527079551879024758630252346040620841014900265253732239153758184668979225237134371813168241209897572709830352387140162625126501627135789877138361000075612267816646486635692414566766158109589237788693110324435627072538179148418293721231550885494279406631552011024505887851126373927885831920485819777444434337088576892523520790633441852873552983507712370667444573206012157833017485836816789130346884258728888060104848648507557163263829824994412660625777493886626471964143680218680014989086435684487787529263710895415982107074898948317633778907286056181770869652036726103710298021355427366812640633939897823681364908237529654636986424967749244146377907424829966049890790427661220627685038509679892549577458672581718835559563365911378367717287585890222497187357270120285613304682586621269861196701836310768809609846406661938106035078540252016323428561648219531258411524342434698223706205735796502206336984579872070375880853674436877482555194151436629724536686684693649404813333935737131753898928570593977988550150375927073001235982449167409984304763585618734232811738347526714978975403630717065152848588266434424564398655615235900347840607034334617446106709451384930651583806047519281905190126162394641203455976655687386735196385035666238016921462236978533841517058178224578577134802738177172916649235137378405328092070398213400100635307530732909252466772646642765051118540674616607610862194540798072871567894352271743534581506804166269578082431369666366174198091652975766902057869539194466540466894951482369772511681244572079053856267097686510994504236106085617420720748372144589303137400276379889663812902401898831489707878967015942841078815717630793732227283869336757723371646294931682150276835168196336330950120110638186799503223039760840652684025350057027985441139282211745954386538023277448604582273774677383545192681288750551580563432785572531512537605766831406937814288784615035999354271729850119622489199927958864749627097523941153537116207459082840650206204466307985453994704671734442997657389997020758361160300035434093281365188845401928631957580820198440634911377107921422700113577610748303592331495536188560949997180916029680557027268090384239995636913187969790517975640309816789954125994767648465626636821634584736164477413552838227011515974967038316062254358295040794067357606167903453442946217477511181661498152902187488076421436594757398740960876330132179605989828413311768022322604057940727789851972316107829778561365642684603810852538817508057657513068227464331065950751097892858691702897369728170557473653993867195183480199595357020543746965606384573396330935867681395040214033779711072420854490002413489970945810334363727412366275970738633345625587275623572192961048521473124070063050812656053163536529714858205938379826538047363808992481358161568270852058075034756970672213892864341845949769746228740755235313114137030855026294128994603853523636966476473048579671059134922183056089010109028062713985542048775966797910551006944507809316440298812831357445902596781339504356832505674044143428772117823764164268526931736423732769556525451250394670651073887311051767341861617241850066127445233222011390067975558604418294142155545881898071556503232968448891018586342720889595456398997752621416256240547513887556096705081223803682788266811978937139539273391657296790229599374169338906621100151912008370147905212838842417937566917709365033225348016813266499705169855783766904128576801602861121590542179512888886340565166170864609394148667295720189175787441220319240673399189895524320680165046218087191054716044763656994982866496726198239762153494081990912119632292198584693164489420743545683525992776452563125022269179262942223806268867080885123647149928016398378447861644697019157825882782071181753823976129257405879620088735087615848638180679666565012246646677574829423946839643115249861311274970813321423759642724686133146466286510768661978939234071652226336857424469464297887783021583328451623789772565246023421739051455396675900138760675273472186788010486208591423124308566878004297896136940426517672958460583112748828340132623340651777499449505069817034019761804994072799012314094100574252184518024288993798943687543009122410624899950032196258581852093802977521455922706728323283931361146871112352202342669519348780737330201876709785914703724867245639850532641349932792699350054404949757755048865576498961423619134752941406599668673525750313555315135161823442027545558019083698832731620730066073765439607314935782411653171277602319416707272698793942730448299131807802368879721310820095806592501437610487324945820986208662516832106968618207132448648012767799467127744720000874421445210510457763230072968100406136045215617193432466297654443184396140174445876071733841810085050541817089655463006502582803670216768907303977673479298972269544657753264660399702227953682051473017117105934529175817989740216295573663884138647132126943054933996120669159277669967625128954995921535755467476197932462208602290726757600870527530830553248133923368009951216569388654865052039558356836378223782237974752146988861522666724263442650680596478190554529605038845794990890285921893557185984156001711253069495536945006209707367631032162593137251246033888516747399978701137305967104770829269922084655588588783008949960787644599812236143273664398020116404936434216137169276428533474973225467701021020744018224314555686895953221574985756550223356008865984498950977551848532075072257359514482650697242151585064948585365510378601845900238116991678801168858369486785432127789781883676930838300943328317501193038987333783733361951077694973234278248452918811894987380409661122977015066370141716494707858889912028686116789554109563398700338653688254268542715708531444533881486217467853501765482418544544813453357988382689104066106206240982577671805594905616854692187017673555486153057463703610851648898938271312098085039191432760143132807416858600729302897903620782446130021515987265189596400042159317971359166982655767602823013297422142869616546484086923956693725590890047852801737366912569489994811620581257286381459044397983130721978405222859923375916843626221026152347611627328284303592632925364444168403413206796453686233896141601731682015840887690789105530775333616665302827304862933165182997021940104690549780085625795680621657225860173332211952574000537387155892310935838803121312851868737697893196524701817894072878399933359595943560667349744803157307391271425502359532651232839092545137346725473084574719958939320089055607083737489126185163271505938791346591016413349109882285705590608355172335040535680345079387869642197707680460309892276401638442805953420965683108040755416446929313439952895689191682738580026996897849555408585933831206574937099478200643167325251563329475677921097231494106831336974553469280471703248234928593329827929654864602874428780730529116203882151478737153424893977791355909125311533568532297356726311401070293090121261167256058661594877049448032776453991968746757578469060723592493525041784084632015277898920731126838715482569917299703927148695419176440427133257217213589242237278337365504035914602836439563906028315507368539720367598297891924186511359222312943554073304065952969595770922717224079843487387489939808271821372647849977443171953540051665206398907047087885270336369450607509383864494527327219161323010293246948562008261054116577362397878460133950528408173246692175213338568513417240442672161583130459703031572722665516735090647705447510306835025565987017636911265594686343427810165000508662675052327217162712419572884000997637164577720230444178497335834012034895052027055071100741908867826613940292925702657885373792728145841002392983597535047312745102480929508917154709108763508366698990430461855238737437641716508229291740824689640805872830068057216226211392781810542074895786854878869188577901527285862562633584066583507015030441211714558096611459167065347622243265036962461425981097805875851276375767203657856268576785733932102077511406043445134423879727647925640181332113170836216524194238408552436526927152615291797154046340422961122892935363912725445981668059403072757785248785108281080618418672323950509043309755698911431010996853247193494304966106278714338542668588745872549248373202326545883633415492733289395637910114298125002459874631413619107702495209847301218417955759654444571582048184744783242290406741117338667855536791455506667637462795097591637965651513581315788332222281371573157802282008926742936271872172891577690321170599460815790578750727515846708858809887142883964493694200127759741752169355130774919534827256156081002409397583824160655296686273469708873261290207529606180039965094988428144454569257855020710617650184606017738984995503258056695320981755220129181372109322459363040513142245132882338354567250372701734117518037379713417262837405138697895479117374299129320926694483144501765382975262228282589229452800712814272954291934444266377761112168804985182726187073145433651006886507435604427546580206601895396743166332432728182731305756751165651276551022057448876098380580389808440516347634793867195866854719843703098005292935738448884114269747775306669105017663847879335609815089451766862946312038099797865992355882234985382722311026637445204828495869872009208616239248508748308738993668383645272978980697022874476724535396934945207581710518296243036460386072820542852332545792210546538683803309656172516541814740625108436070572555336824646186788014121357160155185172961075223953143109874011286710300270197345863741345836540877449298339829731062133427880401102303500902164834158441608143775111994934188737010625928588385031974906100873598822563499526050170795484765905158749057278858228058744871038707820324474646785555921981796594133158952393672391082380934053685057898109056907878133310624750588938451355541777345687905483448753104168895219652296790600421606992114806933056224288294151021171496174624123624066841127950210671502818950877887115023505724449437438576862864954801556712535162325669807004452219348972073834843872349521176010183593826294004121931967795563682179978541751760583623045097296381765099732152091993333022981433654009624377391974261477635451765303725127141593841781394872122786681549300976153192409597760877926644642218713208146105141129896848454266485316333891846184881060346945657375847319652219783562643459344327229173098339173583688088471135830813429567660976211994352816042001684515439092559053934872246005430224920318410017632627425976327368603698796778719558263919399845353399261695306720215473728444904931593768910693666773134452018465173128662304207340285142895094976836601311022443876503805770414487612915769204890168445834099854228004988740394436930156706518318706715687951768875245899760513288604162760250450113139906614218637483842663126377252999467032464978689362351336415484535055661046970904148311106216757380145928875242097027654021445580339792376625428012062650618568195703404350853244086816373603276651758957771531402068038519725401927764851441822522119000284919615854448078081147085729143439211467660258047835730701246474001312296263230934974557831874439929386319000936093009701094905195532901695039909626197025860157678572254210768608522393232910519973618247930630408294802799576992049289197988383204975600166365969286302796826113916383898410649894198609580436320926892549100495472777719234919991773514929214630261763733141195141739284866912567578392811245218711077459446444376533941710933852982889335141434691613116821319925569328411207964891664256358046299767602493197059003047767988443002786289754083024972873704546393287594273617878329085020303171615218963503423152819295199543170149800510776440145579365982748997446745851829793356565772797239059934529397914193154533747121926728502182314122654163553051818216608353291938435224710017669288867574825408064995067304528346804212386658288093099670431830298728453357514988766643015420053923032831634066060593353542943779354471634202788936941724412623515241920398555960526086811025295669168343733230252726966585199449833076803363234514273185736081987281933790046325184938457983583165835082872669318986571297115314793533187553343957605069725517990820371032932736498163617816378208826190897731939767819940752823429915485331834649531459700373299900654201350067519566500851203612529478835081118449763803094094580424950144863506719449117606795106461715083674187695632532781317550552655040307498143315282102400723875882588819309033634704285592882979094815271374790104620068973525625912764298836561428428504414038333880680389300214136319186381681268946941437196046015579271191730612155608826472040554249569753575127799500079895787555825316249764504442728246486729150448404098306257815578568654221791221794366197554338268163140147271944115125354051731885975366687675470013174942842558443022853585218862685654156541953550993430925127020542648575510167118565794440878613078463276334793261799618033837893995208440858718553250197422317777277765424244488042249148252462352149721727618610297352497522316902946719057818184708440465987876528330406642410921462101976570807272486029110352312475284611220008085889973285833918337205693107535728922920532679877748942457902135796005289569593068613144992384464015995116484278785395657833974034569963915149354927803052832690103772991661788298316796035058954962774658339518333440027788510054103721788756200844623417376387146757924135618281551789480011565591031509576684921542076529852611890402932466111609982583993053649906846457279084925373711598918802774156916291528365118909255142615307041863603432638138416229233495190429162934472812465695283204975388461872035348299160482734394923554213969460377718900173706271246824415942372265970124309350629211564836922515125739452302059602144543810935010399657260170760781639247975519080186128296619795122994046195999054655606477820639734964944730510270218870594594874550950796551109206338775086096096697071300037149415308338226017692582615835683795620668839876729259832503532069605823127470381926102347327584268268256332770467539682571454385500093919656457763339165335345463550210115694647065540848762389971958360573214109098301872689772887251823126738936054238016733028393002983415385606384545203273010653774419859687356634829598655247066389645215877196791105427218574529809132720112800625865627575528913246634713844316856140572547056234039543197305113389199180600729097914522788088437602804003526462315234441707525616959758795498476752121825481286192133225297987089022365708010054665438583052390263029061738773478449367287206645040096270937511599379752345827222662248629347289915918082449061396993585516756624026373596796084092882729406609235026745383939484926533718263420870981181724047977021416332882484012304386073989954352520570469319229239453341483368321389546484217749524643015415290179587680474037878190686100180476673193131593666613380568611844268048530470920472656095706844927296482370247967524578569607742099380588710948968439262400583367109656891505956946368412189734770250820385903727289364824802879598639427166091273702984093338156473289874224083652797781136438323886551365605246175571714047336315431834991068085313957945221100884289336366408324383094527522520092301333957083202775675352330824530288014834390765290657272966173677677073585515254426696025895494676301336684331788515325807874745576335050353745141139593236418160437934430795182191802581094371081752850018098982576789386303664978363432389459018150840769927558080968326696803699346486769580595372035166067509287942442516685886389439430901824694358177053672521965222768969534645988027995325482929184740766502544733339312564280518131781452552667353110955528869203737641177660835341212452469312482560115101281225432686052134295945539699273075942522068634682721361180333406846333501097907801548375112418572581354261350181031706520573164779340486441728805270889412101844751508614842385782171398624994891433878500700058891034504027612640677289862256749864214399360322688201923869250932156846938167064828812650770715610888791828721762976429149003030483907889271027474862039144699308000866650546371330204915618891297318993077479831828465999210894527555645866956458710641413832386082503985067970943831453065749894443394799096135895618679425766544257344860923115426964194444463847869266708511445765828271400726356326242918380536294626978298049862266357127049353246008680716802497482923557771190086963779070102991173826578264615417249434592834347288457356938353369952909848226262839055463279203024886480166514423171260562009566411069267033892338533079660453966157061801979823694497523238742635976393984868821951010846959051853184415650112450309106461346362716345564241008228720072689823177282396018304492434460609421718034694706207209392006185612492974864110941207524249230163264102109161965416809611111166501449497898482202677404604709978619254664623786970819534401970419153657154957327430578979098179225027418571450385458258041462495833600183352500798327259148140610286485518557610063890686331883570478855041617439953145417728210228629999396662965485613183017170910712133641685018615079057124403110102349150232576504794430453762307390579333676148586683420493560912514896979466910484995113848356785170063681744725631614114483770332717317983952438067852046323090650172651027314192857321284434065200437016558435977619573045929635419987906475834629983973024891164198885906605376834937801098916633466944910862597019040836758982167751180397411170486581988642882150569984255185299495943086324261899077511182001147911456856335854430618269926976440807269398172908913083506026088396479213500084897034163697402823299056957751763255488104072444961078455191450277332953347049551650687253823551267282591658093926764145063482643695033434436976593794578997617796545375995194724223066569201019294618074508560830772427282699395877546467653335769315931065641184050097672511496127067193345861346381107661041054765088005569516339930967922124170656181512727562647762670272879549956873614937694033287245687991695762794443255699048788928150728238487077333813477335975341527259710244151497711782826161098453440260648012967213502276563716575598613263393151043619097408402814596687867588359290776145287023351391046232215199965979367500539741748185912095872943176636118946497034317843072496842446842732038328973429294262361175611674599459380173790648431790496927437740720356307753739247901912018957446883763708488387200363313941483856847632200087934632770128942703454113955204740148390205242842293113774224272500277560395327967838246984052198599589527971986475010411206064108023171686728951247635833941863580056131698992201383410615671879917581105349893384937750576322929075885092551606735842233093488746701527738515959667586142490534408415199705938966067051182815583260813045293965700059657010599691655426691146892032876505298593550015386677786317573023182059612193338590455516847183017595928235120594955283930575930625685124341771497969683366278551876962964521024523657480584135446992245096199024687910507619596891931279400209541220970395060168508239194135343713082967582741004138170773621968643111855715232179259961001970015609284637275840861735506828827214929013919874385806488534357943406391670609558780966905697651126849228444416341316208469962278648449516773690867223776640742489890140413386543269078245412877830131417250739493819518034057601727872105282160053165229809352217125079998848117806508892157375473737964919294801225709478347251437782373233215223554164115875842109203606451394677539326022586641081015566897327323279367516964902795764386361212296639519435838168353602051623380358302865724754820695578544815524360551577077837972967008690285053864817740931584368416729771286633204103599183339904670221595477544376718598998338425088909572289453705389307681208706605542175208966895239282316508790605374474546313592435540157271060383372108409528121062765909369208745312524145673207196678651200589719481407278124838724952770516613516203415800139339812325460800839227092322234329072892730279611614183011408136914484500506165206942692457443112530720802312164115049837677242074137353176663861883683264451715362878518216614190479201151495512147918924963387256659199971446660717214332175877809926445061203173512950025056925956637966084565738543155354605201705986400249468516069527025466736473449703170971502283103851759477278671549382336428704394474010568478247154794907239072436481863862906452341345720593676950476737652498240100804227689996817066679780921192866407495694579731712513494696331914316394557884163998456320775686395714032339641786429331916420296978214906116825387761190026132370550458683647347035071160211344500345443308734818526989528086243749028427477166652340481650953120723984036555508177816059609965256829282875155241744586270002626614399332342331083247660907471836482235269325041240397043906518354281912579409802569989586884870100792659120880176883898337418508316631350629777518636661944065065445185824959204641571099015783222475176038209846598681526830496241805729674605901621573262845391442286182437710046599224532243718001522784960234717773311753963503030232547456990106875286930642046938858155603918771578262242014999982630847982811111851680050871840355581653354542019230175218080222705991415621191148274615967818543424699227081700968673036238382020503609619667491702116612844665711184705769413805226004373982422411987730751354086962086091403275357677144601394406993212177421748616809915525188762796835852934081522688695916816181663972847468181768349451061244491347873760400616712648217577951109124745112244876478900749144683969305975036585004253654880622048893751894049619845379640087181405390439169378916857486732954439198723669225920889231425626846156728192291895142463015450121737377648229801827467476674220614219324273290634730240168437248912910830824576716238213167542839904651279793187800450937403577837615355054012825177448853506045665787988325444135549099061786279603007909556313066392361227333997776618723085996717070960648225370075333802777507534901932562762996674123454732542500357200062238012145220896288440621408744316309173466742915777184877726955696130930732933337123889188602916350456710681582511182848684091541220372547615314935175258358316970186797109557257961250670840637023327701142452458508633765483048028500255735518135831322246932105334003037101157637002444608715247793248765299846618184916152786264129591486662899477750067675773294642179182906471719295698216369692571275814659835771389476166582361653480622431713578963447656699857829806692624191545469475162581066516365340719339504096878449033057373648789912538566090647957306876655790609750215648779534913819292453108319532530261356754731777579796079039738232071583358854285159637027499363437471359011441375095716186019346523060992864327522199702164408116910483277101603569662345256165670665733939903980389351570762259117821958452700021455888645318387832296845066035656978896162496731675154541299371042876005956162721807924036918551034015297617387836193263564062732007329347357817810514226937215816950294007977908705997358297261638467038245934572106380882122091313917806672824067170855426299695178266404956344896761617871000088187845930486289439801157358037042724116205726501620734887167107223786439710424683119394841128200333233092707126404715861333042023897351236115003926871532965386085050460585039657185696768170435753759655619227385021320909078307993794912361928747976963467363030173757246051338712521795178270407744375212724590032563481023525374847866604412519214168693050288921478269727751795336885210827141795067849109473733645580631759563344035673505730637059758056677910807389206001361441438431872960307432734751281853526165620731720214053685359510390675818174429717109894594096770527865477991227631855615448233928310895518946552080773207702334217057680182841926964062712555377266229839653537287239019844616246444553704767892731348986245016671800019760376452746582488289978538005119284115438294711030392814024029728700015270089502258054217737271245012710242272111845155203676435723730449042699635617204202309998388189441994327901883193816358274712304524650607883371174528134595311615861209664993886685988848534560601658049548812525755603166942142921483077309851865929293450230695016371013010802618991329115813270701261685610449061900255241543614784209339982448060624672806573065714487378863763447788841099222265719045818120527468591667333027315916953887696114160657669590244092841678679304464063336966616300793133702196057731145704572809459456456164709114778886479431022472540687779971117484035008133998559056287906460234073072466027695022945196930005055644112205519941104927324874588884621369252624623011500854005799922205779595296777815244222971678517215898146570339953626767480282155106809664489507800293945949530210454029821492623914157634995466440793936508115556606008877415646614509191040074242649478272863832721505025969581021073291940572605303833881880213741333540256771322535653290541292434272036811954077666461286831443279737657694776180045884821653460315828846188854269346370803684805972067502584622939922187848669272308638405849797509729958238496008089120109623903457119920937092966194028825445778931635590400577059911310333304313166898183162634143122686138301381722587496794171025486599276813415134624459503259106852398808639444384774477356787505603100200115459920010182618230911846665136718184342808994552397573193563323835404713665732911431107918912182265090793487514696697283457924911598162119080833945907303493353198749200699921164453907614553120602984842046489770034556051257561045555216489069021854554054951714782784114079539434438755930759888467667604329720184351169189703341855671292001619936025517750993487583397741468873603243412151526700769481090277969490057265659009460582114170250887903325556496381192531382667295510414311167588748860649564155750318100355603639996708798913793676716905487526612737365656193853350389797623959253683782272568820266558401975172162979583223827428047937817201818945410362814012728225544577167112850554597257576720007238546675591371702655711825937492315152140319818304084863253364753012706665091822737640752568072178803744442201577564480144999268486360989575396065628705527336994973027838420227752259079968928862213383349589965088513049452613907668095703779307215717859935706825395988848324886193660499147927248670852977628754845396017112397992100889409215496001441779093099553067730340091225025095618195143853491993345256444044147819031318549485868859698355845537677635307086998943591326678163146240303817984597071424629991331310684553451345908602242496904080013509512207196144262089715800234557739136439874330258171342517113929340019802661763741959667631919168486239881881667730133537377454612529297236091524242589575965098857043474034449188368935571680002496720527096297360003428325632504317368012298030745551770499966355222203877811332877731473337678214137591203743771942052570721921442427571661148597711339588444672848342785973795197690611318319888726854065070188287320748524105332407606562391538070237899740756616178521335011115403000572946675626659725465005624854181543918058793603444734802117786236772681099933622205139063736738469124606496684764928963360008020505663586097103155223709022994393139147771696986004710985000475295299956308694299882109311765998816613808019656551015971291539099078806799308316751481578898384084611656605606504683514164979500170965332908888723432266517149071138484863194489064872609199324997070164656290113881741680050850632347547338490764473358500880249581461546112760600522042362985650891353410202165349237779449533387689600370496565732779792346874752286108138353058902756975724586976381417051948473936420918059310611295551734334709401209108030253397772406755102674959665839031349901983713208925171282434921274057355040491998076928851755888602598265515449721631014446102507086955127371488387510411054379295945720738273980267025761776576438737876011594711681942363709811417725505490258453583419960158263946910476465408653123829609738738221896907853605996990771270641275079267456491007301944922220128739332604917696247161736239940633890100002179424732637141794746711960983624022527649896276887573022753146001594258346972233306845848141520418469183317211960734269806787884911398700957455265260644080670239557278635665326442220034521624546584737430314427715752769483154979160464507693383275286376370001013111598308385138978859922390312164938274932149555951807158495207051302123195749600200340840544527879925693201549398088058703158456460694381890759474138352778723187660625293626792618148984085732621152250375348171458164288018708218150580087479041214254881786852646040552419178588853023080952350634928063839847443282516947796877774726469266188082403531819381991237741551070962073977807151877499634303794536799123969316823858000797024358153994047896886278162337971702030495139992965465479814691048054465852902440973515292072977062653479041198958077976269372121967965394075304960963587255673747674118261805445442492874451992141346359172871253635960608058753813049717749937202126041558237399778809155902912952368481853747651860416630235342907251872822619679330738922449524914822988819616077837668572755161110139966873034090691068342633305671586844431003487813408175994728345212501245476277978283700861521417735067407113904829619144706265141994169830623160602230594624187608273498181856090110915044848576279554882148513402998488255640728571811303047178634145275416451407346206021652479950737489170293029916633945373018912492777025530888896320368871630107351807135408797219461974942527232880873431581541584636800348644150191712730476751942165653012657671004692037115254533006557005649716265867060430860113580534470675950015396183058555634811206950527596444907494362676133062715853622622773936939641751620381964118119672812475130127620295081008762199119800497067478562059748176841068717917483660207812334318863392177426748149053452464631525131045387913446122223803830949581114708896946618416062554170829952759566523567427609570361106687034045723432861546255594561261104348869999591073746690554922966035433828803835015527046282380615288378716293187909698841915892870241761415511929722480049611188554342506454478265071909468970723480888617076122773048572957113695504989904547859016082679594531791509689929885933420806871244635752462349522112622212405787805093373061053103571689728386685796600533964653590118413601415291789923844467666549173114720945849673594560659092327881365560447300885171085003927800414035264732326157351794184649297320285766193677897379827925220632297310373269982849755511411364846667385525564043303845295786297252925327204188381448108782870187674275227230774247198972789519243170516064503312365352370710370371908159073520449658746914395088801335838715959488385380679129478161252669716130442738256077302288077206175291463716107846969859667632491653415678702579103303141235610150144789992146001925766917144336262534660460293995585834357029616762888272326262414462616414603328501524115932671214791086630552005083475028315303223312825906207912661946843853991359086676982264046815416762089415820598810191237579879889765402417090048249095011666126220880699603324231254284713638503206183819060680567413203148420870387066075633610556288024220021335661870547848349568070637783587414786377535648436934756646347483790532093894181556166826176453196488069423967131156411204151055421768613423200703428687275884844798810676819928417631772587041902577373772907514489278829613896528963781259835867734861486844199319054857897882626700450038986482420136746477820674451429916097137444388641978751285770670794850119952530647836224067063966248100233118026976861006100015160901859562568286860901579542065568489372351830784042637158242605261357281599111272307353964868172063021006729724015866410469693134543900661256951065231952634721522687307554670955425876413967701464307403973826049524676509721218550271367181325441009677041651582935717667219631739079488589136137663436744498350549446010281684562142395086581960416925211239711333100462952705870769070610504035591881145591516465667433356671319575564237500090983481729800988167592128154081021450378018759450664169311874988797153820545760498819891740356495846509808754764386635549717284888478037917470410316651220272120169019634349187605831639009432989931136177449243418656584143863584034962842770647510309462169705607600798837106186682429346880333180463845569974766698841581065240767097986528391158095610842364816649087824431710405025690935086982650979733240099244666070606752152772583740177834219911238304292917513040432694669804075299468223499819490023815586563867007116229197081256353476173295126528491237441025831349490095316910417342258818062192997231885470510092699751962560159891271700103144363093685770166684064116382556397754026739629250968673471998332900153500172783144745868238089697538710089168056779017290678057462078005089578852936791423091994903303267269499382633406167431099584801084256731925513164896492942130774117130822281009494658856636638512499257495843391847905943348421516441855371181612582163755341139485439741851417515555935610063208470018578012589503618965345264878722941627860884028411470090325497542395712374311595773444139715528662422616920179321837922180176845727986504469857768205376920717406807575040025161323562088664369090222958925824119201351361248940440033474056463036688764006774449803097310601135650100018789152012421491951920640359971266160666730600663089583218682171381678985684994390282431917335319910337621571153959425944299061687484156389304819161490046689574904010990966506192997535366163345626908775746746414423462436938460573870783058963355156445657372876328731721007909467564959899256798960826965331339065023050535665021454070094637736203559237256164761735704725724427417094750292089632147513419205795820336008196309584504660674505240698215979283283606213556549026937049807750654433239316329676756868328709830103879493463268493652603605967926314657028373677913295111683780202175094822098537624243376365286775387573781035462705303670156460973091555719506727721695857250175207832044830196616723497006974759728227164617899982534168979230334950342974053212747238611426911309729561922639622538033659698068981312917148894414842333689266089073693874069398073336103784213515787245661540915398453657399275808140084195800133525528856700548175977062160730866507775673358140225044428446554377464555606606803524110830728559903776624031392286207506180880913629474724269715571921865305296201257150246682205930961848545990426569980357260169638718092943277237960335390771474025307049465969793424556239229336940334065428811408665555403127411535702277317199195729817315732780678180354632646767958775608079432787395703634913801137439249023434592904116179917682534852757152475323116005818258061175508892754772924321699236449620736838802464759487526728593531097035442188878695826174224784959228982699972394098605608052708460332189085328709326290192652431012888755062942411560362012714446454901674958134648117728914254199212601169950702853674131615457213268277785142637849731875687737919424973972943149876099126742403637348836839055554826104959912153820236942322534371087393115290236423304282839682273086966972861100941495979816046492697455950979589037775494032836819434679019022614448498903376349538736758996879781959757278848021469045675701875808181336275872896644320686001935364620505376309719278529358562093545142898225952279377562436301716148102010210108932947107135394564566585192641211961036788358665616048416956030234734599270233090258801154283355881742779773089768622934375229004437646541358550371434084519277950989424171158580690091194446652754945505553133570643050063691822675889031930401570960333965858212381656256399482905358883725525670927721584937940806622644474045761179902950693813220129600252104461925946533926984404302186733367517303068326742255925995236688936428615821318233272636345129336592546023843806793565393508576791559298941956874110967488913105245386269597388181366974506036728976940373836803936511548024847709214692008160798910653183987193814551315831254477495885181322139975132550586508515852487588061312360463694036991239813049933188228295249083736483800087122906979554304273640396200040405502529593806457340234529903778537163240498515178196071672455013885887964487835233884298339731797292207265546295638557386956882571453469050474579158677793330430368696783464159517345882489129497482244916639150158777383738639665543823461654178643983954992351158025954389401460379162570936168142247536122720409305440543388373837558363170730741269057038539852623322061206857292379135102680277528188326950943249781418811880330926813480905220788133955140393312498881580067199903125048824483573693760974020473615515777592577160912351077176369759362786890473880114283173913103648710276068411928508134429853513399127396592968107337538564003770452281541304344250574252590727007079399365549314195029854476747401835009696436101000069163441411120495605825923851569486337063368864497719918701386135528261603588803176005892746068163208163039344929294807029637533736135425225104649206792693379972965447945233588322252757015065753176788732027323297814773483656724172090780586671996419485145211925440395919959355629574044394877991519371005953713302463686600907633404572747120265475297123407581229894753369771332484175522042886743648501571782951118794875348295577264377837848081207936951862828647488828029549677208627989892894741457008077870407839551213054315837929380670084163431005124474071457334625318076465752110999372879794602847508688339074630204252395911969467377500340483607483971100974856586358382577576823188519274330224619708727601293817028065298702378159029391511998715306407983588299708066502539438839214127497540063809798525317313505835622313207372927399491049356332308257476695574162787816619623072107969512881960252595696404201517775927578141522038525950103079293187847653673977810126288310921691958341484397870334240947460867699375803333330756435913277491683043101136274887619417506463629406592223275392268653917359036631258499263563998835793221465002915894728817919256364645234379288277173431325277886324043487335266748104845061698303194479207516677166912694412781250482984946376731205448049960816974189451353328118290185189083012607551049077411611074759834971168983630518513274945461592340360320870417467679588239672121289589049287225262651236418869840665960387442870326046078042063434863214017534832145195369714514888445274807542108498260896470285305440510414223699101870513383247957079970749497408354551216904928695006291137909170788234658904415403224342977942637290614175898064437542166565339822254557788485734566180397334592839600143888710488455332834231459336105718823889856542466449151849174773471346026891034921484918305672271030321147678307431735489359964813261115190692491120435001107669593876189921721670291817911416267280708470420553711701816995626606318036744285189213591303471293263429272828099218359536079617355572162490238644571467449175396226145325916014376572227734486239180092942004883706390378120070467864753965496025572387172688361629131954575364756380963915361184876473155250867076202250142579379353954245752189295626866192189309837744150456315368855398882451398138610112286120005977927059566690807294475050189275184618763500717363430779181418198530862014253985200532107139425558791617692020243968617590558545034664956978941300430572353037288976970780311202122611033962709013890404479789920215223372954007988598730704067501456080754124066805032218824841240545889449775102048846517501172029617135130788625017759466415514905427948078423769597991360636906295934306226890439308536308382024005563365428004371021025389383144061302995146966237177982482579728178747350834768699753730899104313220227523947978290609421320101602408074175301675845975329928279782339027887054646559396525880612280747081492620922271559665319389770409282925501545666025299726163062844932665906847625930518862854402688180248186839564609029347528210704636917935090469341017036357723163241459228328422112168364590324510082671021353853156751103546781271833304330393809922237783042234660777063518761928257924571646675324252080443437459693100132958184743294453307972694852960022049227635801113450085224590469773489078902517861778906301857712741895999963909289852487282064871157586938667207391754096152296318474704549247460458348326576278473570758039094757768959996772888705775966589114300655326003339012086010271958722731539617880555916616116422950892379648186625971877258829074208803768677991622229975369688066497389514930657850876208741207492004434193282035195999058299812168850344024287546127293705303760614194322697318236474374261481577400287204115062052546967711071346670833872267306634866120911744437096672851302724015980779155313026288244045040100996567082995273749584391012823097732006653780757371293585755741556242673588381563422200285848424103515342950423617721078876382660887257541118511328515053338823673504730079376466826343280622160514048296779870651148392906369551511701610596683167472221334113946972076166225478974498719833290292867018640449428989663019494939029631454466485335455186557626069660891077649385024942038125838383006259036545121136165512110467069462310728474120529351636181615894342700919086414541873338801423670106071026514641393769079835429633135702399654619063060756935320849120409825831060803102733696532179446479466149945280666919325671937524882574933018456589613521986886452295989489804990063213209946171780605908106728654145020242650598896998388315173242771992183757439496469431265454243964682299785059681595507202725291416958421863652619457614969413085845343403498491782645743265176071474177661157151942156303001917996121626916657882105060709968820217497318088854963364473786478204399546963471234429301806700690266109848717496378820356554740611371486841183423234325103466986790262669048895185489743043071738888215783593070949144319591913254292878979086702255108117553186393056129937332599908556846893353701686493356672176043954224831265414508954746436195035783110017341041218864690828137628669609101033699858533209879484259471443103587751782225609816127072820396585773342861421207933611917325272284906208984076869668280753737278791430003269275632921480599372649323700469924814513667366594399931732818455611631875505914109374605741278095745969559095761726391893317772990551476984976115257173081492640535520062728966076387308632419382471881427960028234741696527499869507959813721530508780964105370090703153363812530416197543774494450086758885666968912554615180509939695413986203303911880401393569031282852884529810902728334488980674648595441553900568634315859979261292517905232392111878085539905335173077290612372272147669968053129607241868378290338992032436921200415094207807036363351626334829643552358472293818865380509499075785959260939975101395734426758841764378649296756198887485614524443033281836046060519031239269417710720736363459476528558760650229656297778172047257963277993488369416135316762678664201615546690057430261360415719959639714135667741997424594073615501438183410595215589262081358500798532546903296809311098668479798618635069667146639848456109318525924702710444498241623129016807264115801171879759308816645288358552272048201759937893065524114400148038413028671470283356835916658349117122385651660203304867901896527932223552080608784574951894528514426168181983988724853594109435555726729944293747103120343696482458108389458538141558646553448326676936785291382045457404357081921382865342275329732709449518695817782426257115901829195487010408626274569873658772276594835121558350315544597196528818650684335858458290510973698577086853740683680045639103007010336450488192688316429405075948625976391869901917872450761535973823933233641149332745103401482043343798734146856127675032614300979550318313866273655018487464703024424203370457950755254709119534974652711539742298366536494287843653334532683087539264666430585173021997735333484112581629231714989974382167051717560505901330078786961843284709410124660913610257986494819176998454725437085737826553930688867549613331076097612068898975058325534544871714557784656425717231045101589784888749989776612225673082750237673939708087674114942318262366006707389106222725169525582725570434688479448937405762349705068719720064804932046574773847958705144448574406800848625221497778321633177085931685653479245005141895946588705597622932330044752887125969756335737611129544835225048680926330684668345595466303977174307212385980288643803683342554870715694186150442780362755400783356817825125316977574932103142948143918012340941802983721623885843332349508427631177639883548340167383988837417964622670115989977780158478960305494737582933657421745931643804001510371791042844390587731458204585310824772314081036777930054667611219778016535746473913155388135316546865267493590909006475702329952414193262219582526585541431192232817615315649511054175588818015268609807586198989155254678963679504695592137977242334173634123417741133772189956789216940804788765352041364594186624237703529260590495486394951271790529104697007135853995659443593485399773649905063954540411079140896133041405517952135478391468951045231940203035117508737962085891759451037635641832323669405812338489477698713140833839636887635401593653178560182767250618250087006699530582668524876657205546467158654309356037832810301595703014633243367548166863875502237465017641780251805709971064957772502399861289326796879844320117875169045986763604395984833167943251785184500022571208060045600975230640583973032782202337256727182276451747270302226492333651503702632412734203032775756514953574668500903457516603853633456955911647224640142045333315900384830502758294330476605026261145419270769802036455979569224006297077055925385517389405757314987852742394234768477161521894240514258688206976262612950826635030082278319974724751811576220971363554444223161449986889882620491544266039206104610660654107992951199655770144276045289877656137166148885540326764778244660175908810219655289384595591144248626515445100857383296687586570790658247034175695884077486987576162799134817375829573111856140208522556124020765078385599778270356647731004221782094568347899426342924962700033887831104912332527775730724726174776365085411962527780605846678538737505658214968078157210525201917601650562125442617111800364447278692803431342463796609248387650049221606019614326704900086394210451911379850955178201050825697742803963855237080072523987435774072239817228209094287053120094906548490699809226685386260195883639167594395706461062301109299266175625697476318608859633941606739318768752236335070189630190008723602185755147028374179886393014819955595932949710744763006836405404644242040038292685715391479835412156291190532614183336748833063785872862518022751720106302767843120635657778871236304496730763501237030366881455571428746529174532394820495896675239908302552722907845455071763453630262481528683276379816369582476044118945679342938895878401573275574920809762939414991506318218688587335493556177687353613735235126259630173016087197638917251260132195318328045979627166072244498856169692593756077692199045441605010796415837035104441915344653934453075499917598223550009521604559978940255842953587598425928830697948579580624983693442942462635235218420282354315847019781780325018488616144567814632071760996361122125488516947541516025782492577943472893922205018691211652460037729122789029602345410486223902715250438914455334393326833775261799211965059784708916401184225192571095656976826532895827339144739703081237434864406338827246101246468236777482157681280280540007908543592554590614079695249865845718985572675388600676759829752358834555987834220580765803073510698119643571241775902516593068341375639592220664009133953924452298856141199169213124821026078670062129979473546444700615734239036814498609373541041464417213612519387431085855978248704172155920659304079603949258628845142992137767273216229803390799455621212353033496365974895005059000028406641554239332097464902528750907489323850723436304304198063416328907825290931339439540227418917703422018336611660857813208000768005620254621682428847591316732405992646351639174777789242289093390157848911551400512250714902677331943711689672984741791754210402956141223412910218222882570694666966933469545993594324626052856620411310928066531626939089558940830651062742159396656843763652293609943575669309629272104128508322824314563389420368372864708772045406683729323785055213249801227758825592608840731431876387287268478655391932109023359167266370435622825828512407067106204035807152182521811292726263383181864178273056987578238996098831205422368697871966649352472534901010926562259145762668103262530285237370171936495557194757840654213575893837700269088426419701799013884057391588526708611118696296883734046084659077669015476666287259414299215221225697091735653246678342788901639005405787212161557574378556637836200851955881071611469974146511842057264662989141672176090300372735880975672356980534366317365033233865936038637213742881470393150883608729127207107512735322814465580583984658213453943496106859338615661241430995901380807719196549443869177302393749586476077582911811790098215029253789110622049313173981657542398150330416512896825210035380385815830264716481802573391503671288824341491254655719790919130322661257360517895631288363594464433239730057774909215982659436383902187605922997080848360148680406441312708814574236923750153561414613796861571789632189144361708629185453641419185608702526535755388347124242149022185043385914744417722919850828675281661379937794231767292447021327034781432905097317623881463336515848041287401560921752528033455624239852577700955969626922598847136430869380358322096451567226832817344756529624085419859366953346144968986350024458769067564356709047415026032918153818077077795459379956577086836870109499852111717009970134453616852474441404011291718993670612612944293911296207286072641535115089610279233546295338763024307621193059669411905090992881329704123145365672233547499748002170138210858230032332417113947727989459738646726525916620744449341634153839720335947699964767091767845638521901439309316078513654744028630275088750819910136595655440903031973200659019677576732228968497710993792124281327089041411938223842874155719253625510800079819743956216663181396651226535798388866344461224004106176509480097307125436110857588539467950150039779815941635220168324700081951191618454185275600955885278187756788298378385839250402124218448878601929510509489840154626219731753087731131524896480700037868055703410827790279311696437061269431387881071927567061447929452452729272007317325825103689029439334460154577870985763879185983749219951644407060963233511311646898035650682199857496708530964636245602338966822088506232228736061116449106574116037911278468740538674992185894836530758539215088001401425721554585244456474750494355533872578942070401421857769587414086880802624065021211702456909028160205709003748040601383360786029593205097706046742891720844765088759919970487976920359159856556180121421004859334520635774641644692742237032308665091299534989849306937575966977674887552858518896340195603984265411240405338830635390668334533611373528960513869838341516349274533668765679538643687915013186702186128262247120363430432398793474622791213298991029936533891982699610049840595028888158652031988292302926220605949006004441694509959968060251298813826134012235262147779754940242716561767742829872108029947380225114910528135695982523853037545477576386542847807155602728676711265416158974725611202868521746080038517509237883374022004628374357431527828328975702252912759227334469765087649295575938467767944071437139040457637459085714253317368093500964124094847218968639892216612252970978994840026164664213417936146864614088644970841634981390723594133396461511831166166698611090534659735866103754664862572017408878306655802694654167490737312408205967843633029159151005026047285898226265052249029185537928512548284452446363317744339006841094764188647074153693189262271184324565434974361738500033262286569083191332184890275387037215336300887760588168719305310762178761396840475617024688147320467926466322116262607333991367090131248078636707212705833715225325606461678328914491746697709089807640080709734204834388844335047368163447964660876145344971535591671529636148559664631152400907533186543662045873108700217311192685559112518700399159582831869171367043643451951940220049026810327702027488505311409470486461322874731791406399215144515284723592153837828943544734108375560139836198591934174566306086754717634345079842008364709421958807896205794879334877125451366354516059259306373771312712047206676381089773412018785975983544236131868072611689136419271803194135301167645080065913627279553561073644983157365543547494636625148635530261625880681251841207772995855042156800674457824258664456051248127578303439231364648004042342448510608887957667624719899718819129332949513873760582407138078830451182299409135838338564319259941178434199287233421228438583083241108885142853104154849396936905602799182012032879938875001755792177564484543692730443094743004846292119338021054706573399112430116264052813255582901924911201455934436027354261727070866215566420216367454258636384062428342588453797311202019935225279226569660309880979930678902371731711086347105436011460415523542082565420180422134621693942118422798200732648287741105493220912664530916118761328231181254961008350335000884127942531543610974135117347974269518853386005224506452031193388765549091331164332464652763849597933553186908857484971766993201524564011376343414568495402848685559949030759943158624894636819719002895222880738965420364187940967931803306010387903672518863451317254209777036793070273204078136344208952352394422966997371218848423557366051937573786606229843282817939680129984389156759662082749484185833363502708416982613711172155558894944535334453108961889848527947870991831346967199304857817371579053361591417179800849494038959797291797107226370952603951659681824203664954774861374711979749830633659715779868336710003839528488702849207909187971990570265118039713758737595854922961489178224358036221755687614610110654069448701066685858355059331229730545468689001386141591371185165257577112775074855357749062381711347378460882295233767458144531988054427438374722122965770152130816043616752673699673247128058062683368582145821361209280250402945345756802808904855704636430293022970642171424809579340694858832075331459748240402040812300374759312293843024455101598857520285875116393841420210957349588261401950919600008366632284762578481860939540545255863073799061376692953324019309211200286821780027761251360925711252638976046860982322640286205930061193888049915675935359805751330175351840224505284469989127483659992215795953119675757370907898082334105098006627355938296947943529614827530332412230443124463616994547382318656961244193230876115544883022620990733420457920661335638847603102928541987905650223213468392877457738018514681514167855796436210932391532818645064555522627034321737159125741522764055431194509919885215709969506097539486334844080624065635054683458100511030519566711579101208124996060911461815557797279634231623024145426635748162654619292640015043970562413283264247903704735775613169804175941681653198397993048124935240996330834377109797894466865262642376072321339729165637728343013222972657836037541159513816382813948105006535894890173856106074912416552966262759002407813505698856932198140213232567559805180190846448019502898508638589512146295850399817788956959807657179168593009160142811462585404155670097839821821769374975666845245989195299719631900959495042191554102500855612783208270190909654653566916202616632751658323210576670767232428088630198329642187274666744985990211742254772626005915038908457963818886570374597161810677905536647254274531253135473889340416306837879671604017850403140534210810863538760914376116876079342057580640508560962680766416908643597351793021893131986553015263113808718695725692034153378082151281701818659973820407296593072372731865817449457000655519423143567650922239682431674835510676664783258615054243843256183936607626846961078770346834185981719903526951646742702350986961557287480555552769526953855127605126441584439194540158618913306678856187778039217381589104036668808213366877914750569096701526688493546119126376939936351640088803876092054048745183119681713926946592253594847651437296458349674095489810055655596715403036033208382191449822108299298923019209666771815689863465009424474484053450266232442038161903118114816284534786115848769149666043721616196462937138190677019090085722798082366022695100056625222254275151624865189673548055730078179184860447333921345313626884910865603034912618628274716735409161131198515967329007779774403083669781741981497044629954705568963346505263754932471492375837865868937547677042520262054062580944826990247279004630061140596635502446437317626029353392744487803739416094266451260753575163626717088300642673357261645303350947937546639206144168306809164668230638393476224271203794786116940734201470893778209889663734013947772828397410836636118547400762377112050834962040803460026946560152542047402720052257571529071753914623005534394062630695924928900016533532186728623420596962356080127825472159867819811207165175206172111133314077673808494777302357294239513570109984807638595492608515280826242092357462281799772816343847857811529247299600821101314463226444689024815279388397124608442174639001269335178271219894185056769328693593493755054205364336706743237003795033476954791286295278469865048730508062880645020083531392622577997534983197966833281066313489033086082993147740363444144291247647189465350760783394792976037065215809643097287260133771693573398634071028231708991461237926894989399081927920219176209595825514550304514003584428645394063285770306407038538781780564305344813192894102125827241476122327065785844580709528279736424463794002997260917657665908464939803385958352153857805000762334327061172481672716027278535706299906901389771265320951547575724197761108045144716662568168211614822399904188063787708463043771257767289699423704555492033236861886689149357165470095271855525472803081126093854007138566390293099327476618917541051850003566858184652541156234785908037329706040667307863889374185181304053138246308106830507588712500184239552187443022065212474096011468904519965165919631394509290425068045469092466839347227997232548021697298177933490064210287857180854917744883140128695346617685743339019816617677594930901289281282510140505849650252030064415560216651678662114492719451479573875514182607772130862745639539112147722055889175677034644022780800936258172208635827576768501548244185481049280833642789024837024123804177092366591538362625063380245822075819981189875731986466173806645803117707965521476011203678766782959686554248654997071984578807943121140059074117573428552002401216918472361610061328195504052187962538409513380403444629766033699527111402444883136096547053487794726102174430030072707190216324330047180619361755265367445666935930074517135877601458896301765857928692847472409686459462355043958120630138998563543376051004898711710314963072634614064034801961030653745263393566556520279289539910088169517477727360913259197570407187083418446305067965243858473382858750284281492817599564276350663378178302614252751569250479028026042122662910227901785185959297998980307996026687275676235574278185974163660586185563109998499290982883833705238096139451600695273375940545662143091514945893919146803719938026029019173088868760999058424675556019098009734760763263156790670626988677967184364725176520851738141334067355340969792688928358493217723100217562138871354034882984769992027002180699050272934139515037950653410077754205060420808599122140789772726715257149241552685354709835947360514791663141870007717449960561190848795561300535833297834429934601578380379629679833652763700883206559461877076276814128975013373910593320875771911056424669403100304603533479794778665145939364916618509399244559558552485100711087673880743839643726082907632020911355282723355307101306449060634823528031284656537703249922905984578058864279046032886999646344023407293971438782920964271980879960048052479679664395156303473732876451766084864999555500309337895246946885362603626969413464923953346110419018518146155901433983684691648967574348652410200239647648906773954092829245222836662199473684825214573558013307510622006779186277099095181386079611859232435341462596806825388476000976819931585234347629040015711107851000976438171546407650918760066339397133002536571513703930810639742119638489511548006778176502590410051632889119667215250700293705759807189748696520857423853328090434041903784957905389382131099437463245768398825944926134765783356413793638682848751720188886363891526026109982453529731101603117271912798555110802572493153716234634534841184644237899823459901217630798879286496922841628219821498629519909040537542616093424529845339697867762896519806820442338515172783694035425367615846816032090387652742782790449651801437040725084986268109689331014962282723720473035272129839830020402227988510126419047342173503270515551440789676897938884142260457843869287076746869833072547054078324961165437601104043766299883100459816787390126104349458364766638531384185663321198814967995271414932342912934801122342046191480211784921567035322302282193367935688818121413755384944192041478350478722634276122066315798310275581717496669762274502128752390969641181850618391771431149833575371268478429540905405053959943161851439583668108157580450107904584205457747415323303851055408139490065591319745972019729553913041593902568675682741530760442501206004225133067201879470104122240971980159619830849424968643963325985393074071849316672432050430127062336336909279179330341817889482281553593558543797052136517842466867227291120765714052679542862958592025497954595224088015587287943398376775434972337419150197047353926917382558910011621641217826586084910311464087745533356375246371196289940397085636276993727038683822407170491727789648165216269924628994042908466899017312323819266518232773976938140054641707515243897836859481156148780825590286830647269426486145193366487520494512158061475775737375255952107194534890465502279914672037943966999374201482623108174996010961876687596294381049546083285257172392153253072552480722759578480169918329492899073685810454944152718871090955569687898864478679053821758362226366168597098157191465544511812614861879287667180848913236803025074163254939995952480542875579102035695410750106971479459305124346239281715165443681855191833789808255924128960814630749716389843064083040592679303984007821123615099686781586745730566430982776015466614112650556426093855411194993971269525048817588583077405424013766948240659008863758153314709646162387810459776780003195663204729652198684989872862747275682548935002203643719746115522028518574139884444893649948311160318966811603251402411871861924270520162120480484847929029448602376610144491686404157905761414107292304076931956745222997505493684954349863963490821015282912216511018693100827731793483964336537474230889320101887847377471404901461266739438571087249364669177233696433682679047867510497556418150308376090911839229811982370758944801483836361695810581128961098166141750800454470629131268259841756795433806215251986548817746535576956830438854584169745486786872956672897331048732540238211977113061749305677856422052493962679581235584746165931386445460104266677189173485408055854420016748319869620722506487349975280942208961692197991545639233130322758281034252670659588327237764793554871168788737129188517306539651070750624253466694562843178945973817115885816611204115440006010419159820535492220322406558548407641681981743418363395012314512825571112521768000747203478890472430066331963014961312932195592634536087772848115403752801103785078127470155167371759567921967839461240435278124562904994822640417548460203502226948174203898424983635394061531990920043434327845991930684269300539419625572352935315869980745399997540698647615861328840787823549640294824714161031118926429232926818158068632421808602343329553101687233251023915597043929167012642531501071859732351089032070998619599872496987021946813104504108547076179777905655191240258812983295340448937993926868568300577309332407401311901850636583679250630656093653759869768548085941556452601135370997825974708038686424701911308152772891624000905927021818391228213152790844133798027435053965964589482448675604390333162171297812601248480920415149108115711911256655346146301330571707810999075687469950595848225697170287829405505834128095884710405046838179468074169641919994151332120038234876551793651003631943407053159466876021748615739108471041666139456251903361561591090380638103034043803534790401897438899921475429117480680167163181223334164895694285427984733934800620371958060135796226253254879376900610250339429898151529096610065918473681760863551542542874755046899399411743458896538622444510210392295608416240447258742299074497414238493751532051277526347496700402858491616896755602127924923721653236371441223995539407178025238154818412364602791863947621812263345107616683497497477658116711703162456895292509366991284143038407965666295369922179999840554644971180735297103750838081432938168290694696267670907636144584444576279104599248973105742048655615744590150117197113360531840556469028078220624564786319901855699582049821648178216088922330168923238371591359061978015846132403730196132894115237293380840851412954646446277756727485148127071498447301835043058967206733096182561974210576701719410999952568258388544930893901666212941972276529424200993479679910114710214558792330889564704171818425985297791236271395285770562761172520902490264770959845910373672361109400024350188333706764484355944834033525046345945812210650637760533313066501634684435392699145259563219190167797656446110806553718143567379151745183375605745569837763819554687891636204121497033527402222196116919211126844508077200744159360919035176981601903525863447803052109180456378319108796122884180148651434206320673705540670818020720457148077600673995862399216394140618193120808547227472694264075543966499444222449869064962074024696084264968775063021977471617136772939283681247148078477777849597141205510526099584504306072757463176009213151386400711277088588528607428044576600875431786610920635647241180240584674623936495896256299142278958296738102672493600893880497839909384059327255706427446093081918933782118941576355979433745142833982140023417076197951190540455719662984116052264602746078310601634206926476229297973427536169551907922324833964428745336131137113445121876774570923163182690830623939378788217753580312703744837677154091540739649605011924419034657429391918650966866217089809640506940908064855924732721076256314498102344298216120224927754244092960573386015232212860521571341407293202154212585199731020129558509132997979172297582318283139902012049706312375893802755293619497495946761712077450466789647172305852883112835633054092656590889444742993495231353725720499391488265995917535419165791008864603441578166187229972971070937409358328438944817443764319123614834808247360557541193944121945207669594455392957100303668229629195437182439703981310933135813700037882888199093031858585636981753626972609961040119736293082366288011502678737888795031679476136010800185489260906991634332714542032942049871281023592160756775254297091027281191658215977846224969896431507447692524375523672788820216734332754339301128768152527840726679313074541022634371989718779649089995986522596913870268122437304311008783235323617025339165448578854668682598436869898408471884123621482434791737650728891592939932361007302259795681565638327775929869456284279081547373747321549522138120653356485682920019519402732420672226724147199769619293569572338514777792512572558629979059877383446334555511735730938243176630573386625224869032547463715752127902412172160868017552674869022287721453162349386716036974604475329012550350702323089516117860931497792238213110312873868541418197887511881849106555965265177770424564645599966381070270833558574340014667777455200386183539522148320368059348381797421487263021153635801438535083073275422948491107334960527051930858136238872533639882686911409666588963422935249073608884961930130501864980480198234339789046017801949412131414557185070388119335939979997029161145682142300916488523025204867399634039604690432131428473102609129250541900449214155967271577994182948022459701448550086689600071738719882744252695907267001728658463044381888567677804614048984616745404978102915094534826202006255274311252113375784625477773141696303698948492362270872844222535191449815018888456147862840784697806397381441919553708336145720850618085895320923568726111007402049517877067549852475535333086497070347289072488567285913248926910871307086553561125544563456715923796624666736938262202361003254588903788356686903256038290370661498720351511365137987532096757891119862099204857129086924567856232950763863430628854956075729985631329535837800248820127507336317494012602123146456144328669071908717860169693011585030555168240900960738497314575577540196286181363083526018198715455847276096629609424411333865248270765878776691631779772458816499166444806991910160521334360924002153948869099209348887443653923430201422480123213433327236988269260576597804445438893979221136783816964554188697583644990498177047472533364970256427291887157663094042677251361199593588872472150122179668189320885693881224724662652518158547576226185810793667940462544079318120869738627947044740629596218028552311816374064658908213339902384757864665234635462762384983940223508753304626544882579550674960186264580490087718528643944678660851252634100377377463335559984767797859724281019267091498283932362503103120767297591120191848745829803844013376719926300881650620828070328505209071122495026807559179736713475548394043121149728171122801074538735385126359256623338660229995389172514955715359829142206484378708038389708499952761314592213320126873325758893374923601422502518749569566015875132745654715040370158850402039930758614713420761496806206661434211550647873591499911813373883644267219822133649806115119485830487596990026063934724803648250433786725046420819259421256301517689469110281315602999662002722330826302542231100715497614691102399105950687453401767130053485235839502528982964599980174738435188617802464323758031584871742450342498652949823805850100015217276645411587247643750966641215541388128627820762136306724539190994665289180763474007112302595188902413023406662305603451931008037994581607309748560358805778946426500378288144315694763900996913994123361657475020417405235671955869746783202784626462609328330186774244535316386074566760501307243833454514607896611923378747705187063265314083746547755171484245794573482170717615992149248351133447224172161980064258898823105313438830946132304039508733949037553608839376978959558996473801525046766954236562592722809800087753011836692630124168159260315359969243442872590467731525897846688126057290857105864931858254856920896876891211343505836840975806631359458795875088550854515993792205952527749126676905991830882890082808188372770845197673832116199004196979019244943090426978398365053114593065651956411160513420640666744342877910374271786706662239561376895418013996677439878739202159456153368738041108070624415804623998967353029525408709407856774654697822515624116134902124049187997798908158171846496094828990634750990363256548142519541720934138060618829379724243050724154374407305258622552294168028173590064672573721134841884776042327828617766203139361932908610994013321509998577612686399308675536001843466580860826378788521947654976242658679830682113588490110972820221743036483487027633805113958876019779831312331127145621312376051656270287505992184202233976527968749220023330276972939663512658998382191129001258363688096153268256492533581589310232104324081310914118756257318085315181081308941415743528814552937070998190784888622856094879356164771190330166640344572169627282297684292984165982911714157094600939343399651909128857305362181098455473013491876566354986816530310794121404086607233111880557682277113676724096941723952904358803250639141213699021692065807367814222811822704860000389393773859140845479606602212691103459050170426733339237417620617305344372951770144961446203056773451282030944246893665723650825053949955177808887952078813306655201979282359472340734786985468406472046973872840937701066090715363584088111106846839258394265473797906584957140709733956119877959099092293843138266577601275531895729315325381820338595292012470646178329409533241002515073956866449337576612490574191982810504504814665029487205694644254720484401861266272165798461766090014420065794634371573574817694517865075728216194502516503892587629303198362012727980670017581613211656709458081154735116768815789424803363614147226316116478155312347993120976907392770072125091052889043032960621357269641584924686375226416521816037158303772001815859558391653436805064369471621250828815967559055835207403493204781632480399661816609388181979729277735186986076333767793957583753462971559549954463623837781325975522137321015608742933493868496667191674067616380772767599726060381029944200825289146129023693872129507180953782374411750922398394856224748122085572717215610058115860734141671370126725093121020791063992954516355717516224478474319836292595027313114543369471681677340504379770025908516439205067066343122885878575666770432393265720323000392135258578910139270817223148401000741058893276798350625388547897890571229197571110746951897715495502786863256490092595692132656218515054885617668641728864336861267051644822888234669102002740650391688351536108846554292705121923427763375576404324941374832133044738608702017937606517704098863580692151338961153279934523207609373947138047483679741989174486910810839915543653455259794252063483479464126604440585230647121099555715750674493382908213766901780847201272762613350796076304008600228775922463415774765450361944343716925544231473992356112563147237088733621984112694657897754235539713320885915603835712429020494885398433228611435873104716515248371816880123021405677940668316564926422792935883134602489993541467019267529481153058715876357950096538701293621885888430630404205067620592572703155353208796022299908858998882606361961319935006332081677001431678264526346857919929001472326134029702841234480963265114152372648976944643676810661723839729704409474554442579238036328671992850285998873567538440043448767596602756056399240401589237770730031427586787334986536395320910876309954146025193924085378454373742808665281507499232940696790056529608983403294404353938102432340100404500377502934048538828880183043852008459767196243105056467277718703724538033037696724732751558638021353270404243816954920610134151000731232009073224001706420891263852627987826408270709047505798671863840478967330810255618242479125721572363659463561759669086899907524409607228760488641470833194852704968253468745135373800713122099037657370302285860598995878052306862506532133791027416828640566023022183645307618484920682415039019196157244045726814130754073718001643501663938561876209740204608873132302919536368185211318196260334244892290496672494227008835024663607667355755740261745936641887801336260465770976293785408996625547339692035336283802550057984952456333900420236461527592642368230612398553443517082706613337072309706776906683985081299118154111937644741319680621122237797874236377389536103520054230854698737989916684837603932717724410469102159293452369223092197187928303884695831657078592167338636219462420871524739862132645349352759973016110820584836339418815264567775679389482217858342098509280914249280838320218772954540150864389746476405512660938515971926391608823442455089258955327249988972723460088596590639996219058573741181327199150945541720231207742396145343111518117471715143888602546522543584185197953110783590225599375278319538134739133152887813904364532344101716418912797461277927935538760012755016499542414652925481152898320377347647796330784939601248481956166904769364342490985014255467570549998183586467550458191602210534634633315321653549812123226607979358977124588914245628184537105301221708073955925560976001816728389311253889957611433029484981944331037114405026387476977612927228023044225139866214460761133981954273997381770057138212268105858568453625853011827210045709794002231555110829926220526816464231474093234236495134739639974846527223088018679478305379650059203492104701436914895283021775585293892828522516852130900644907118467472647050685815844635668826623564218209909053941959952554636918175762883140287122346570076708671368920085550621231998029721192166218352650493116617950005743060140348031965016226943874670777880924809505186353719874073312184677995178208410749418646170194759023250996881015827927199045267433452190729532280958247731739729176410776080613626572560688526677620713076751028138969892368700838626902522823672420335988858853828449528044712434471646955918198556763133481480513480623242669925171217649124355545032373550294634778907547874366827204878344870513055785558287645676518124384943961641214984591184868131310115520980634498132223819940786934117903459611905920559852060968720838143386330446688116200034563813473292041758904190820765867672011645380425355741579750821127238861638487697283041451883730052855096823424947674340100893308788286709480088067198469364736822848304823657147910180967120937832321996066027939511730362276355286834242693237507194885808473241714074370376966510343883332459450702517456706970920948679160958742150025401811362213814156941509190875262327253899116237939989787766227782014735936908486886947311558988241534223727077734480642931182652222295240850654362981203298380639037908223495839263251166915626193860962772314463120531588161528487808955520671458553683098932188855180367927903066622603717605909548245255133763692753806522763770299827291901511100453513688787286187478461822098351882423701137747206645024159152739177996424293505623870033562158702841428322357885563029115931204975834735580810487418122647721482535933400587616345955901964554132536829027922524434537761376099758575326733480608482725202161805313488826167133969480102636386819646930553504867018359677537197873063714523704717764534445341407607326792461650235975899097681277239966873929065391270286113569444587928617768641060242505113160204939629864982797072067973540607214633951013221691953771100840028992270977055655799984222693263759478306139081816903451062116366900973985947438786093802748229862238303322946752273393332222801398925823814160018315342004157719390111176261934037165838746604386335480662209962259443961103268568181722340354941400010793615044088010917460312016029242898571979310778321214043624078283001339836644778451395754881204996955344399692937634719074318671862841456643351862887496025429167388841087188402397199789738095268822427023757942690355204984928893468635908411791314544892605295963467951087720684984225421543408747981350706262835277262082078325369442385208979199048241157300097736064473289169289353103854890104157638347941070136423249301021971617029679072889950713411790209746845077825407386617698680111505433315090806725716374542977391714547260914768041976849168483569877420511102304510877072521551240795899201941054598143562840638630881942058196178713760811527152740007875546069658862604119639805151274235044833476177469016865112456601791567474056128616084554589173923177759771041508968773977902191839974099297784947354915428987809402752570835917710853941973526543310676117589578688847082710270139924875037082881197983389643416126340260705084222994014488797039581791442867177554783364597693427387702351766452151559322260353890345228616596527044906228964032639792236232246537285556020145374566405988953541450866828016555136396268920055399691438415048105980325380511442327079416584276412307840037707306662993702430169864345448640482103737519002051448781545976590254529150628596526776101465523723800762508436487010918940175439606905052531225646934524263548198949834511496275398196843881363126856430622271940663858350902565675432323912047392685948170228559884159077746776920765387873754440347281929578818394755913758477211481204681662213505918807961326890456477172443637873597708724794653190110436732634585766987835583997297199307709215152833326481533084146547344081490330415338815546469405930098938685419717645984813603423028257811487194406210448170331943194492105092612362059668495466100827399548808367335796444029356335281683427798381577493279233613474999766258797594631465288715443244703427785006410859370142080562861050315179952676731593026343342062401364222336746470857196504617886821754959847210255982217969012176690137105016685316425490532458412251695193115720779495526015308554310417689542868957061783824650095980053263988874043044219555972451604270064986694326338424080106976547845688677413288510132627569461092694858243564739604126194757622179547791856336799604581867766336204998179618435542741152866850725939974983736447985373939369854861954653805552371669674058670666062962983342145518982995540185107962001245492696037389865194497873421792335224022371239595412848636487285315555561566323470782926361716987230832094024004529882010654032574463912575849913102944845388880428718500002501017371148877573390927616173713118996742276377188469285697159727355406441207920352633788880950507480565538959330004669676570990510157833207544603542522513644584715229954588314026442893978682311321712297820390494079900128983745487120948793154502909834079257891514142368660530268040774841923604047010628762650684316005640624160760997508879969137709960559718052441365383266121674753894081415286580039201545222044279670727491181769770785760428926785027030986183711139238189263830995648099812605824076226512185739581500121605154956124897752365795124447227168176364456860017389348398034002216973717156296096074850899935273339682518063866824705973322893906284347750909594256320795779944192885152431190484417169166403069951612718982547238093644494707027532043205002160904156184091717674231973130538136173632773010152757729803620737394833588860951015683524669375802782707206508650363442334789450549442089712640407750849211829727633816926991033377245246710686038350858883959806076051539694920699628872002566982500648819665161683414211347754219428596856053816571250211399739312051468645871208057286804261536834975376112510239418031875350325886211679029007010570659828029976411375681752178568321060493516317896010367833229210454948425806051727554051967244733992064416424559510652253997218899619952346582710212580852452672801764698379333558892197680883331631107201193436038418630203978810250659514630097765364358488093758058420783858309528303623749587193545596393976061628848806349906793985437089812122019913543665141223760289547602029972420387263031563968063212049182433885424825603192541753210329015002950298536757550821082502441286612036948952759823366605988590173406218819731500879268773270948534202455127005391555196736110236386796993965511063528265491340345004895413805534640383061866988929308300690821208987025968416780597373014703939538287026375651532244244233009393103062513697881196393915970296459388986711380151305788019250062347875926437994680158929290277695863524018894451287128315710646480974045256614369321214132373638389277640589313236676509874418578470127197432742121986921127803975826969184519632416751053966421904237969679252626072583808691559698526135049026700906896099517156085193016830345900752438456191755543892668440491343566649703980970841297305477009883729177774595526522636306580988991623261598082877130779146605613081722688238112140199036532761381179607955009992317034351088821689740405525660494154595556061928767217564055221959074381577049400078154554062015018588717212390007739586751531219746351990651872123252373975592531643001404741015474050767926707347126947523513712007368570359650698883267183903412480191766508238155102576000033486437681628476906164775444397292022771414176688762107937881450024937390343346151234982138019650913600504319857997456002070162626476986502408467187411295971464940067674548946099732859215054997722910534161716614964475849015927641973568225062831698859320498018830628244402393091736048620922816380990200001345503622942412442842509519960724770580814245003045023438260152736452728145736437455185597461235530245317511418584775339443968104257370772817023788670989913031642580556126583223317987189664676211954671204515207291999518348963814081749254112738030944788600888256508944337374648246770606922357690640870534204606824385661889528614892041556496076659112539516351994986858823288765930867504650168838382715287017389474016915935887739530638295501383356457930526077158876765394354964239955546051133817030249288006880070293621282604194768711840889135563518431042148312249891680462534829012999749115497532539036992878224511208438246098193061475226676311951127935634362829135313688770956776572150073652526660675244050053380848181266292209321910613508614583127907727442822556908374332099468007118274979425351105853354742263683267052024233826708203831013225391991954755269680227869299710655362060038492222211961563737592196227239942097146197004959140285146592621570309821869716236152123754737458351652613808383890371331743207783920824195277229831982175596893607314348322385236068817627269307019950147503371240483267830857179002429777352066584720882279511802230443366652966886964962400504920217627741882010699313358779170825639378040199157641250590630134730619796268230979869956084311136864277497608908354671955014834447106991456084541675102820459643176450428807478376631981453866715465753760857504518872382005038694852923520118599339025461582058191610678382875291934818159513822340512296649529724150883837313005731757860715283361421528275417717172532269495480363235946294768358737940339579889976370420065599270723035708708769245546644730184026900536906770064925030048115464579455342467350826616666727300674548321728686894013898100489658625407160144285643434740154909505346165286078846201135798820659753917929433296050282327313129570862276007045761398648345280588881819285988986868966811632680294247598546153312357404564357177508907105281336410330721120749562410554865245615580015160416183660877954329233369623765424636590315676745794644206561212302868897864168237772289555424772747407235148293928055732429574195590480818736819805028134191793358009349300066298110627795357567080922093659067057948557529033353951656716560963226782051727748425568697224024680938464180075560561221217319036418072339205319141755948418192119890081497845228698109619471978803648411250500443640834838798603706720767511346985845885207473564999643607086287522968142319623634047066234928061984425940415809667919815446090409508844899288571601321456525750439040176640466468066492763433243791090389395870194923605456806978548151791112509574899906507636046953380342582530509757631366796734408251500682078423897592801855481567909224546334962623621031258281617262878528994407994501243348446226575172535514095134236039936853314468139935133793492699082564678370225520555394701192698525741392165675488470830785505281229796387474980931321678812791974146116951120303716301361436441561293172160171532021950994659485122334773179952330736033310058308042572193041390055717629865360974676784125763493781151599670949828060929984004230304393535368593487733748174262004400600606968660566637354444671882688846404848025449660079887212106801448332245312439662718955208651439053468754131675092178349543466132410391022179608265295186991966757584353135854074669934734731304304330658026120568392877529598089066273356924416424421968522085334577314577681948349036590956861965986242958581285524072960117571249355905046884721200256013288346960760993865115360571973510088980326334351023015790888948820806083679964916185142662335595866149888081176758995159458855697188450053320448480015401865408408546441349645568256162089082416682787979458201293756396309091329584412805240864475764259246416694806624966502853247047538907032515897108191009379923980048869360656062116296849840101666952551638723790114528933969985490013303747140773478029453597572584241777205621320703863034012297526955795683157086616666497684654655790701521105222281187702641577436105524504382308573519194572986395617149679735747086339612346941980135196202764633737278161324854757266150161903914445322100302209139686652128714999981769916529500102025407898070361679437534509389609424838124882875241364578535959876416035954999304214759349608380338209337566085287234225247592510609279744306839783998063103283623353988172045320145319050087142711223908762593950320673264677153964829299178588055469362954029847741998402325748662474265189540910615116946522561160259293369615535889479948383040479125887777128631289648393744367011003948115888002517777940681071749463152501410422375059715582693599330179085028258954637640596064026224752384002858388313883128272716937609743385900629592829770888652535961984996959335061880018665292197845979060461558186777897031624460792620411260880464630761952973031762412601141499806494045729858589581112027475469548116755304098910987063790093019082407860902454764604954894914794336907502899412181932780321704571887181437413166079483888009159984479153436842661041720410944455012461777916492530448425576797015912537585706294691930032353949043206327537823252999363077119535950246584483316088850179616526772083488449371108579702478984528159757992195353203991017758303744431461072018034315778798173801126193015864871288302897370237839445288420481889766353039134508163797290777661881365588015365912427462682005227409704187575555286645610591501098349134972080267506456508331341616803148177250556542279250107801268446142871913293260894320634341046557341932120853034193995433103785867379396851819670517778903529047659576923008223790766619900960747299737280494094212996294198295257939019291649616918783771397334431059602069587180232428226777723170307229933222776427519416203219878008066741060481364932672667935496775325539291309840757596928808392573515297321339756672788096650472189002278345560000807425123599912325866131351024877531058265767054423179082218213154174489371165066094206707944113771871153053150168262352152291950748191613889856183267825923407241395249899622551151401092723559336055007208751291037340421160391764293704655823366559365674509214174960846722429064045078311059064062161061602005137921171636661272892265121810489075102805534087821136004117141535386635677751239480580835242338167243319415510844672396766409766451162062719305895250665675250677416410197052250638599767086085714790674432008766233724296642607039876742821822475231152197034349478442815757361629287964315028065104676952976139731709071245069595060158328750872097898349570979258260928234147266445726703128368214738315481698049289363612845569813453612619586809889039282940782588968738204541284634792999482925407139267220298387551350326455282255124841763313207686302016797974202588857971433946911223367546618260541165703175970402806375479924667050518803213197599199404757650563983269393246689811963621225766069026732241189077880723027199245543257211310108003547948690225970801651653901749846800257600253726965909331778750774671934170514693029450719137501285351804745167140300562054425586112846680241886029803292197091408518799404537802205515769014735474450383883362379720256302052458401116812135319217280016508553050551289256374401996949313173398615549669588358330982983811865851759227511483524703414834666463636791233063146289952551805208429619316810234234282228860963573246003253312052240321657114973838407767192910670293920975743584111505372612027411192771523190759582119663857528423758887787338659755651651129500608940045295537177376796377828149088019268075396156620754093734998215458816503237433217812316430987445183578331977939291607612176103166079986132203967776289165967225287190507986979346516979693946320729565365031869509968027645405283932294544368050501877848530432573442358253686055006974615871967227574330310377234123025851210185210948803473104058777283011077122026310901792948334286915538146507010769278409795856556604729960908572503943003696129181255197849543997173491859043019135065040510567664762737004603156423661687389957704687712492996207108963787799845281539653923293141983687907471806704534749226137927623135987011845636291195435491737805572752058536887386960198128736796430177782603034294778528767959934852527329892320569253967885860790958068815135472507768441834303374460528632398859646512264816712208963067152939122369480375146243699006088784925697118019386004586769595102549030463294680971953895067687121200522793440409109168231824579660233626585990784060038922076276604423538053426247576522257081131267064268776443118399753156443599689465138482588602537360534123483662019645044519141810587191572466775493522977762372117792863747288706899160994522763914548344375581590562409677054507299555853294944150482246796437977493424000532436609596392846170151256828937599298824558148083370438991337960636430733262236810904932655213696203703206573520732673994139664299095468420195027045352874920804661597206328036620708858391787833354626831177970677698971484384190885179810427424715975627667888506161011263382053408385256138246459012908991294440597275068395827447179874928195669783775693968663297898644482558371668402652334451776153180315329357821083255242243615965016793455044604639947420265565719152937816182638856191497955164710541667511637153030747105569074532387270166774910818779247317436162625021181759161765915058274458429033044898276649418693940719402905636524195336153964401991628819165418546998742441574550719188541831071284238828663659230449292341247819121240475756989847425688084150350852167912695133782001238698886889516735958713372110292085786829195247197875252552106741973107685703542203852838574054798727835913852838256875179578564960813604158620222784688137291066722275751463258531773654617437746501388287926045588904368140467398865882071646760529363072903492351785016060274068290866976251631625142575806221112054425833688297794322597536069065658380699141507495871363587129442370145116161479263101985342070025478440046877526277024530952581082854217382335377269871358137703183537352252799120156180046480084462661690985552093957877856086126692901688958191218849001704852066652700585444793706191261782390702122237392451348312955696108418358777163471076068231056980691586280467381830549748203002721119446816119024790329216464764073411473120912092974027634842487062827267137301511408462430999202795249661250989711615379520986333063705419481068776472276455029350372447918505468594794001318532635300266586092559704855828032048040578018311959650312436272932193036807147711811682815021240762994353236263506809957620467312547372053134878351676815063085709796458250917195430283986138045755627781671669216114226558277374229233127261946923801402514511173787120313456405577282596051491200387976702819973822529344472461984264813401062899942431030887218376152282814436769440705346065731726444757519810766666499369618025955423055068938719766686681370156724745368509829860823177528585447008535630390591437525176442909214728263239547670839105373323688998394296033545092163689346753660163810939373943249853849761366042772768638526367415574112711751805611200022610166192487394357233315639050883188970222943455689539243069474308956149189158016360262064699589149508166361531233031071348252863902705325756606328142155578539593786849948828323461446901664051205663362904621075571274508018928391273306497040595620157690259348386791658192653126686158462423506756506538668884136303410832442812528580944274662050065808163212556187749076865734490284468001229644779145752066484740322870151234084617703906707337147278069666864585167302992311244443831841216363538001259489040886038776941174433051528833984671425202479090638819605577611817612524345311501473004066655717698141107356826896717187531609489494127662193733664105598687254546944582466183971279546338717148800435207044967193673941931924406172030651840828987824390805532905632397523789557475905113073931889084908239911873522220653050464960509043451935691030347311975628631539582154526049071988987504928979836913280092269483898165408566494439173895963964908711189604540327860729866372192449719835214343852219690587465452750672308197955829566418179151119764926458335377247649601620888651262524025557264582298326092572088767058004360210379439423476703857652912072114732106926507709444249399398287095340110864218069280951571563335946443583311298878732017214733954270835454101007105799828808259258574560004274054265177680419580866617589928972482286578811357240466583061721078372834739820725934760535193615832911884706489148353473930337537953244883736570858248104083233182713919810089369283541128306924300004540288665922519017207777239186814942558601975035090054635753449930185901107014809458212751123906198281114282828688391718743042598234709786491726207942603396925609416894037729225848390194588086655895868074345573511214251209597096959144943396071537971833492200563379898712349518530834061567448974648766118956613534517848734227118040736254405040839198981259294480599033352203640378947301223598132268452867376285511295822730683740377988813005788505030755947556024365270510326592519308674351345564383603161818219198463112537344882573173814990058620280904405009901738050439137160215610801988396893410847616096469200832418867520399785115184699533226341736832384245072841991482876294545450800762374051959833374099636795346019268647307955499695774770608338481438181215991815042918290395261078584466790577982073747621860574736169296324469430207403717357898537264571614474741796154419902709387853572865535186476416542545317626197457662741087707615323032875564648941095164922559449152989844388662846346300892464120125234173372675135661749201462030289362172355150603003749657950910197417917312362927663933766210745281841451659555970170368842434845674189394352718492147041129487995868483118778235336035425274590725576216560482252355506536948815665837934807608567699061876502708695088461773664752546565122987619600178257486849296098252833696179678227547664897638579120593614592418385953703516571671081615337152573770031239350376127607332043622524885206442734952001031197696415446202778717583403334960797734571629413870706868685241416274514523940033450366533224458358610716936759366492388192255476220486683331570254008412862396459724882567701020473002410450368017170447985529714544121764743888149248752331225905758815024710106517499961931277279757639407127696077203119570452411969776529661118909619205020897897815584848068999774243953928585638239266382933932002130408163441203851505142567852155147423515422283064721226144782299000711394810701413154814268741646431238654758681924072556853599608050839250034233837436485427697588023879913718733605871995214559900922803004290193950555115764235090521048738442292295708588555846346911279930388445700088928878290783974598758699462826210924338019732613161252897954711856089107459604561555931708035200755377757769495157243285694627862441758326242223497323969913430450201177422983252453988730883289190815447312388391953749876359140813537121494844119534770410163075976685656099318382143446291691791198237352835387766789541164474833015686092955716002234693782635194851026695516965787296415351179845792038637801034168419186130413714253770672701646101992473719080088029727225982206516308786608136608287339955502772218619502521004808575082115532075655946985476102658731044966761192620186565289494928096700983446376252686291388434677135226739132069694138226626961178905973648727933291319547472707679717741633624545154190458904338899986405579940575251649077397503100871422167606062028463825149539885053183054195629366922060101452635497504878372187548573815398239056092674016285296144468059130730769523970608954644006261504088713285157559656095108457911367584654233154806385471309024389223926230757295538534489006105092888820722512480495300406960276493760323947014957596601039378197586383778312674682556899983176737525109696788655277258929548904739132250331649481004438646291664436534452012901090647244470263716320262448297376591386248318864609748472815357118644838779704583350972009807319607588537848093011881412622095912072708336269527138083166801145750424099235900654874453703391127098705035042393891800203040107403459425122779127376513145523306253825725211680692529271869974352702317675465101313923092446739560879951962119431601467951208808365674537405595594161534601461575242598560458934510322725213714044608743276590542533135951980757646062874234109678022226851354522084669026731946386021647228152434227165335089289355394311821943428572868714231556707435826529519502082361097496822033785004262440513344645461560188769523810512269661425996264113342264914949660637468647152556870836280987690586969261084568046489901903418826541952871575593059000389633932567789836594196931757164725740509694517200852898900935472695575528012814351957063215816920053999372325342081580693074336305552386374423285669441062127674653183767734223501933200359546646257731626244317816055190337648395308484303899524098133926497060823231171416867274051129654962451457838686610166634846530359925717812375327764345654199801968242377222329743644835391086982202685188163248641481979672110322396975282297481015674508382081955905523881588689667116827511207667169679039640458016757809764479725385560847329625465263503254804984854970677307982415525560520575636879088670354974036483919622872367250320233767989896090872171699385319444703423927047960194503477938133597768414417692999233009633483095204069112564188583335357294728696375603828573383262711315605463154357426752449169301454691440113254391091271068360628160564618686417833444826153397621881890436868908380847678431078869582273777038257168104051116923831139349705039979305540363290624803973394706150823568512186610814175479875255757169203938092576397343754458342044023325357431207004724811778086257749775019014758334071672886187157626590078132803992041266070980813279211078517483105337361940207137113988481388444592329017124248428253566349186606457887920138309336879909668386517980010568066597995983227186967549805754591913729993434800833581375339795068467003238654750017487838509277985590533648443130870541730107362866909506447412291196982136068328807035916520705946195934902614940487830104190295432439639760554989749177446788275560947946470716923668169348266828882968729343955313431832501010947479912464095340549448132499298235640194666323022283935967537993296151425059400038622118310638116800921383946816907373530288297250574394040966008855376363450596778827651217658000692476623481243189511634053127100103678562749895175518735392485323350069236265970058923538684693023936594309485125518426162947046643343467419433898775097257675778648485915625665296450673058511118564492987348040883062966219030088872050625477555025504978242430516422135627662938411414020782758704689894321859109037323871702212532062049764948822696616884030811687836202408740228056557868240441383803884806480333555103864775827905637020355124975430412463078598336454044726314440751477891393627776427239504093983449001933672633710865364691072511455446320052904496088049056366517974702895821509745448074670286234896257219861133662747011122802617648800748861485399855785294860814253287271633260965592675471301638015458345085896319632713708245895283857510278015045423532080336654275706124828503246752118727061098891681852885392444800136261202359790049054154240697663692820654851015859383062329135589926003467495612909469722987421999115747758056159346388336305194949042034662717764546420031383624609629690431013521970532815997921449342046134853182540095473331222616554052926088844772988440819484155382610101531899068175458261409306610412677584689577556958578061989197718201996065398343404710975993045701055055983090273882333457822263942293867933427607746185349444412589491620078660514667080288662044333984264947007040432400517646362507423735482316191972016669917032073936115864825688901775559876101720651650143434284084604468984525099795372269789176422188916104091367476633854199349222214708725272440103841188282349157226222582096896616663113079985750894181599652682452532424489717867661313140769317375282805513132348534391964360330021137824317332986165751444109814172852583995958374886016071898476289676622531294707839428123613117868056607598086146801938224299239297213849843570249203344616066694995580203819993029188025906474320008598260961286710413497724185505966676048747134650903586316236973165344442026914413487608603593813586672886841140702158553297127045861981890792151589569596193127979565236864532555782523372645300798679497021235845738033430332898601292586080275065743650215104959754176299093340877016486231041303517055453141650765589159623388051993631266307687421994830521236716642980559058612381609837366883297824839078348380510521300137420625507085830490322348611911264265128775018626161600164006044145489866815644899670813028269018747080125967573384922676420245530184493781017526348678724167348809588945853713492863486038740262337277412559942105324539363919996744671856824784441918893383572664799806307761639664238035120790837609901521462601118051617723030356566892945448627911995591910243628381826784271672771107442269803514628895858265456913659422214933210946223127618293449508700880002797350599134146574859662140452358207365622236709917488606384421890305311190887733599541753529697614167222705519819587440597581219043006745167818958708990039517592346886865080742450131655783112722268319773494791330195743638122312307730499447315536841795978885871803849793413424865889547375342604101253992479601838995965193630445491506973256227475691118452185967674293790696004136222979107772346204000097720495958832632289296414774406016794265919809070964033270169312034919323698148331592573649768241078118793940258658471687439264977416922861380514404721933990224097816345717217403561007431503814934939023686998348663801790513922041118964400247887129618032058994776633258712603426510153138611164935346951773680424021879510557531375220501221786663767211946455481719880242980735150424493316446076730448317676540300437036023301647365563187405183687861135169090768359529522706112291163379350732957886106960010060205186726816973557637666200889718011661271328102440232121826993205793649186798606392551513609270778178292116336211880422182152738911612206960568372158679297755386966624174796237827081363001127997785460109031016073997175585419496130920055888827506147978088531767168551656910939715521492725763335512030308295629603460088964162354596422394746592683039458066347755235361074432599573189012283443826536661626146328374932263911895757526958643270302228672365855658335308537651995629153188935356426660208763161006750924004172187321222573183636492250016583543805139247431286682615171899608946406768497366662081604474115702854146894827002845259746088822951034129703772629206256313400699219711510396535222562713751173374127583961606344944801135111106948025312109181454560300521324242727134676276124222226506906215915530048029747348976814831799186782183469289800266468454747366557548593413195476742800979848925186284372926216912068649694384256714382427396333344357061566190060550276569828339374560828663776996601064684262501002854083351758642724052281036185856684215340079813238300046670993210291912247814957267411672145226639460286337454489662197064783284003208932895908246172005358193755581577718275560037206843826851169667417446225214105290293663020082516740215290076760974827311829451522528654829406416020547990900190406975676609529869494122184805953302650326709268491521940836655971015207712112203859037812397161593072854579201794578997296597461157089843759316775203458333889182545083048091858803592753903633827651738323225331232768324464792000988358901692041788056148120880021822709535733705505120181446801833169775659381519184425466867208470610138471522460171003635790211921948965729368451147899413066538820161423652465683034657892271068450206924991807873324082391648751662831905999349253178090707735910752472130608331049155308770380905511236381985248450008329448796233746656006906977860238427346119045447103624663379630234661305955720015282386962595029407359693551849871736079273129158964082957280095899096359848915885015858898076951672036005546936948791812343157213596019582955098343750834216679488730377975426692035884639793133209870295667463727282279712415877037085646028903925938040924036410490710976227860328477664231168846167112587335237431542108518220349977360291823837824579594435649713196992421417500535587036204029796569904212785891301888319462815373068173579498574966159653727236259330385045879051869829868382424455344772165346688032924011210365272577693531039030201147503080911768704732014061418067629903150370932088263670408507047885935580049935897857247854221494681763871557080071603954121183572815790442995582693057840073008853095047392893949946785762985925724144553678353110782153187742188522023369152780461455701599013470379179450358978069236085991659463403070136566507172580775589436848185383512248023390815573176955707018656189320431670642611571183047289139281376028751560530345330394482445980942655186970702678399174345114718397742015748358804389042215506225659737203669139210639923465280450272586977909494371703970019315830484488905279778706972699584759956164970553437836174332212120838715504306427042590282580488283041317702100425529386365782471823628309152678310010929164305582035514083379318674521365171564066560719958578051655496477776820310349969352416038915423989155470988812033848897265691567683498489489607121375050460613066613600913982071913984321247925675873879143345621833499658435875507575387041589303935096822355300339584761979027956197553978239460756783878090108192140181879127323072019505562656934906146204476961799084239470732295244013945337198659854586297236832316220855635670271108488619546784230747533896995077940400042422580806763378193736270575424133993102335584712006596459284742726681756347790670950107487512897112388912222308475679787447540007401690989930398474931197968857424091443027265308233851121426938712503462961915117242721734696774864964517912679372638259457921691077621216694234046685931652328949728566706255652439133054507301208282324185281582395488940912676111325389958529781303401221407218322829273285215730191340410906908986580620825218356103756435061370352339000381593993922795259349684964852842658503961180634427312761958460454110125970198898391036262378871499566581126338086477660854277003630074144174013755024524592589017113202334496493358912291950379841540843120470167098294744841854461018147574202600702402702973959485860870821894559960270802206646022135801604685380511186269349719608102818309328351141700778895301455811236482899566581623930854633326201628198816159077312774134649955028984885168691193909013604079238746427586144424404515252151712612379782559961674085842272513375149807960557723250698834544189444145645410287096331562488390436188475800244416878723269850945141564137566657967711056167038799850790147648576360097191628482060726471938142795026160940641727033836820113488136127782834590388155670578410813163965456535562203386795871581180247770433829823858606759500799065720725111909512104285450092327568101530146199343818571660765250279186586805973746342765318264029101371754935386952614631105997323946289478698387209859069161238585171160382265245867418035104829720671006846073353302440021325629146336279343917043641105498454895128498372205603499810393810336126179177572131695594938096012255129119475885808635941568097008647420555757987450473548491441371920065977317983017272847974348087298664702825092792298367737557526096856012714411974900150217056058059588922825851454227458191146228415963720397721128275970467339458096226978021301642076858795065827501266707566263714427697523501925744038726950077685989240801045332585524448382430390892528243895807029068390126390405832614022608856389751566462760368632712042194488849842124875731638275758494607698069355667480664739940162456028264441943868480291020127220408158058262965624060498133849659778055599119577137434495669578005307546278355859075317663704041443658359060789954020284839903343713838455335311262768160684941864394671420713540728790383846258646765824913947268633940325357455932356301551858692878043963230257813472635429144212061009222477834045657812262689761908367311773533973038122897613468795422595741270082910555272741354822966901719499292824489588457492917979391470414988928068998246518708303655611591997245744748229875370244772925106037015441062520497482353765214179567745501820485592730574482111489790092473968254514424807354998111580912155972242631896638069606480038781987036454028952408494075714286749824989586791531278736446525752856789987554303929294820629380034724572147632955183459749931259463561258419857228059318144905880343715768985804950152692250935971092120001569386816516719781480158500991917736280579677262598646140131113006408581296094354849375289419628100972991418555432293644007742220341680077086027999161356920958212641508564601507037208252728649980231134046287753181761252368784054309036409205395822843644796127222811349098856125973992606895636005888159930339464728987873418806870370026233419473047987477171768733079546960427118590215095398249989137206554731536127393939491471856902569439513973833465028908210571357395713025579379145382746562219886423882919173330207897527442619869690764620362252436370982434696282520711089187190241541327514672786621191892096227214981761899134586813973399695811063309969624097673676096250243972789900430958025630067333924487433541591621515891293057420543739327718167217403498215324097273342053998498853902246799396154882637667223790457061207705317454084225652277787407142734620013936964437415333635422909369360103023944567936483916851789441389156000672674193825353549807164497582994660667625917944602210960036923599570618929117701066188486438530412776964207171400607945336125170579331706486253550575146484750424874080881002446952274753445010718914654732099592389139158097661980716651169752513945914917391645601253843861002544995558722193152579112543166995391859491023233612988477503763939081014718213541035460109017851220962872373007517559927878484379478419672079184248859326261183105560747419078645806295210159447015758799062809407039195422583136086271023833875717405821246556203163939786324858365886067512931330951798900875973359047822751386038931721146890972812662487422825360027552958078624782601066084256929846648301152804090703032254624434679473003557808947902503199193954234816696023669100412059994879314566109648600598983378017428007757944384024389718235750494118871635205093016289062678071063411531532404885620727650306178107154786607103749007173919540740437629112893714141503599720412228576655467459831004399321891135015930837372940819355011227774474596089855230677135191816903685702221520069686031736092381542912859957198824363271748967928027120934940741909089949252533373559683987239836981892326917345714303713695633592531350047465234708594653454828870609200773041831717701080916757282690484232825587013211561779934413985263603640593554390120559283581142744199965087142221353815664466534301496644389820925084842011576580926230977358255303420103062018228399803711415911363363119114352801756550054039817790354859549557822913519801769516525852512595929288125051865773205887372062165194966872656745862901479961115894697387458249600780377604356773414769036444350594263356563621998024045470859962411244230868378631568475546283930973659975027050170370447883905301963600066020724643971689781668717870139696555701836102216132350438690016795824271542480872907633903578260592545199536137323474211337074909383327404037719200518443810332214269991273524610632573274295372003850344916150086772936797396193385548836005033806310130778123280674971254395120670514460868605760593383902761583558870748864808394945624109687979258526854337186299684254438205473684937194070559806270696507451239423637998086493959304411800373931084442349675682152509961127180737052928494995565487174271432374379838124294836057115496752860672993456149189358830579152176657319262000534770976700973243652117791624705518754539240710431748597774425220332646836841336375485204158535886515634828750943063099808240201642100273739800711912298956942424337608089460874572202440049354890289272524087188949039005191424020156815980820411824600880879482403063308532131820901042841202901914121483622284003730148784997834210244998038467726788182614256926674158243968002593820049622043091728202488323793314571319506178691295874004161640120192497132884660860230524094636431007940106301799273381584027829705928333650651253666709478268098245372007882733122250323495073833143157272205314011509677858286595749695986589545795869671086786858783196630747866352700879979565111431469517911152300156917544653078638904706003675645536750648405579277630648284201302932457315391498451265265468585466658774433245270461524338434538289161677102120305180240826948180412664272463897811936803146529807025697546732952517426330949083359010184860478235261517939696528187544961734730844037339320766068526679969268038506104656199765465698988491691106249953415060064064059061856238997867847313195191171429265984017561925369137442664475492049335915777352500992379371506860970274965784954837699354272978487072244011802925866477204725147283282044120810392365250627842240846189605467373223736574745848251753273718562900654870138487849756598239877622955737664934025738340252270339215783927443085285552099537607365438532428195449730742028600558500155716825061297961701568849756324253028659315114614446021393405051233608741949437161938024818676135782830600243617168155717724605686141459072150681252668761609917696657944573776939923129230819091298936476543890500264516901087453760667582442946338917981389048361249571897165940897129228420914206208282365334289268410109778091109087783213686702234485739263639340443103981594105758893328966365041506720394083746169973923785499236664375458783864475539165934712682164654724048938863501053781085171404255735795407940263900782416791951121367967007855105616477388775524176825101506103048703923085787873486187591403103596455877498889248196921071279486587675425053909059325887867826223776998020099485572046786222461758095233029117593406462236450348864455713702260374136183571815948516890752335724456322760032533327159314100745681320413040656549417617617355088390175940379108931163348557686076369219888757277174102457572403960956500589913318314417916974687968763111335525721299395556187590513065955815078630813651270075472514800777536072607659358354856938730009661147092638945882109448443422052503518259936721941468453740747097684688108521644926904874533736528213631444425013619484456645419617901579579277033341269709931579655717847862001895345265574790461584546898862249079277456196811870709872488963801730401644802220967224645648483021168582343357908753971517479043657339406285066176810956648607954059676558238182307781061106238330676918527097957400156318260497110672111339121994332909035771699007700455618963881064052679141151148648139745928336421307907356064850898268887999251495555266350029381187363432062695021354360491972786496572906680765025906135152978766024626879609914716432818310165762727466654349499213725229606908032918431054454895125535121052663700260575243608643412705875260569432764535378802840914205578291860823403204500308232049771302277686883966026979610854092641454953714408224762601233990025789793549597230887512813804183585268316922139152362325986692244258480710136198133804568361560313593571766244079133498266670972232856315213648314795641683499240752845658281265040978406864493536486364176969635555915023628882110797178452584524041383907733704472838244744321180552751963015579984200652755644597940631796216801459957821871655803771414308811755874693106594920425025172481138214695120396895448570844690654983511199756054224451583930604135560471556690727931779799507511227463525199810355173936375653152558641596192383453287076371877162026332087743578142915079923141187907473862911078499921294195728658517535524232804725732448718706012376722811004129587364595615651165137291322429269721178470164245392801536834874050269872146072338130566679297958562789754442046067173479708380721055947384634016222798152967676842188057538774635120670032616485094969162998672190423877205922600146098701769147777147322584194481349447537402056161130396663068522570607690587969334317384097455148386778341310710082733215514181982028500898334725887824799999983780311675521095550450018270096815909408862228295299431740308791454773205384006238484553753013640419697621169625141417890180139744641687149887109860759033318223491786678816730324850810901520419575037855119312207470784028822028499468864301677365211515275646073038975949615355261089804685869274152504757256869544998193187500431065751325975989818180341890328781426589517060580735429254002593806498501820006463843343819878336813097817181826462411398011730142314657730735656492591389597175307702875411945272509727139147521512577127093285385602458531366338141423891803528488795354763019788362597154010499309261860746158486700162545037627608806891167882340366725040248947978605437217388925324461672573947189787088430351848750080713574143778855054611239690631465089501419279064816567448252890904758937786810937737910564323542699682084082654396634240640188926123532315367322653862014984059165562853237817915135380322490450601764300978287315198747337564526790347714512385999921299867535073765798127132233332299878342943091250369520727313167401753313861760654661469786220152887255386817705248379063513200017284401452828843331094933413875165223769663217312507412872475801682912193542169361679144526272864401575871284974868259915153970723830612484056894944377094474744874916030893871417870590139055685218724176824775852646346451178238986474712764949514392150296127716119954249052741862520940104646845345915487988042294101255300704391477713782066969846276170755752103008447767773747768831978429945335338447529746894330390019537061888434748888330737156010712208500365820246448292269655621605233663267178461174802576030927876581838529920182189871009546400519753581808897854621814373704327556190108469211765761991822201843761418368241588000556038374640443843267484120072026653509940239983688796628039622186612210644750478483984827551291685347951368244329900431248478319875894617947274249100924776529165063144584696408658080020380360456813935320652202679126507873229075159753633770666701135276996385265616504502580069508517406463140783035024127161250121428021178164364747634374331068717924878102255901204164060209425440376156366824330575951558430527893396216670443254770671603406175154246090893321406842462222796399812571464917837198358146369659492795138346156080549677774512580535982998257740638612599836227975539057623368687135258529897265679608550547852172170123080733939945438555831637502391944754601124379804083977473340450724116653129901484030539489024519592419743007984178426398200624497653431523952067766571586278377859060662669048438777087267170425195941649582355142945563211217659564316723126325027766394396697478222377461045110546449001015336019099283959124123196294389510287050278660620313532695098456049935919821290483771192060146586105228416588240124225359501183114206480035250060041897707166521487000702007204100984728141779262415995952909535437383680604281149010284461935568836332472287146543744054659498355789022619089500050890577824238497362746151301643775524934555864742499655909030831762599832999223189550182341936077133680866254274052537574671307542644995403339635650505322208050513572921113638963807357068066952932545597771211956489586551490454271517940715868496826658899759517956488534230098192986929290520886155763719940983979813849373337210516622782969522515248778012392683252571743142453626597004860088361783954106244743892386707075400272397557197536712294059972612693191632260352086389513955587806778695912346269560613415014883185870330225255078837301405628883748436454794865017608328670664185335540961180806319574567666841565952868599494218960639461845669125490413179481985203326186552369910144161116925309345106438141335013573477217941559130229452569197248930859559907566051464010035105261187398148417012447495726480931403822094744932355212910934537140374050343663994238434095919038531250344465739115198063357196443069374134425657504946543671995433084326409765865256720172360182955348786654267953823208261693137834542640122302172417643864760183712489617715729061250863744850743201273827417777451052081347095860677255597208385211141550047141953365456124798696500460596854725395620326962826444103136803911435377816688859428112338885518538999368222462420404988292882077566789871789910920260281039832869978636986515191392853099690374254302618494426974990769293393589265031692375448516676721446245365968261335185308300321762797789474551543065494429706895250341045649560399883065100134522429881903647019681258761884498074310067102591507392241480734736265131976208099514883792771245243392640753119276342881557627693223264529941418806287008259336777441692198422047583264917230265460312154470394530046835381901410544576155514082084655523657737430639014707716698504660729482783870605905398972014659998353990263749727405617826100676370292505691465009978857419233671139597850220439364373164106183582811248485921514666962141261460369938600140863806083502468359236707897494228000910458558861798596598923223221183386974861098918702677359566422928909443710452614974717547363853914741087458690006047333648644130193844740917658935854281795291819120736935643996045026628025073994707070681201659001417868781700999808668107521386486435669864637137661299337367701914759375135994269553500978593738413271125097096285679517893564841218859230959002870066065873790631595138911267376406973546726948598636479617571811583051530818853328555296486589467643434107041211391860950912634451652705985473438395224770434070700712672846744280213774904525122624625351383293899123972197329308473932568933317523246213956999718750216156679229106312487757130286186512336627356940030590440041522554851615002685266405875642757994714279961047822114379258316908798523268226345133790668900135445161817737491624184007416592191653312587109992508973801598169570110057712870808922795993845978715383751127483223893188814107649325246879643563656156070244320893998532836293217136512737024147445840162010684921827147497214070995004852377844896774704624555972669503361204609459961738155683659028620742067947567649313051132580149614844303561500380007787198170467488614123072385544053310427754111348793380580068648257052259733823936496823599945774781601349735780821783449742333296217158200632521270159802555269469079998784252256921577292226736411286641245417462413487684917524935375339109866691573194303194570934521133356108504232365513250973387437738794833306766404608257524258555105809341675597193914183823186234480751443620472726206424029500088092435317800289960890429795441004802010134676239447233611550588744572386436245917592946669941994340862833820398067988489818176058493212846072494708514127137548038357552109831377728164958851350394231805681451134897954114317937304764191086423953403393182304574388413227294293969064327885518977512964558781790252083334683578864635542922243513076054976425049090056637888359395864112710518628797890906058066751029275509920582506282956296979759228096953313242193370319926823546733254221389760400882476359898218780105349465170483491016046362665933972620335262298311600442052750657427891547692211839300992708559590509009076896829915223833969392773966641667360702141954030229597750204185413140930845911672644291633275030663153855138202512714907216743707285980576915110560380501798721346565742597446502403405634655222137744733424427404581389100713556817455795937365224196071162662857054885222627161287860557029585449885319503224368619645196713979423773461397580756278477802575766702069723646559433321391697113467973317317111271538983144443743168734943797515547612243751026481946426693041127961679103032330123519110464735013865725768314123720252374163951953630094330757752104504450757322430022140787208870185206676071073204928117106303246309943260745093459144537937871167082526990193525753562664920247082956181441905706892272248890231766928274279204241552225803580012641214192711041056703561998481234347244508763062506514467886627571746804643327545294864758469281763147569988351728333020390661043124752149326653647126689026029302421823710465087650336448339365443600298549033695547804643633848755544410166245227384636361983862249979416053434287997675111049031488196767568169664411803102406003335505530610021399079784997700280004987565078609649099191716707048808796277798638987530737787107721831514291902695039820908553835091544835968175709547997447619353723515627824589003684555289621943656421599247736034788976749035330520970719675975308242774502336509529725202955609846068816502600183425142244518057351220566484023270856646582624697515467065441677620230349363046033803694955087769733400889892761806949160718380329402556006647576908119735907071094005249453479941249616050962467603396278732838980389744817244391692875864339523877951618183690693965620420190580851753579019208204981510293541124004110157898944310348560462783946309599215630941369469477501754886229468413231780617871741002026539867170956523715606341185568710555498403260127927597926487916319540476622170068253310280984396314851828801507401999616895287356559868566792852758775725018079383489539128968170309182305156075501451225994160120105295101667753153635233832792431803131407346123334785739967087100528489136007119463611456206810819867903702807564133718545679056091508693264431386806281771956912251123436865396664205412671966589004024354166893119490760098297271381198887506036790059942645374919935055280278233295232107129667660017661690312030239141288595156098966631007734586752768810652223745725056181906285384771991705606237201387751775375268839672767316466110151217818534413361057233331725410606849300587879441644708184783736125072919255437470716244872539912898110448084471198534105284433784354272276184517035181840267539204458307529464829992056686994748109521193158745323105254130522636998602378876076181582933848297718583241988602431766740885783757940257886639161800314488727848446678228766736297189311534148510478065018392595469213545047375231325582552781688962233124635872309958151814747890608845367986037005710528488923251733697134619082962758418392553404557222138032489367940078296724522233735391216126345620903823330055626989067296575518945419355305640754486369680650400108269370605749150983577687517126054560406612035549772572258222594638499465807469514410799149955726701488166241558786582910701989335147273616080126832017247016199029798884485044904256068096044397689296874336583515632800745371130759772515544764604221447197329761807508512323498486424221539738504807101255821440266929194483686399537387392626737808974882179325428978099456350227527690424031220372229199173050052587924323995204683867432711761801456515950561056517736684005721853453647115967684749011547553271135073807586773024481582437275863624510587720180205692847694180509499853672828710863700386194848103998958076429275786074511283056674066183044500188609891172727664482092208125095769451940042965830230071604547991328970921771927257174693721814103090130085471047684893923449581116663528809328686642811436827087994088025799044216464533343471713515942436210560898476617818795253492840549625477223090389121494447835586295791227241238130678912813348451186959260105225773027261741175249935230917947773149083581452262085864323029358328325751166443181470247679824668610673960323970630352245141909710005182518903917921201961873151006304728306768809917869880081734294792844269460191101301664526580961794555864792637455421422174500911790875555610470259014240475602289779244121703401417142723659611485112580770251648185055228158209582954554876600123856685259349224742523869020876819672982365361983124015054386267010719730932068326950084394155741821377086464240855164995213320708131303791068193722452641517308333305425580587959565196413743354960923195494916084979472110589278141906231263518603619775381191065478535471272350714760729837635792416015457908002341131771382788157590034059534653171257538110635796614242334893713677568051711696540586281493739142866921159410228222420798890515827839806663864124359360893077569039812988176073354138123788525967154328768286503039591357983557187704683542758139891847880068790426374616079008919965854633437937727699591441533533453791565857076864323848348175890766545195467627912424204599343782514504911320036812237005712707316708758018848192000954270796916848047067096526784347379032764194591342503826830388873317299546510791962834032187846058875961922803214273048537504345285905353758943468495255674019156850647200444761821026008632783139036485681011646315316912921246677906142436185017908191999841031214941480952379277196434159975707877752043285671361217489485524665689886304567415878524457255979140803012259826515888467761680208095418147269950609199406553184580388074654157533574022557286581300157423733777195924955758780353873973944392932819098860677556630626458366941959777463248671693210518293557308810713310657659171518627725391969061826836450821246420595262564839374329376961050325651138530152140573727794830589385592850123240165082425140953507370243647752490842316802902578770655956954475241102697582809644125042229150208759553564301895035842703424656704198972086279331175416162973850572639215622462020248928027832132799137946136308613434576905202956734675513893401462051452878683109386694420534584643047005620943506755316324836725451308926100172892379520383806781126280843137783651528738868246974419663548874198256892340883310347615480565288910841711683142812375609699545373728948603771173727039302285711929816672750846680649850940770324570818120583871729080941169582240312960397188294402308928642110243380881458914513024238960963755323407096683737629092215850797444075556068091548549353920416788705251886801701613369726345661373951400814090990257708597147196337678159642605398800268504535488202204292788912587307263224652857514966908025184135883861840017488377878265137967669213847620727482414358695055295191348060616112027821307200195220426984359825947293331480038459271141920993376708751975564057405309296265382171181480360804395173962507820508753048236931198510241231392600033067630947175655707811781576128331509958382418722616683485450312514549275553590533130473226865554142270368067306449382193594317690345438945807694868318596103899043787403626843880708038081940004130495295959069725947909377255754483206711389272191627211159503859427983837825711357839482544268731371340703497782097416196256689003639035233167784933267002276311554223911702214962663425986096995091108681824953978222496822996384209401479566882055499993672278792148749679081034864380151499712027304425889209946159095539794570250746310752137756214147345559779716713120204543886728184677814747194147567600270735812506790589971376097629874774345703535476806025265395513113946550131130128009306194865883446329660307393377718462924651819930450153754515094754708365824277533678784999171203421657680885710611809241121687643233439125912175120055738265524844130723448160804954644467536392236590311013210207238549872340212725409100635248353570861360237044106845348530930468198843658966862741905169749773974179807520981582334244924944421181135097197206260696897494037519513577579168538800496810634856929788770384832091011012734596574510985191171594020493891522085355925895424289556509600319192724976687150089089151871788944408391336120366017258747310241166987127892298400856432588431859358445009384256329608772690730013170284312413282289808879747464630095086493715304401612028967827578472628792059855777644131575805939147715355585712164434130406841809782809260699353574435147472861363907978722891507155700110127916472670965869124332559741784021399258411688200809863373012716926147751932526918783386259598018730303339641093374982929328804474844436572017325625628094884632758644970051471760893787718582489111842056794353816679602337686519077081033675650016574746239207307865519113220751315758419806562413958428136840683118216706985306511430928122115023862353058613574818093798317291528978303766672480885690469255361110218469953534405055130031304636347836678791312797741144864792122192608018597011885402561981348605864030489521930381446461201920497352046108967831966045345675242385534152118177428996056156587606723920258176560128436574080709819079405759748554336496904515698260192336282670564143457948240606102636851598389743262501591081564774211449376803717930259283161965460269547255847534488313176923035130594678634075788456672063364949070171613616396708487524453285146843876894792426551089547616288468758590539249588138272499155092734982794366508775662248529950469611898211356394484812140943808476476560380928851242627278079993852248200148626447956985713456760822745192805234880161063407870307245890186864650563899302112029847008963693860194812080486506793878962723933798485415216201303528152206004458589822331990191984762189521692261417350770751344830908958757920167470953363786183691127269286986320083120523307502102874440084778668316488909615467829038486908689890237503787831913893974990063706736323162019430538352274784501025380479128113866469491230359040550206419602345327416554488717336236904267012022608138860152089028094273979814590022375262653085982067356728632385618650473239081050495163018727476117886623861808532845793484231021873026142018044380562527556262286228057003762920437670906743131310676107582025776001497902840361523420947416554105382296600202668010372233441206821600787016109079309005642854928756930492028567421224564492784825803608255413228084669051250257773355064911070770394899250566306941781744685580227838941697330439327248625458307635406458395615509346477715376559015788259858792829056963545635763633633817830637449363850658519691508299669404295122128199086700531577606184155372725980732663553746500349984099603511646796619307798609139838329920971180220799501825833736768296843541342378470374545814282483384830720567814857057624242943510372105152690381127340017680299294799804607485348037734206511735427116538253633998886833686383513296641322839837805251166535732606620019895629735310966824651647695089118127933199333541806215466216992693258022626872063568007040433429160144106752558734192012779893917206800977376174842732302006446658544189422736068725112955280955972832876490957106520614658009124292969350478659516354305951420817532889931957925554957313438249450370034007983668073495838965634409891263724257685145212347501344242773270210329053948843739990404652532092346692077974364854301854501141535701250323429812109004133190873683211356865024662887459928728955760822002797663367824934209852729634217327547072063375747134113522569077457611941839078591487506283871606269808086899371911702069279375874832734697645312611866333638048730427304576055755045501773848396829627820355509392754134230307370034822342164472034878788599616536174204721498464624493458669698947461552315760641235250954034556817875688140926099608524144836663484042948137562783922410510800184599582346391453311201103993282355322892344010146762606696828314028300898756708367965513939825456529967497655798554106657543781118507374855697096976398546180945068893197486417266497063272406709239168703226991570135757671672451665766586643500082373727848162119901746689954460487216776461607076981059396741096927699895590883583016151981714163133869901779000629591109911510037775270016361813677333584188475279310098701362231515327447612186028740609534393319031656795893733227014993222743380570834162752351228794330325148554426436474763211737682261412856567682553289394102004144805133791501596799785080012457394288284695953015409089055906564428161847263749039163946736455201823189723980843745846171116075799453445793191600663234352210697936009562898547409188802134539294761097081163233549039915015315580142448380579486655511256877417073008538619523364178005905462858961157794401870537116373726647012196839429188485246445291002923005239332112340772777702447140022120578360589767169285880412084469676231201163998958098961442961809082288322544999920300497038482162625759609335115179374542985978378653618788774122043985939826708032367262991929086203586896411073525990748022622361700598983281189882653917473069397464808847162474640986137706816723736842193683920624479539977214897484910826119041713882140113764002873605479823146044840741159942728106097200086660644906763841573901220289654285267161517430925928209884974625719438515059023203747959115401737870299894987738729582680126146196321997216121245425150421952066421299334894493326812279058607448543692967347902042993093182373351754841952241357811060754619896781557400761934180422995626138132836525260959505872310005559522044080636764178348864182657004162901169977674548937663488270708646620731936322791818749406326434087224805584920215954879824133617258304942449446993832927003603349404872103114330034234344549869263120611068781507158877717285271275171271564896251767331866908687635321541104753977182578134713147710853842979815929605626801760913378791591296095050090590937462068310685739312368543711035663365363237733536114223053835087816116087304458249937760226230230047882042491786105494120992282374430007810425329737443369144479747447628490737363782194429836120212939110649578639474765529993070722168521670733759047485883922081022946329099093165339347713460554999095049366100819225436371793062395443744474990910042617039763162847901622678707867639581035680512651679418686368711341474972084324030042722882284135382277058942160982765820869580999952117749031258489472832216077263301720990018349988100686778713839692413045901536903384231291950976070496249324053447597259546917285012843371614513474454847694388879191259678916779737169721326199089674558389999250198498978446869396333737045805051270960668377636810453332275057974419196854966818981508338850935868466160763722521523584312022570928787472744546874339818146161522687872298380846841599991016144414845475252321382941693605096896985336166678330283196921899907458532627587873289543566751002080980190012872501044967727522122821350874387022460307533267758145083774535108689963261643482648106628256293006315036633217294987915027704755636180599574173870125815987141917680950146039091150910205345260506061616302685275188678953399169874836074001656979997224398231632759021866782892688059010459407201208989008795221640593789519623310064667080475554263144237971092419255634157503700528254270384243127281183228611003817126298738737603506954328410027192859491636673501269413050151819666216153957744637219734181973557214722810182519535393072745986679448384658409256956854821190315508088072258064235689633134461627908682809904752964105481046286972886337888128169484288003732743688469475159638168796491379137412105817501465719934934566754402264600301694042046747183636453024333292857471544005192906468441356978890520077811826201986548963427955219597308858822713454837705596341791605283728043190398432611920853660064552668908145894087294135516875442662958724938415082023963472329414175793279586484907481999746127234035234461271805289205814054389661279743884212052382951386224574079175967781127654958442101513218264592498464485154019534185583453136223086906274636540498412598798111486530313347674013163363253888703156034356275084268032151387007904804127737441558686331055531242135712922051548380465074248147945335147844873826338670252628553102934147998678838270085992024081474155278731331220531997354759666939415916857845593421515202043217911560608630829244013070277843537607613691925845644102750076778882353761118616606708788385807181761737975602658756709334843995905423604764609703772143364857273845712091100303773405664238510640342884182921965184855966895088709360615431096658306064474312474449476832437373329619390921944494198541346638756553481579526223215342370889143121744911358831759319085266193378004555082643770128050492277889135662831493937628234240212533265055845281754151101174845815828763989780622549941431114954563184701159922322352117990459894007864394562794671774849563169967438820970091041215540048363016699573206361384319074656872867200897208255239156408311606642361730996599106022119761504927038576724477940110530440381946801869030164463542250173163382894696936768475305615488924764382206611512434435448818877164795917227234062728418806757421528022726164644092235620856406876405927196790938658097826053098955895730764701725949362436242422490221782995428524826366258012336850834747522261604302200420898809064644210995496452470637527005693445409728417641075594986155677436789060141466951112450588272521114247029781329538910159351574086350944493468665035623068339096519602911299097217189292310642547552713964982659665006957340333428240430968351900978808151931035766665011582716597024615331265202335983145258941210733314606820811335759622283934584044008089434400730426817550486279845011038387662814514370487102050383035422229692777822459084134074247286446451869827733978796053616154571071506480938532636462600777459925942958011322847776992850142028877765898498833956995085909031597586164903824796491826744934904915296351282562877730080099716213865510756895418874881924390952451397474249266480607913725611543690731935666865771103410361550303881984615672893761820993905163287017254295415787298333427113834038829053638619847651250526623767241293543247192447234386670819212609263677507751409604264218504282593186654630526415495554735798849710917049405923518891767575095333649659354617011937740186243523663627606067808163150444283203030398159965869205297122695305448609953095835429394007536045139243833060648752514159428046717258428936454592686729251063311797424502910570799318375899261985515954056825073428398845185057382655554637726694527110092380228556768806853382223187444455720871826223738313647497970438424564846194428743234340290500387773609778086823715605122409249976427719449515800493759679122211178318919273766762788568742996592762355358588944019016802319884867623909082283518835548092482615997334493773190093255177880845527619170756757105856520080122745831171887013094333903968248567528408539073050149196096794405335618788671177614166165059858712269661247815996384368234426430926720064208476606805775965130975055421468473751222352014209037131326787652746025853093440492596522128915763774692766882392094676026915047861810858533801156917594947787141693747631566917072068148480897664439004502482885304774144500439389312719487746816313651358066967683721447423576607814801558591612679341885168573323984867655607761696092708592650975593789151016797126627862573826742948065747920219853908247156083565712962128554899922294977602755996607942095068223603318074122445117601236204650050050619987207349489978790445690821820107849833030289124962772680478820873820183360976740971652985484478409255561216993665975404575150206799824953255521165268766580081525467735626345595520307706453028534203590370865125508706945283758979740514460947335161547161404832185077581929148967870281726492662061989962025041981579027958507958824445404774719876683434039696071000645017075847045471711105264838888844248550176129491147873209239620071878604253439826906549123243464357453591647883186086077540268847029252516792447474681964089343604839833861334245983978390782281803360871743324064024708630394715043201006817926865641971405237224209123516251338047698005926299150733063036053605754702381059156399595505524449264466683323775661632422619129425095005969999763757306545602369014175291038631027763897402913690202259715698354010735971650156580358260153724719603167762718771327394852041828175649234930408359441663763587887692196938707749084700811035837938380676351189586217434195370735132909222706267047475078866213306038861128404755703101305755523627583451103740603048009853519049756432158806585493695527444331205533728327131607304567269106513346869661686496103264124726993490523310823836117229135407281123292494485294998103450299670487713935505312227408492091000572077219996277304275367570978656907280530954762444940124986567830634945527546867337379034735699013929673558864417550299237768758509836725074432019805458937804096674177477502428728618568970816364551626746691231462495824890657480892160222970943626500723185075121159389983092794046631992739542586005736512402523639457625695217813951225879949529135857936422435683108504993792409261998115233937111199350001091064303237561037644359094612013166687443390668079850052756852094237051760847283709869211240247731709393542381918514443991858216678190242711562275422912600744219491016531914906392140303565903431585540618156174091352221655780410554810419293654786043993452956816137112714081965640862474246861872509587100521515213378315997111338218023267877857545136536005650032039073974927777053669152929736164840783651870111863295339095760174719604741965444097667240861321561566628985644752439695794364170865929571691117847370449047247886535557137578454228532222377869703253923118194101381773142410954637180310701446630918789609920552539803626187711301563565061864043221464814390448384822067049029370602144051689386492677051629196206073613284899744105663795281081506238748254857093996479699584944143608051353762841206720957860506501268660606083694738997278168655356298490292957989950926686123390039906079071565726542697353276547109383284368923351551438787913698959362476881134779797053812676233488770629737863172020208682133098905824094623463582440658631782974504983763928885650152714026701317591048162571035523919504788998014167019469643164430834422805236183262465570579006032936299177932977111593637060106987664780282837248946943749076394308895611081393360183361912070258211378230402150472774496283486216584082037545025660181765922522392602182307940257716546437094532064828020184667282658913936922912488142897233742797995495759904868046724297175009358129533900317182982305400482235340062944177805537332346419405601634933173446795662249649394798526044498472595255135390886978118198964559402585570185602241747214104024961715950804971715788975932014275049648046402467813169345714537071580498987196882824215406202382548451937039962297333255113785036302237029016366307261711895352474236670512915357264183443443200810441973592156582992162996920961103058237803797773952965502580373500794665251197335168156491837389688316698877486165756203944924053265633216228222279004694573055591697340412765857469854795516536281862766196790057181598136717767400155528340414295348461987762100185476033879314133702093502759113737402075330656067655199307703144688311711475662502428245450689592369373359230749999432430596058793243251288992948368232534971508754726205780957000504897666003291476666530811471604574938263865454769895993428134312500198059474186423954187355450907364019355725463180530895890261112419265405428365863965068415665167589550966752569228276890283916789420956160979039971632644024339216410883002350729986574567241246603818215781250743652002699089773330367852358036295501738874047591071445762450337362171040241976819288350437981451049300705332654870633401740268561945578542505261857857807866915404176051152315611064286072327441766548732189348132494923512764439553356843722596972537172580583904210553239670808204210569838580871154140012017540305944037393645356160133294728086690362907738621263180857213363135767774519478262153180394554266798793077806810975315394508318826653102760099490691970177099713429219773324158242424047666537402598139034525146261054214561578357186254839585833219116051952831350188397186449827087694305836646487869713441958932884012462231605611642603878578945392968070047881020950355124132305298663905352927212770334976967113967343375416482274319279952234949322762761754980649404170233497803674261576109426287467360953757821235570909257801568197965728760234002710519200518530110532819052705907106070508924132028716976426266044629578935980362868199709953444935606677203810518375126105290733640539408256993873338147380128812387573753802563825292911132988044447502216065813396095238143566458302204310702996755300748584730708940571072933450274695728868928968992652189044759251753616449105135967722012033812658426289949682112716035736708061276927473009597320639474093765273347887068866030782328331598828833944316878124248095119161848509166995295098459455940702159995465418297373450697228852884587775152705441399506768378587756536144493691443029651217168302023734961587438171520437158099503817836284427234637931493049058324494227823353133049482049461718680793268587710581576417904029334647724197146186467446100304100140741293135284450364818221211126571679848217708049994931909012200338276598154815757733387213917408135605898598334692058542990107006385273705852635031582805398307724527207594164644773346171191968175780728747967747739764778368800875488412310042776539213190631106861700583064496478153098904377059086163984813539412241484028738846934654442897319716470442655609978318260803071903213415014965123723459463839293741752218440239440009201473912800242524938581389491035646555366880763694985767504580958588417198479559829037355998405180594896343469775195917876676302201802199326476360896545293596888446663265285516220419057756067927113124264654827278731203251714008941949874041651063309975082190318217056725883111094141461342495583760553266248197804417455172355461353473377327070578419488555662683126164650284079708195053469216107251125931420362596332892449608749668400539448022191618331069651200209456554724078096294803083966136087968200863829814213794265217913075371590733247072288970144187579119627950113869758839658685207490665531178495083342397157697615105328549740956143682208102629358329231174032800025190577030059744983702460305801075186222880866156282889292647735658747855441694211525757522995321307499011759044536915287041068766486394236094236875995889596249627853427753925243148296532789108262697441715470266218559261183983008746211582899215081715930642860084076654350077748688320265006082054378784063928874046045473453582057263494906938511119220996752870197870080285052137852062526663726855426496922693781567048396777828260205566737615299880444311010444354661535057124006589102309187316803295447857485854369154921949272409590392385778304252326553752996420682474899224426756366974069216674408798120751650868692349370306392041581612128703256356369374467253289979652725929794764471026228847393418654277074555066496818549644619770651686485023610432780590298361492614130653903385823699760111303346574000210185858337717062549500929964695417567254257969047830843933664589756739076797745583011849408951858941161665619467739190446894562130722462739208683505871746728424768495089164457785132059708740268963053214320136419814193838340588547752375379091210294712846808144957695687488883096215008406193931880806796264093363348018033978184231866244501123664645026673095207179052365621028038927332903734684745436117890708224403252448908896978473704761649802302052233333502924753807270444114060947010107367740642427285593499689401416207145166896672644457394376892443668785225310362082948508331738152701379981722357146248492688400952976697620249533082382483043752077503708969195199422599213037238317625806154154228624973573070186362161478723558793567841754633261445660879110384681993401122758596979453311156146478785489344250821283375297404012867468127452621538777596131972814303238823076815622770823921568585914530372025769116143728351418262209180157380159465197487887909479286348575870922439856675166000076042170259270615043800681091999651206379938711074763320985270529151735815735859843585226351609422733318955016095796814575717688205653596264196685557983809000322388864831466032793612639280589385380232524352782070338066509911559058986691096679181274824404751381236758644686327083815493413910329244278803090040324369275011494601039145243593053611231616203477678291695929968569406483105011852667345935835389128429936587323896575685208678559425630639170766512176305005761769068679732685605476937311138757604352671612257688436977117143154299249755064332780619094063266265047654511267464074015874685054641880392040693509420660560448271001770360304365622876002382939495881650813416521234902705996952748133603081640924202378861634193198950105120301893692205403384564391800380027252272200975662105771037550329984338846767099246169531582884002842057103597820751357776727227864944233137313234224488248201412103658450626463987127549685907969575382000062983277362342785400330399524173513959203703744147347808739091779479574615973387545913565275099800102866395687714472840063525499428033235974250139448352369744415395763092887377114676516951244942316643249219744649396409189887451964516964225208677453669777165843091049729074553647118803198800727079541264142086487873535667508692138923247350884679807254340962521756372632632433066606713506622495876102770114343769711324772875649931882329664333153507066723996974021626096924728156939170274131820816661595837942828526916705510152749995794600465175644795789311856145767030602789411312746329405503778958755232860434896446359845095543788344414833456992827596480272596025568318846057077243913718533097387992699677113133235345693659694605182023852379101107635387606702397956480745876944715627123140735052063961118382164846720234156640207396304779333970264083615592020097307607294726370707794896257895948069882726762262107537605570143594239845603108298040381019702785238958526497656300790221856300839709690066883356458229605460815011903466609395361759382759532029494379036262366926371354612283061570297540367556229797999704037545277741007035375692569013247393035445301988032987229214803892686938793592810959230013569179169223897702349734583682044874204557467634561760387481794464470574488843619082178400888291241202881241224933405468072170836185365170735628831758872090813236321659117661881578824211129192000215570994967995583978137707542721752920115361178321341882788529549821660939866824735633456589303238659182890599647313265877812253908899244301315001344218112761031992124731177838000123632896960870045142966250270314142622438125329078535644270540934733751459297125199468793002397547961451432547442424754362475885676225693977515797719735624452699083065467312673944254086750950938279172863142717505365770453790215650373065054671883516761638977781093500798384848224432418773239882525550631097901840176953533550945182137012028199991975218438203958917958604953517681296953193127402002264646677686790715689139196705090990059869220612719251057036666137878587498682135037158173911745531481553536655424968547334056227745088491682071717363817867068438596063443382366729789352671954403539897284638697746450118034474340134734768574301433484693782321625690396310919914717578709762649878976797556183555769023684383131927759334206167567939262171255704085144007366443015395785832697743120414844503461554258413418096745946886018983521505927353428463039458516020289638012412076906762374865584365253285544897074753511473646008849992004064111853827534236163180954674143161651686828392556738031276946738790585028178022760017221634653678518608166469203178862469406572608227762093699048944157295583211589951861062582898105483910287763250118447770660163243363270898522667499767898031628611005683327762570498186287969240392544344720520260831020500484467456639426949951185952312519422042509685484970553311918247926044545793132450839549303953536927349599770291003269109212781332351344673374050142418351013359764664420281446672543569972011355357183393804301501900598412853703353036987477278425292719964963534419304328040018568339920388806939673704488720217336040128105333657650590092099500379363700739564844277465383510558312678671514957895752795531354125531496794333750013868811482926073064005850246017206806258295667838685033403563871555106457677329289068285434874143504103639427485074587022776823233907872079381704490157535741115126410153040715315513264585396172781354965565476401512944050393314305539477856581609524603467655859535201826657727743160752355752225127135704082004667283277297349386816230466978125836776037264243352636038729595670543565551408855604345342643698700724555650639224953737646224628780013602593217719969520364314353844566622683981414293989777431697947322902563548284491610916282369928785006335594021835211672290552360318590394139820777154812112830146959566844979802979503939271373297732569510381879929541190677452681291934332478392586265820820777610853910691176101096178511023136026091656535162121498920792057588333684582679976191551809562057518440163689094003705101363063394008012864096173455272910945935910265308045973130502745692748231974890621231154394842523535288811564630498899123200003600590109258584147822813041733612747508103904810808090778470380840799598856286314466779845225957692088987387389884753990934245630387981902634574281496481807259287250716147132275939580402899181588290653410181945119371584701182593177085036462350088236975986307302996538606827946459166792012988228133841943079728046245180276043468995387213055576017665607324669533560347355121318506523480842754842988504837477847465958043707590677771595104663119627384777349236134316018534343919421966697322672041328043380677594962456852866139982574546038013693993362852199321004502919143434136651162646528084785907356051232253086604482302574210525180407946453472040492933150867959461072388352316339391346192348900294188603346974584901173891418670680617195531578943896995055409944590095464607732349292518061914138884588711962511194878265256960564413836011373785843617609243760820336089907322178899497269812636375946762407886156027927390159046718734936004236132865217886997992746259882715598679961385589265508602035498387340823777483979227556870189055852952156449952823552495093298704438006426510993360467365690965141873988261796472288882670409978649746747681678589847064798307793991746495164796572113885217553587673080741543200151268141714277060541690315118801078714959496702197029071166391459823063869030110576857295415220470689693637538236290677713991611114235015774081653401746009462818811047273430918580538268193435648656697768204458912741115538615876794634678724859154632743719393640948268202836714021509224986952296337221439689503248293853411622076735079450840047355558254515095696415568445295867207852828638885453604948813668395831120615026896421303227247428617981432509058430097601474720138725394935252743204130845087602194237593525003082999510389703106401948116971854010503448607403113698969624377888173528459434868140253317831644005653761484254659157846956014301157608159437365721336342122358948553103384278493293973921122306759552762932565370516060813114030315434200649805302304217755306735666107594281486322178339281677020984379097048837021826374696963616573188139840759644479096850498010042650714797464960623197844851069898335479238232587957137491386725929756534817280466333135817824097874958619437981759162461042504876770619912072505228847437725594610593697187891145935015359085263619221314888092129914797419543684543232949632070680186192293211884082642130511206095373175026653417333419474555032619732119938279296875760536027614005993684201265282558653534264296300969556445077065851006955822882220871853527020093837187721612222501312473775477815508526598037705262248876250258467270101232200319868394708034778587039052743839217466590797157671064395620869620923437595030404001893998949920073741618399249438113189482120415342864416989775479164868555255874743534631585854079914960802177792916152739719923215517665212498729992914185327632658968692464689834250927849531494576011801307260612853029813378815719468313147370520688574257052649707212089292218335865931511589665314386835340778286425737756987717040220855788291583906413115244249468972852505937916905373909996503193326231247423224223573098624118801385351735298506007924249257711784946225605813952195030824189501137670050516901817011977084740147625154698929988625094032538686342362830232849533883787770099482889152241625404451696999343321951484369155645092909609577663065875485727295237686417172997340402255886740610023609254688602917065917683415203512566141892514224159980434151214874820063068364335262286426152881071968780506845802403561299743768067889405915190002504460826256320489097090641996987623932260878094033204782059574208407120407165844313130944092009050702444778145579775875118870059648332137988832412739882169943136317110406029545209949904527270542446917667635029375313025344083083102569860721548102653640079900028754638963910558136577019445426028263355203241898434465453459336086669497116098491820026701210332804320787110919770141145446298390068088341383984851612366060906472274424132757654918821295913136501190644976419947480964248539392681799694557288379399632750086604933910442956893320065776230862412619124451429344578493944486824492376883105605978076017531053202793160584328519217531361257453291126159263008600375790998673170933747249974760370772335879922256941892441755549892233733525589516953839941623184179250059225706503634936011160588358006045821471012536595229215661805243720323933413004490738370406315551789838863089002880524451182241258716959536516888522886422326551939218479068738900639092840931355537670049165120283404184237556074401312214458506923212965570485910904176645579612768062407343350678862140214069107595582513756319494118437002322215677912399025692786942301680443266849393936718420867480842422295876414013171015235669525351119894740688637757511992335194354504627074541369659693030915741565915954136188145882469380598675237179914586275641585937634446080355900961592666774063399699791677893971148565426270328224259859402521737983438654472962501374488895301063241339645658711508022868078709615345011647825599732698933161174007393381994838753360496054982526848074639663266742259881271459279805645705147534328944584825395561538065858080344840612779473885719480838367591628980889114240566572634610618865358498263127551534841682695819117495638489343400959207487796207071863272160938168433404513890405563190934553162366974636922320964677386993723303450350675152724032191005712779999844247866114286430177769581487583457027619619109439551554022995215682252009251714459378149065160117127176656313350629810902252955498576692507404589489276482739977818259842019868668708671361319647788035297041702348799854037321775726516900920415703811050907825169132779600073718116937053214741671969143731606292388012423517509727242948290743680266173747730093514849285070783477846831029357251645060657722850203657965792197484147575249889324711890916605149874756746607171281133142254562534101567977863300802320717508636894693448702088719925140861958878785028033227822459708450677722035199858304783384437919185722285585064093208407442652408014324663426072247720132397711406668535398361154166711901588791254447215238736091437186016748616979936448844859826234079094158493306266704645145234457552213965220981767136411361511433987394854113782965611849294229520382236903713375671142762087278128658676939721102477833177068046232450889081375214905503205135530488264967398540068302594254243242270257468812826846278128636825542725532439465298160993053318153725111739781641350881642410678342851891814325415959819308381010196088828669160372619202814187183567365796154625692598528862451515212600454991029057338147973548237498272152192377584117857954502903040506424977612770940248235616949705240077622409458745040331424278038580234976125499365532069495229168256558232948878171468766325770038180879042604898024841350271928107984020848518330473978867658370952768886415490724444098182810853342867066428820305785030658145713259302579011935742009399877193324015233653999846001186452372445819858785435840003440050840157853938167828387081307401474455356380081532940290683445709616037046154215036839669413462114270451361423138498439758475943600246917765324109543559781173477997153799000862036434180709897953594062078151798324935058851887882635664688928063837084982103889352591722874575001698448009110231153894171422754519408571388584511014426581084386487613347139442430021553294549385523247769080025271096384600428708401837521274751788230119089150007534005166904439651201493662951833367206755660008382508542969542604010392330946350066744544602436394827696875780107212352703942490374254002666386917061708854762001512829608902371654017983923797005451918914956552746059411735835183886530801771139085996530682685828687939178142407244864202051977186861201666511967051821515694732329714169163259079860674345288100162769177598702936222718854535487372613516359541822631403690737480128603641972128025289696531242716551398428921208046089985300265682528459273428721678315154322234963913630856849535548066993257644941385894239568313200975983425267120818486346742063418777859833615117994314695866269815400972698271191805880073560110676977244692254517661386498263986491984874245526334462346395163930047453820720539550399559990384397087868251731826899867672805890946611374420433494932121938388568556583218001737866488484210229147397012010002316085906301040574982444308932044027543191195228969536415211703258070575078679609393415851247609253368009295875266190459026596766745694834463118650043553054548288104030716089805958579558911420197474119835467404164066795241193476262421800374691852114827779501514436129832416493844339634696138225768002454044017426534305698184278945271357235298915128805881720603153332585526845849415403216006652321186988589506912565732072417306051763338281659083467774377280538482378287480345690758814709742414102052813699636935129292697171742826192673744101452428476664876455247000317533822990485723475694735142942785340364064985167109833775737885730385377624518569753689132433014878847470661862293930874709551782975215511608739178418817240281525594016456434081765210480036555848680464928485765340970413292058306821138322767860420620627489298992946511675771982377491293461077063490422119780950509425980505729555902247460129842543649602526960227391444587356052586963575412251713721727567868726135035168886244529412240348904541562843541573278370196859037682564910281714548176067819346154621473552279713377460230402068522174355334527459842074888513530774568123543677753337738434669713748358411940236774747728853696457700981118841513730952228737886307586893827456084586460231523062203769779798596294566079278594371732173038517864657922258042364502303729988923714336118596866120159040355618446492609552167274391003480711968148057836939996126787685688879046759772177906553139970579048121387699236365952311957896329836752287307959428935973937815277596243423600373873555113927010472071075405386051262239351120678039775288160636547809177057585048224992492066328335217188268214701520628010110741289636885992636064030140037758139031189243982072651162267584564682634256126060414825032710235530790714195703494261775199739243658438471337551528808737585675029314833531592704253163455593885215030026141828407639717278382640148055508251781700525819501545291216254147193858851539267198199732498635872120758764218693186186029612521426431255763309309379541264412766983112091936762479288272174968156332498371367992722067183318331728841458359618517209071807500143933702462531272423012291560491561867996268493874234163020127421288357254515587875808764800373549465308533433353988322114828078170729738411425116106073225977726576034325784012069077888383876238132847276497316253687942278573050107819459648091773896543319989936593094076777740045664890612182099312922780981275628000692844285149218490295989484522636834253244919415305101675640514574492595778574247774219014115826657773651535237231547592115805521049779676379600390864935892723013667933992848551453075579227038702801548874498135279443587233689996269111583252813179422407362816045666607716760318401051059243959955119662707843949835431929385120926937921337380053009105898606062753200534319815553200931888472687962676876059054703745962265952949917468412304599651141539540887535311423055992961608896940886840528396556624671950084077792362852375177935452989092468073198197761692717627079442321141819113269209424609491918896751995746130185942360226735956937833456994164405186330125863724532724670420397574532430663680588802966734244787169532809918629062815231272949568954617185207661674757788130234637740725936046679385700961802029961807773635947188408240991564659971282929383067764619176077626129209994825571417333131415464487376399687425059904898987072645885786519671117941091632574713934547527027481813792199260531453358468336238502962751489924328884805222315019212494357422685593292746497672581834989662111741243423052542901201742209834158966951154014117077004949347898664490877192106633834077145176761724482385900711832932095084461509920624253167727320212159593699955385395876827918151949606550277563896840130918728260233325100820529407354276384653991589620345805654013653461348285050907009044352623055210253514328202755312853571303686681474057241324652553305984855354601763070480877568781626865370457097534786075403605935016215454862877322825827200697133852617591115707238331435869905635517464587595629497720368033098629545796990631827514123157193600668097916974653369252357730112615441938340524158941859268922784528792350497165266538856034427038299651102883329349248713598800237206186408305572261936652023758218026262340195619089437046113281238823605615160760822312700739628336675268168412689428891382408672073104734392021408407055814188491393361559889437204551530787964768633891445508894478754714562850224571559931640031111056016691024636497793206098219336664606968483732337751848193068747549013845690305280708372238092722827855087665325642061204498585925517503266894253251207054986411146982227819873306382103070061861133011113497441443016205552398135595776284793305577273989038299743831370806952466537849836256986126502114541760795080580819243771592948270095927289772692026425457927143462361408678837001245459529742113868929586628357840341571365612669299545069931911553045950810423745653579907930919178830657060019998083604596895674720914031776740203206396047534793296756521145301320404785890025388258389794445506521817347934939678431384786191200601720999911845018516667380044842370990497564338579715990596468805700617727854291232439130809505360384354689220678090191989620995706319918811438785184762491222168700265211060607372020180756083477896116333947492557753648771556408373627847261682651126437944820262173517918155588579068153599684566481013190672200431690336873631657186016096499228961235215535281667552550079810169229582054150694537111077067574450686506881420760896347907841703962873261773188020898293549295165612098127317542946137446016112074537886221921951407925421661885961005416012410556109341376461519063474839646402915064776152012437627467569693292675702211094238606795917750666667384421934766258411026975595922085615636858545591089081208275138857674773982261639786100046195518807829532590079878153402294767932273273463951427266345821129785412067738140429063231197390662104814473850729355062270309219881995046537891081317304579431994532178344453299211847679996698497192374925982296785481486553214993314915257864588421686586678711963891745380495652376250575840848685577488098227755624283653867486259123056419899337911052548076395810393708600575915541663582255663900962413059046028278068795618348746052726031623318013616403960093073935102177684508450465995285842920284605560698290901636954264628449730694236607813916053368660377518688318322479047834766933083756329922398788149666123551658965741353386029041417233319009571554255314980242611297334028232473797908167803505581884004985093751886974392839074248133596023222667545791141788544697258299944960578897118234301460333080899083460323747182076273710188995332346190416856512290885256200657384498382421144482191114952354142799915478196696304952040966891897966079185604378668826942630297244113047224808220571536180903553870486775533765500519487372420004144934760843040843377509210715708724426685250384802419039215130442706841289784843044735995676376295048302062548455520477684007456952738552367822807191334783868275535244849672439762052567318766044133573651323636893411078315440701577154012760887439620171214156758532297778658260675811596552353324492053200213201915659508490034720310742404525340603412266260586029119686819208901840746633317225203140086574247931114561098181424604336343683582665632425716456153693145659588109064518990659808440496610356681141189996981626925653413267648702854402030935136861314289525507539732363228141917624770434245670572422611174370131706752133014957371554806577623783016923432245101897723460622371322108565239545893280065869311374673212895573391926494957599594328510783945425813963226528410390496691172101618375238593217426188514935167182642057828978042992205553105816209579813009473331575145673434515987636674521321719205818430385365794149699302627607239204744536042492492498736177122684615673381903126728550435601833267950415884504396569368424295538114431854909514935364564264968015086581449722660442063017943242709104357831697228599100558348252036854374103504525365320393139520625406294069255203559655497208258058167037098916479276976148430303187371918822522742818902036549720663661723953092910633018999098274664092375220144530305848168774853191338799238125168195678993070361498495736762565024473709344877850989781648466115740106538740837227417677516747324656395356458029135120693056757750472234981127964721815705222444894857760043120930578234499044509346020652828931716622476935523036347252186656582013998852585242113022850759770807769116384818965501639617731138328802862718747832017553791898106129351244964370937644024832710285847366932234898086591687421303464228931986141319459825464171871805842379520399012341675507047771025567100066869906231945288059502597082633878562975495273649953385394087482159356722679104731999105701926256389789400508414706033353324436758279690442774927921620724586262869361504607822658256228821191874950848083000998625875453252996507483369312360242110563436676268932578628855392627757144685858435406245041014066932689244760605114352378910570903839273830030983818219059152055052543257441643207807847433894186739262917783450841948802665636777553597268624769219425174933099362586321669860734131607933523630020877075296132049738354195764568900589171698846696066744138805803927736509260141673751720817632491093603934200742509909393575107906978696621216594222437506380262657443146146582141624423027972538618753861141606282407137752333252020683577137933939544726068168863743274868301645199955427033745723395249539934786760558577025600073932685781948059258830835179567748842467797825440282897670347272953542307102582561449241548927637114237375152678121704379792860129550283901274887418567193893234402229222174430360393729196931035951896070808881508275512623168658491372771886355837110305623167073050371364581255625765457710031897114746506501676232109367789395776439590141271294901037468204733639039233460304153699664402927352087793616656955047281803442605595390922421070576523983540859548249644842430571791767730502262971890553978955391029792736794426486585516125061591803964290465468260360123825704565456652458471835441885637959385032459491515392804173665438144099844112055328992894409161242870259833177313361657795079789917905077385897370669904145068970909226980742392238207859640504549817567005426577020533051841997900057838060920771960725566655278410947027733285512840314322757354755068192261834845486792824441165756665788210279330074848248127739733759974782283639704288551205818920549669997422861029490452796164436060655079607600377607303535897250146164916571345322977044628659565998484626527976156503831048019612453596490872518376184988680245230181900272138112393206465195154493552514214079387412803434269194178534051508624891129115642991044497774576940992821128381006465673950491102031231041691943005117409884451519258743400623645135826519180931800086696228843847537507023431544190825062390395198322954957126562230455796137171286681679794236885260459497008992817536469008268829057584439367724917687606266416070119108425786604138068852453827618645948775077149694070120672758427288519744360491890338355145248795495821862302643599656685661908102330892981299017720132349706098419587683955675540512221990968782341729432898014278782489593701162552235356764742295583137928156622659914620578286171360335721569400453301215805402498624474217887678124082772334510896423583400680191582962979492664082463237464009539054773753328636181273031647457301316146614384696757408953997802469558263266617874875484017878890348691037701725216579938300056825922078611259868713807415178360728340113527127511607656523752223043587762295552283310365379726233031717271549872300678759698664815900053421045498749259170944856458394009436144769800984492306019281913079356620160143881718169676311974841780633705382751598916624155282091154246152752448429496903760273127117554549131386045057428947225688778011986869558891452982395255551300164924757649663165652526063805599397181676776777293630477613479477135301813711076087016463308641072931380103595357326333425748950372875234770577893265536056028435501488401252762707140952621901662764092992817137226597268784740381101291592797543635223289177472044860426082466144142547346781983624027422757868830905927260096044973125275814469026742411766142796258482489254906811082207256723254025134984288364121745570476451858185237163395096476265148345129867184187085215925191543627090934581582135695895193211768057660315348605814919031120234106507245967920234968078211088262077234678848959104962585028263463502666139873560815411534432110799114911112783280126144108869942557730202780483220369248798152120319546409959652265820591384734395949829249437656337392317059918641727372589837661444424380973493914522070151611255215630317821977095936393624240571526052931034329004736036214733298623257612372311360025944595089051381265417166907659826498335800635591869332042414138721873578983535192536324509145980336537445492648542383249647920469332365826983471045480407685833765218487449811367621437739579442169843327774848990545922345522692031483778938828206268699224786346287525250535431283642324291040252975581379234865333178440040540560941018361344528951972189016086684044718782539533685192500838368261349839469252745724429102863549768683236558614995039249069279546891566053427957622938163405093866507220740695248832216498568718736828759751632468145553942300135082177173505442628331362003851258571627045546369871335590250881531790094513032634128396284502829117805361036758919573032931417895762481578763350470624407641365970845855856907171579170489979044366131941687739994470824831102873798665160566723829059393669901057451309810917414213639780421310530206622946840417300775563221732568792717273120256925911263920526354353235375319296911571502812068977660879360264571665193727262959761296461200531591181206641696097019594535512162543125473884472313140173627096504870840028264609292145826994852510456861342462422114588933576478716050377407959779852411509736496767164632038506631537622870260454674868677716980357839888988138322762293354153674073489138809980687436078593200269579311316279361397146030157012682494240927171480494817089417742547889108556670275696532047387347430513686445962881737964016976819014596624199059927531604319879765799185711197342083049814688790002436399984381395804195542171244001001843005833928789330154772341092283309369653270267230443162134100228847501254069892164464410030525450301845981279406248705446151542061586370072773624655354567019665039926058159434531878029775617184188023116399026164719839975256738589780806098317826567671974086570481460256892412445365553821508370368247497896046699421638416520780709789557423910409058155765349662621009147779376263409553828705900882755900019103998102073087618305389702698698988006609136766009930509972477759370577528049598794843672844779967797808225328732737093272196098287748860799773223729685489013382576487262373895667365998601466529784809359398386435822949228055980446866753341365484076699808186643558868000639592336310462793445543652657621258044255486901948153553709623701394631767567178990407471892785312526870671480659829252371317305031232631323205517881240680391654845758683381867639727762136104663111956557321825971555089412301509654159036350952374962516596151653118649609615213059832328305985808259793478617924023810773638486620768380532285004271720822244605497930238827349005818499691661307892488726600823589182245409899983865761198046297581513219017864323847305640409768774866742792710049084082521748227292820395659583593279218493670943325559127464869403171850291592738513631334124130349451467724126725800688604832474305987537824917517418051089535977824842755164275150549050586689579723182708187311659826544244157876296661755907753000282612063434462085917379027439783761777143267021386861437982808479386982647932602805358115075058839771944060991357557602557385480167968907471171687271467930403958739508406410045718847181934850494666423966941605930121809229287235357827748359661354589587889415514469305526052829094910833916186917218647338887410284860648889744506434033053204403149628735464478654442955691076378685708890953031812563094827839180198659774790015618335841269104386423487848487016864203925417748265741084944735628822782502485080347389589619044819141927899514403842012780187952677877321010950845401108914313190405351588454574194377669257457729775965790542481728829148740901090859173495046210075696428471809251588090712926932971060137859230131796166596458459039888740680233821117342179205828606231696403368209108932610407668180560522363400151153580029379726998405776088918815120187722601754940795998470591737119120115926796110684652975366682514402677273652603651448720201489797575459165483365233402429111400436048498183060976024120513474496752216861465162012309101102547591940685490968060320930678297133764826303154515096307716610767276949640408912875922719673091512811342650594797932188064952232522841295599815931488005680128554572947418977060614245276550137778672761515294594104584560303573774969157212450191598398935360989665748106163649603654796043217071276497818371661318465251803773831503453948607204163489676160409111986349545111850296664188903507268489496636993395540023174275652211249767754742479738090304745913661526150176926953778718852341942107639867789641093001747846329689541574670313106040881622781164342944368392515250296767250062945518642364306687612959340472996278183873038516497901520084265781977293826756040565839420419466782373408100429991895486772930483115646693995170063699949356306091680626932699894943902778026523963193409662949372258557336489887024464735631033015369147295220893752032814011020991736805668174180459376433948569531136487357741204084732254310223223748799641781521181999994200813614056642065332905862706447057510450753525009934080470286851754281166349746243410403855629403843743723575591898277836891577933257211627361081528736826701998305875495205465324528630200751146415961917584515865472193411954077248194066933252069798284649779466664007958613446502340192003743490228439915205746963300741172299199330506046170705863642872287367192285112687581693016431100531996715317430373616789970909662940031608585393318513575917988470191955227432658045944041537684103194734116512891749247829025667885607746095325431870278991503994676456394726638546374006728194582906987595855342386287069793071468361551459269572030667957067390956806638103350910719123050481894593513290814287067914673232373669292758562465953199894922561521040148949218762805512104828261533215985675010617971697670694835302852838079269089349805156087674908030671917994213725593663944324551897719702950273091713750789477527184620261554032412283537990596514147230421431360320092237226761045367402324580470612816741943870028342936094059085088370908262077325128669414896912810544428436380712264933985046386708890779654920342874371101908451722951326658526020388046499139980435562399177678096303375056610043773584343799771609907074325376479380608364565512385796447936641139186050987116272274144370450990478118669216886975456995132914417062407519981402745620972249692996487304729094018834112545219416153016298915005435459975684313075388304358605919913444072885535684416912361767864041363483249560906743100328389840677034244959430934264918833775644410153745342539352383504814192806531282215917650318200522165516536384481898982183231538749896515986611646768751841494228685912523335635204855005586580163004418023033608633624915954019977699143167228156025891926369092984091652181617584884385682406859433852214091509362455881313959573654806165940283417260474753482564301496321966911875676484312644327317860243873650075807176318018134251470305609576903400196761945385774293153639682457510345210026004787451511611426274041833416497422155524841219190968668774238956026173439270145625186193671942309257789441461103869319089562589123222334481020011946940249027264322016871706242714786515286087974014312903567597624147050493133248120325726341790023535500861735991430607718385254432915596530728508046843888586893262399960242673870162494071771216867521053845180613630863250285152747437772645917207573485793871570077051135250427444619777315934452631188426656298747322980460205771845357568566654155789955155214042624619867897993712138210616000475855646062905265037509616957468087751843787264524818543292843883609464171884274353616196873796874839876699609152980341946788562783139046650645534036923755562352749132225904412156337934859546902035014835424837829150996055732353522739483737576518234069440829802979475127826550260533616493777169242188507461096393297653535064453599037272078386159583546247667896408903187411576760281707619881965001101361001270630441026855711317085164663577493515045724939447434637801605101987458422262270777532959088361769815601784795753504918559087548345415859324340972193637109834953513599521586245696493888769779322542965181532133492489248095858588255413645716478310164306437892090486726485432419881072126062722947122079206411368383076183109791524993176013728711135588601649748569069794225432430991099121849165558359964199954734951788437984577287198586378716053250382237104171333437219481377075000776447004172165138278337429451019498431910499943704230058515105652081377136575544689865259840586841888633579988304213275165876068279870167590372662717551008161015191485789410026449418483067570431961272820014611180863789342830114352694234337718660096252973357229647742386687874115601821268078939810588149520862527931615765244518191560813463075617192521587450498225567726000138425732532670807337805822791817174451077620834311279549078281203190732143656123304845137543705379829374142473857357380214483038016815115452771039996165362856205012976461604758772258970647157053572742317823671226758096307106550436118486049019717905661680083719405464796805169144824805293721894680105493150628539218986361658153613640054604260725158068776752400023050927278169264013534913736328318120177794305130128316522985745690790843881205583879682740268130629786345662912285687484683170610339094839901362198440494982485135176589240725320426345739974760120824369401989367166431032160692754970990584711821945449057241178970432860212259663038146797017344922767997947363520462231755785693098505472495971749396851657475336082531197062459910038659404362250063583623447297063165615088582067976221767651215488982100540326300555431752327645577073388133370845053654531761926391475439421742852611924109921060790146444828004424642543687589930706235107492864165309936247643662023099041732200244920793767977375520921135440846049514472364523003682136125737259108036196273959773146244208844644328551161734341347903577643100867089688779777506204844840023725003581657652346208494656321245446083317357674840292770024265486553514104480279958613962807444300202295221068039937668688358397997970407896742942707668175973956424267921442773833282422470869168909578470447641286451564191176105708472956361146194957984793555363629956624918985032356103724262484374176540891969356903576716341710833730817100276661142778293912720127612863577761599340434347543007077235002026782197330624147744644535789494925903029622826885002669870651938271574001901323417251933781224244953292223338121913096697721906214860781254394704145502003634204842776259548016255088566683328668133529428414702517600810751678514895423122356010692604742234846791985423044816884477703134207874457022171372030944335837881722932585155700809661189588160839524452503164422373998048934519897228315461127112666744191805093967182207471733714157829378530230204050908689259347542698820359279292104513540036311273303137877051223470271845795346828748913896319311788904881499525060122756071747217406583298421075389108227081609650366697172250570250811818720546462957423214147105325331463083562353107601340574443375631577830679450969415847184302626235359939302645474149919893635652388037404487036608918767362440862842141471800046061574411974210766592829227860481591335011291632657867060724952286013802091300272932666244652250390543981132893500688810878072529237278021710179194713769864968803951711853623771742198733911684582239146610585742021998220108798883322416942389654951018572039221620714896833471273450252614271609732495431856732260011629523289381770282299004031950876004116584016068024048609874742186440383764121898889588301477130876556732438233400418587632587766396338933162681948568825666095643337213793184556123993973612671413404715812102517559448268347178247789396420901216261396126338206301255145029800337677674035634698057776583997686352562688747439774919072770797178697115851081442005370719902047114720310881952000522682866811815696629005373788286909670370722936140845525153699040593035393227068382209060753712573890846183413311895251005842381054674306266910520741525394044364789396839834421553130589425435697375569732079959231500658211678983836243104938727944093243480427243857170249505529623730493729157249339492787443826245504120258385839581011105895682376072044324953205390328729679401683912513793610784255810521680405240768078012633254381638899550593967769902041300178721326374200609928237190404521642216031654688890637195685737598340134766730446414950920486095303143667725046132926292791551375124148370564513741125353191949250649473364190555548310034351455002365628883536115109965976660405647045649447519300154489047426682323737239721498048828324675387496006301287838283148126453523445007915049095337266652690420392234827919321529540091249133464719329631578062489718210686353592111873089245510961792359725568012077336865278585349070689820198561825117802207115113250813021421889370008051987526129652219720798670210739112513104752813099660878687793872633911726497697712559069229937219521981675281019222125394033309611378454730993095071421165318558974905032349517615480358818622876977395594374674409642791586281326621028519206209731510659717749848262875707756953247562361858661588963539190945960130069984661555343419023879901015111759528454612143965309836628343447635658420189531064114922473079275438066003068451049533674703646575250995230573025284831999773947212504731512117098370456493976436699835971926524598620941346821651555224125759083099082824961768990264078077039610396434393385543725648879673046233554428655571282137001224026841826756761039098042192526194965508884378879303245309856281855493466441270705754070751066005526157105558063896416509630404080504168814356809744111429742769543944174611290217195511287840693184734461178878226439013755764835459365031314039232345775637326498454509328733533706880672021519315445749550117323137893570088652105090959062248957976031084759757333719659599029118155581606766127397902838528730930075812312465783730042956409053633306057275305027405494650816233908546620713171465743823774677586869570578056154067474417604140996583604148715979046096825530377955158198934035455297895131943984692432449149738839156151253506941684028652033465729812513391289564402920855499926583152710119725748152922935389837995164037377950087815992567856436519145177427278716632055094132645865954334409753433863791392318706990655473896888611618517765992225224292356366915104440691046724597185276073865203298977170689977602960495771104079800055357229074533816972783339069838572473459952134815253709907489246140248753962656158843201615848382296283684334011641480492320699755453419054864431273521996316604511806404557988936618931758807110462304166344963964815902338809978124852356712316526162162180547043637093785361346410493346929556177951731930835150082721872085842638657400382222982086060217291722015437516353324924595893403746760660517643498290916312527274736262422964090973599197102318577865853936363952053774379786684426710393074283670031458698418345544524102382861462005337449254576264737888650544270611726949823353004501413730150071121464300669484488614199698218432254758081587653975571012391164042940724778055547697710127055145458733408023247377669081379611745383176791050739177897553519225167516760623479929666738032251419914486932736220738392405665884071734087896174703483058398111885415648761494859272308989396030689933429256486655679718112091163544430882154559255041036050263979759883376521687734355041980784849409937880062176393748523855888080890641661892324262337181801564253435315037605705489327643500806628197135620031234801890128383159944149977910924526854564951771336498727218905317297492445527353106343690391324120887627148535840970733655771792863055252229827634087386634074407782770641376049914335423169118061150222955739989219763728886990318401160348001041908079142785413991385878852093932311329233710893589459635103671620667735991819158416913217539063513305251407325680696505583730596465110527560536287764305721296054845757408928463279798515263957506662336922422623956284047518882710945267763921958019173505843845603848204053421215295838568229714125695512108982355134892814129394687790011672398280469546147584118346804255671353758958212976445621428881814116083988552407105844265536218076952214478436286085266933229040526186628764185237772159445331091314222031255615706207361676203841695526465116323269774494711643760432183935845038550712170675066559195377889862029187031498522836265269794307659133604589942183400477566666845182270252653388374894967196916076653153676214218536515938138480937811492454678034397153176378197934148944998040239237067119678502246529934541401037221877343744198080093604013647469000807677614461982836204923669387582506568249076787380987491125035719117782197828922565700534813208285248104764500030736749503131846912329089412215544553034271819603831334011282853227309366934003159477980691176511461427324899368044630065544939065672316901365142973876360782727613878915129316777736558312926652296628852686949330980501595439206468370012644618949695707439123099462483621660801289229704675363437064495611013349752504738426452874908775655397924610844754482306498057902654771868541537839583852387075370985584893175533178344595362580390305938307727137657714472066082439620257061450441179832191829198128366129020740367754345368839849633722862233453740850845867760209916248688839543198293659663176962048640021920044195880794946381730485051760878876855614134731239843377590363477886526843643522956834501518207412012163037378378698496310025658865303630893224087864110207348673774301807095559153829352826774098508937331814771780293774695263495583700996340441941954194300623372506352650843273700659903009578178403670647886853074600875037982802940240498757605938405680736774824415099021155157002080873340741513126320324189051275593426509323122250030639823740434290612809960347015717176030138610562056350970810940566571751193227002464942639989030934538658038091081640020037528379527811969151808968667002894016106124304915558002785094496201371201241304096904669088072785925461903901355291701036367598484326531501472660656099006260983269779295377991097469232536101771737917362077869667148454815833629328505892038637705644449463373263364814757241462945445660051965521072478502534856976550433960886903566469069325254719371740531016882881902459138138880109275737795562572377867196268766433144001564410166796412993048460164734524024818126812252008094616365883968961674652066428797874434371391064415787535839511025867113513754207059185844178388079967790236700010434346883056818327797599439761266613490326325180775003257609659934376730103617106520218854246478029555005455258227440022984947209065822911203714972952955614672564812531650134621328356897787107740552619515176563391715545097077195649103625280964707546442631810740035537363138062831411153208733635556209622281270901752692604997282910866844255423783071229284677871866551496685622237997301945472993538442441359881622737435770293509674827311521440490887056471294548989393737034439649720213309291025598906632023278546544684219842498174802559005766268693607240202802105084852768154957344849193463900152934502794253042107477864522687072083246379533741340829905040655214345695864512217133740849117051106622243882699479382597277667856495541669401855328610938071100564908803041045689285403357666482514494505483558015220423088264411846950025052365861701157581403229839305142574551769892538780515238042931892580946504475449061297013214369441786286686283950608699309357783285807135828869654014303681403674283707276216975600121896915291513366954191224181680079732554465641531519821670063673981220598844740646898579650966948148064774905830262288137749948738517912465217584203994125205993872791320316583102968038304829702916261341657731573820289278532802132261161376059783387272158148562729247263209090492044403523799716997029666987937510616505925387241013452781543981730914398732506009600133445436024104291402518388496561653787536476096508987126323365681602763825446514242553850390638943914808139615042143145409654560698443549494705796984568440267020152443212374289530329852813876332515815150207006136273433579908627743070625757515426808012806928246576238356180933469533705493025594232662477702954814648005072667250287769769698158521656511998356304894494364997954581056627367880356441454240119047972187006690715498135709878662451108150135551435743413721461864725778730985671394658424511249075700832401311638656779619145926188201749331283060347104898754454627644885731228171258030814059338311840791744272890789016498794276006836687870175722444230238960693548919929204457445985881134921556363523885529330257100640156975723884641067942342557576428937010928644597463529801742898879675527338848127589771188597160067145764354973684719987098447907304839622252055081140902634071087336900480759189271714087985049632468638509707191166085339022860993352128679473155644867836896606734622860496416152944826665093382899710036617636625923297314304570923642899273957191471979967163792449394519386839399953547305376516929727613061444508010219479744431134753739276874542045258674398629971865650594879521401154525494678543177004548095185900132090749167108788029781098051115956224083569576716438179073287185519347109109417536425899363429132754849066011809911224150222877225976014408039283397910992021185028031289282808110457881361824878662117195625861764355913856058699024075071411139283440085449266759340303239990534456015973838095069209735637246702563179390291804615288737957542673921789214242635269864498251837967022875771283591532693820692187480774770819918481501276496456977026334676746141308519063057186055699169577851487627782776019792178484415544368961585952748098568098158235996103132453639882213520045450638277702862517059537522769455579288887953486933739620212986484841070391783757860542134889552436075755945721448547604537562862624391782133003183110415895060569268108306876809296389036624211725067586161943356764263381010473733996134922636639702497182386655484693224676088653898040190515420430620238044531548794287965302368863095960482252942156472827742821461057034483557422816495837498728117361743528416400765232297416204275170783631215873282563420911222912858386363216241692936151995792637276290861318228983798468995152014291928337551066024514033260230750257954324426384007889432153781652774413020396728598699978237560828784808913202841147243939940671473531360286083909075859839844082353175971677153165700979746103725004209816497169870216953280167914399419396314657092866804584312186517905247823571359265317090630303082815960320217763601012862901657479437049613574998378153280944382526082257129563901572586953365233343561951539927658360619472155142670528208309081999052703616085376623357754421966259582290967243247679678069896285325101920165179944060989553986810142502877691625105205806140172048916630979379184017000666782923736305204105756001904297747472024411929645378135398956394292307219891289852100510060829356195326008000763508373541870190490275130709905072084004018798802342716872050937621816855837785785642605558354346824758669931952625501079363912660476771636476076007687804127606691831445475063997053607502574807986977129451273589897404757631187147422267184741558847694701237429126289426823076529974141989797198473141192974554431653584044333252967263530463405732090460837085474518245955866843404234506994777168799101101819562331763956818027133531063709631959473460454275228371984924816793571750360737190546618870998642145880599237071607861869987090288259904160642243870216402076260001012113224415572544970212609251336413458656303886714898677623383151476813335148714074620373129687508411584181380534238595803249074545604726015371458174137652110710578991472521951411593055928502410923401925885036349732950158593270882717923960660274989613075361181916074255817956049725024463692347392377881674889382522550718726697457576399186381725212622207802254420389964768939221249629778581244722657826997786095555746720607367555483441184255182712449609104856627433171851939744089637313135743727307415135881631590343618166941538557820758144517879305663498252824906419120672274736680331558382820005068504639595266481094852017263220082389658712224178035001302237443754913282159324579487887921058452260569723936660598369245306887433761330472570307523913998159650376292997050899574749926178439939093377948852606504911944468433467146147959825036891247448029599456715102907330507545964612134627690045263176985892024900438743537349893074421795844644234755848212688258872786873027001549285165952989102397865565680048842970576361804935932222673821506960438670023997983082047345538062701335418241212833798368059133277729995992361626142912445210948127839877673388089296536709011350587280720830256509476866764859777518750775580835502661381309162560034550127800891658630154679165128449983015790148752564630070485945686195828413182311338878161006800381022095695104114696892320312840832336754916629300520788226782665127779048496440444033701658644259123792785271057841031301333578908540012792204674534398778727169270827735918556039053493127766220732050706376943462357467020541969839958179381974551386214440113725155545429399400975621091961538549813931750679510793750558602731166943018935458967183258774957364749148107300289185103477306965291285793171593150473256854573177444281999569851800375546492469281776213456356306720914988508337278956055987190280354663729062254713045500048237128877843324008054012044173578090536166835729269722480641125293035540065208213806551036560192451702831419981839201059040720618760753026087476185759636820849018039077678001237475870298101932424263507249214938652911455499473003538903884391773362132835698000268244238872950759928647193484185977988555115660194450635906112212721095044985974064534419534008394983484842456818797884508732297535427771222473678617201664327978027373629247476257822592700934898754435813567404116473224112924698391348461087112704808544950766160090576155601082885708083369783405492119547139707970324760273085929335699240551280646087144029365463793288455049670072362712410246594309199251773200607483716070231805237134992022639454505480156345787349702558788755715809398071396266352423136527829359065100231851523041903013735085254228413792746988365052464697915402918657130068959147211250182631520082635258070251176768347147497477265923562871440042784597447907095024401311939894419736616168747157730949053126338890422408399026797307310923177679761691322685825635058224910089523496259903973546928379860376871315430643416401241011824329869847473025617884140858787140895526467270134371016521672578352433867348102069487532065579198177596016261497117458626389721872073833562831969306214623533985975971229269201876553982157489457484338859693057312623532455226391683817989327180472430555385398417990460526930414479208813861710726593553926904238589523767477743602753563240371487962694273749450228432049142320937179639267533616637981900048923019552877555076930945878688213560860961061410651472519983912965498053347082988773670957537392205051202236701862218202220877228706927699348934903189639808529209802435447385275581560426018635065127397881233220355080440581639077239585198907477400351783048393971917735652982147870717092712012254672113696809574233165027715779381063264380174299323844089935248760694742602553507955528959366423077274240238275171844101046691179705713401232648551751017490998887117557942823045888978781012976807541772727277521278356994092117688716000861716159863444866578891754557202275539609279069901630306556700586702813152086373253723747934595655932441321140718578554241387125317891673653082287920576128263146348364243638845724799177739409050636961331124002715764568900361367539564893724384504961212387029940977306240583632219942354576343874079891809027702710439901035169779507839982354586422380599113221965850390113467584081300962263943771844479418576844888754013288021594595815358313933092670672888835196412832066248127287707828461772592147522069434923027534421317882411190854866398051543540885009864985332533357724355072314080065368040481049253781165316082377633537111340631553766400641343620486919741016684819557624050184133151618736922116657120420883330734642456113449600030169979788962483882580049739314766168109580377327285062725887184247817017837136582789083396306038183675892734313357668728251129858562314073726757611148597992976196860932238666394779533732364826347035659206561522120954851851787346733968207630751283793328311280519867902179165386663068598631550365957961931142804683285314244275974246187769496885461395563435235488331247847423030568811702028848672129449267796684222343087840825564833167150047719052138048006624767084638024197063170003732551278788860108268079662238759148866466686708058247924003282357739335014233814524838815473423714082544598712793263151109830625833770735715743648597363629744352676204094654093195213009533935259036188023155937442796202580391043187467077489547470582224326824538845045627084395707919944692994992581058148708949214231341730374414824467235165453186237123673377820478864393259470124533265040078181551330801404382990694197749548755321052785751222415908443567853144489463139404665067990649338331622875900061888954510871784222616878314762048645176267163434830148327327682759034730393670576986851071083080436185213769764220496372145746858862068105093776867560297968160481329719706008206358938380873037102752408140230935899985102160150457090798780722804473858047182801081671571058744694458174149615942780129129938049267979582008100240808822120180592009136303907966282097319394691418194897996474891148852678869255036444103314082863659822223849962442132366760830067049418416300808854013537080351790511112184844657230341281940097195810121842651167351449938050926857386594691851135183431360282533454130721653891041704956812325480230841295470947134138087575029676386887371830133524202540277475214667889373334309587378603152935008962157727820105596567552009179187615774738405080310611930666208360582699945361080607120364196268053856413160563437847591173927344174500285577316058807404415440994939829160705517875281256472850744188217945997216411464491181557855801924593457947722214710821453791724272602404928004403575612566880091747657410919183412030146784871522253578740221055659669993031967172606106528408633564786942610614392587329548508333860401545222644281881928814372477318675011328087369555558207145373203878829421061368267652664095873967236447820113798048033320202899201762251049378014338865833728564214172688805106257695732679912874992136792366752333604982827179093814896034358707775218620928405372301464499901430100007841683598675412298008069697256242968477770622760032380235153916710899865204201982199412859665850116638730625568176800743371737191998724483562520690733652788703320324751494797200855313653042382755902199918629681946848958442685556935793031799067243742178144412170163791057877684434985387641312987199255280610671598415870874507478723632615786678369536800126801072979495266563842602371712841215795409089292946766949863673013182454051439070579458770715377337507562616012289701521596831056263268009879222488296226190200347103807444301073930290321149046190743974553776447744678941450327119602274406213000315493351069432977515955283287913312089066650405143501263240586679396605804744892238719115020951115958986145242303473368802017300697070975701069134838979049051679425454929776798050627921963397906224734734214466677309463014178491248578658435137860915560824947797445787240210599128814415485314369860253831960180989011310624605542467413565537017084884597447682247711048750731024782177245875957599390124619985730215539445060065332044776689682114136777509125732419275898913918127617217247149115032906723201280003719393027087809445268645362772922957925354770891479357373569522007763743548134184582994893997637108544890111473889090267220490772281080830756781635635744986636354880547600643664450319337492970387049372662865767538521929493915863557173233165116710505608367434919275845029818456901228319200986613791661298020054627532955701008402604896010315786429221672015964801672922112548624956980414978631630689119764716070403590204739541852405978908089306218713035315106293984199586190082504057458690597048425111774651590042556791456947166116374541906120964544044518336929051185623262039729926375864131619160980949784161475725428297789915171987891061111359788238250654991324856501878448700522701983452110066666869237675829042533407272507599745914653471960466598180295087048656267638432586766494870004168503766002198072524877728847982180636549866873852490263869643769327444565195670049841739781019222321693823289870912810192444272033890814582585734946884296006341359073558088576709391382648766273805415160625014469765679648955404721451326248262952273799461662390905197970962802608963673589918323947002861580489304767303070480555574888673824231312279527701024755481194239694662462861875162828832751364317993160836374904250769231639665542210427363392273363520079143961919107143937778143403725641775733067119208656803311730638766359194603358504514674492481150109123405702352102669819395855395875213994698400227147221966924413177011503562121693944916870770166625588110206902323463620735007372674765998037069394535245134125061303397635626291758980031340806308298008102129975560320436336144265624620224569962497320858424627673488771365136469915981729878671196779754428708775052909805120100069715036458035618836154307134260332922996826444223694150265489342826771495360429352574334126762861753446844564320639777182431790999646023089772412889494461389116106794684436529546094127643572823488678208650292432228269149811281619065569084782272005919160704376202080269885095518914858660925764190153830975739089916736643518055664269181994989197602287536437169461601625130900876777317628732677147774584796628201355582607479860755591283266736353854479744240289198748932692446488760801485248040124931460138321594221511163104796007543397742202420441531918644573133307529358426211246112988057130880129039056408529570890226655522026441926751251323051679770406616134198499358409565704877916679728046221404641280814974183751553969937408369467172650968687980106139860608976267855192158360003385983018202225132866745403905707801358011616698965947782701105934938976648365652651817033130763177778234561799995027914194528228151907332417282867007307053312274201900641156966367765781205665464505020592693303972126107261199018929381542114287680687736378368604332543696474384411820366584886062190694527868988867180182628813193825524940455086713658694965923184275599994792286340183664061483452551758376201124947675014960409320019172892830588081777769981472167653314399772276902807740376074777854715054511723264633735167873847188460285038529480693266931453888292266149005655812643865407909914528644179339921711566936921402750991130813613018929093520531589789168836113159212777049759601653769966053832745785606031722675219618423357081882852012836234517734017284769365087013821095076647191813848637287944179093507473399437452844124949254781649390081665734399569257666043542377325612198590542000741937135428315523903968434507553784548963793518977654450770380893313797084943315600111530519010132306973188740794019732529727244257870469249725570379940782481751376854968817401509450926742788404237920933696817342309592428715669563674853375114337727029256482039156676279336063892072843089890200559092408769868633235880517229804341053203813156681875085447833097732798785381544296147813834956849596611990434989262810230379002589812365235870609981531134648622873284902008648492958657906915450255872898065074062128781122135608632399202823344080412396107003945888086217082662084196548262829387316327061833416920096974870179613203925914380428852462681493224871100296582462821651844576311224849543766052130597405529155619603948732690864981221926464340835623813562676717722202620053115133792183415507533366516531180375009434702119408545117102492377779551820291947837948713261134931799404450500658951334891261409423818873910493704333217833636460926558969442184299845335064416952601781920499331615518536898177087595933947254220993076386728384021239802309054713331003518137995622649108792993178864505434443581198074198265265670621777744900449429091626416307675756867590985704286029807397049729722069988345595918736802895033533694623340257071880773922378517384970652594504978615371856622892916769104613315417004318112469990759224021498311564933234507102546081627769951404325514125216320116962240128094954655433925063747479763528942715752240194028247071529722244400525389441999137290381473248196494715963748588335730847442651435143116744422538915398989375464467003265160726050499252953441164624782343085318412498188736938395977099122378969537705920993989797597143324219036431477329065203146830509196671507665151095288257603808612588475140680066172769061987994168428805181512535932989891859338707082285791327470416239649434737561253043100965595209234649650003502024197613191552984165422604970363865413210889655333024901568697941470400824678075197580602223039449618419459616603419879050262734148849553980865398316471473253656807679205727065221901718433721187051773441212841764319726761685504105922859490023885273810508691650573857847215332325938216882297476389808851988518567443260544656135792067197772274427545717555585066580304914983345759214596130191693093628522896908143783143390610095230842302806350282648369512218184478076163404797664979918033463972121469019026178063243802909525635858595347480082701254125392861111914329565210534874820386367618021531172604555541430976664715300196841834047647405721384576684132141099746705735027159317312916334282668527729302637077586538822488117585175713139053186400480646599504763907131185382462359073018053415044325389653949832062895721586333549377108643654676518385456502754549715812033970660109606723924761997675031947702678317317308742331210864918782986097630941853683575058951118550226439390420974636782845075603009736527946445307246399382187221551067295760203789042260253911127100266218206277930188690736072445600371458017143783956951113428526706982800935896344143687722732877740962162770389413541716146122186018170126450753454963173880162467435744783295030027062436875226149970353334811498215252624838802966383928856399239242392216383140671948769892899865996177468872822165056479313312844259179061726049890761150734652888596267256275535772970014732622204820580961415762727006316068376243996742145738584800455852276270742142269383949584750021478976068335255208496023270089619616441967885931471645393837828481902943841371278391079349546325115983212159569570802883633799897235561874127359792499808454957521617573899260195549685892800724253824082818858227886067003572614684505863570185677064375602495730437611083895732242349773703062782619274018744621831928673378085651649439524980209861193267046763907020414545759366045091470830741815526505185060117593213624125612930017581351262187880137501845566837500530369289287851603442600958440941131177572366497980747074207265856750879439727899430257169706052496265857596414423914539411050935331590889054721853199239911398065881019541351344684906670294313615205877985228628977875739066022192390361398987875524897184515580614039320680558405931788978391409074716804055202855698546921147210311837812251166970759392855643712905120130626765082777413570079659138745700882041594345301188766939012906551786333936916175663736297287437228921026369860422452961911047118033681811049119895942265634993196294312650915527407386132277877378478496148747505974776584643628104788143152544226170834712811962476428604310571005958973887347584109162610023931057269020639545865976148127873229291638083174277233197781874988712918018495220297612228905673432611369274369029366962337704870786666668861284680618925371987912316740929990945737646896626619634531490796600560069369401485214329976451487289852130172567886149224828553934953102868405279754144005098835742976148923599775637033920260760651663784295436157807587232643927674538762909844963253160429037903180085856320171910892227210949174037825907984598175048142662644755774120268887018356635614888616405662917658692457684437639123937793783030462177683308754035661072976245336493229040878764139859381508820360149599595113054829533809149136365767740787631173774731182188459157265602536019892682681229104487333260348662975592403713406103928840411496949576166736171630731659905699650969620156309132038509278402011840714437651271326422681529434340454648083148295418683987484448715326229974556168935752925651066693281200152337198857074288063847665843270485871908208649401081280834116426826879693457125643438727255624878382516382541712366721343728034211296213368408077377599836319113237268399512104875634656658496440914853900358439482654773963669792380741577381896237470084981071848158167869087371920651597851396480842486299714381848967328099065769954503684002024890347014945270600111594583481703884812741421649861174253488000904221925496581250176065049720990500785901051039145615372376472225649463187528071607445000790770393287928034756239245729183368619623079083559579791290038475639913572537361784449719928384091821224527032193250534752445888485531385035626343136144921412245900546350168455261068231383735703030698474704045487011048391439197259972289586098964516304457038703558796144256381396818665401030574963273456695876842752644576208892303012220077488772082247558227990665181224829494752891410573505968259913918649092890525938769902350658448617880348178174627169819780217086268792700155000060921852135063710900886398411488724456847009206155995778353830052956262407291662531674821197471957845391862036423373233360783099865150243332270746430272795570023508101477271869394243468725612186273973378335393185147403228334886866368421425698683946405049009037117023223513694840147123972506440552536004997746012703328490745950659550572623567903532276790466688078149002022130280237467845347101392441927377828007376937494649743572315678998453691329546014701907987520029946737188243639492348060576367070797635854017863683486382735522868712258478688613497134840401536238676759199019207205834417433080365095908222795802400865170394332903170363044415682605539789241886374096290378888425356382262247083865929070119786707847605489629866231465770565999811358818189639998376130287762365765843634189199672103851137655976454955014772589747169688066608260063662943613259212018741635896250186281075760114506783819632926958338413818942873286153572620509417626045126252074226538643713492278248788546390118683346497916837382456232359046695171800921189932156053825918443998648435181572043545206123498707751269158395747195562543209825839248186604295868802521090306498210758279051171494924749392020703649496066340929716924884374660683452969940404323855686553099653191448621053436461891370849913587858428592697735604593326059274188872743376265123982160313532392084729375178581829932223912093744468316771181872106515053415470728918268846286218544658455229055424619564754008116383235794630502653262323110402840085531110991010174442313644477930596813661904060038178876936024303462259250501451450354203755177593779431270870081706905925399193354836202686381069656852876540507321622337067119243044715285853687794562046891885296042296028958946541432728896032122986351955665243538785397748980139762248650048686398289136875675626774775347808603528017808653975498580885550278773686249640766088462191168711064314484500495588786780198801987138090772203038344352315066708637864927273305680189239812280162141043510948827803473220120979722827228903300750695535679282557374927208475451795015541456538705860715535814415995435964675420964972992588529610612800978115891605588998913044641320693507227472530225795112307967527045950029882475754533368162119014087404863073614147379794505327508325268177064714873794596480041409448595563380042232595894085339152997288811070062023257571179851270309249633770808348700930609266193786087844254263729240322778765344158157385769122051714308767221344585197814581328486805463703913456826861290119281092688891862335865267677233995423941163404503845645277129882603135525576855234151640848690974174158759847974647936988492941734607563217945664063341818110666601801877002823020713885419688400044447345503345322456772528241169806666509443932059182275957016835346617907850262082160608301908387791240005256108605985280772501397334369578178886139303252357639197970989950029787380803229248335672985156522014097542933605971891367246922640286791654549633766213286222797406249606811071126750538890763144902112419027832388692599071254464322645851840103356332129968390812077234312485909806296568647154813289993026904682774514298981136949114956561031941001781699964768030393555781426584081618118077502889413959721019420428912185033978305076060294541722818058890457322373429933654843953469302006469085199296030852184052988016268946514491542048882123684575631617214487897798894578263418564545169441559748925731321677517980685590601860561941378331872712559687051000727922178117377375118121778887195003050480527839489510759571406212902710352752719978988348361932323224554997091611905641660612304080995547717751976035760410857960221208163547780123168964091726164518262665411532480265086852833157399521144922084147066886643987071602689249927186995664100217339534569411844224383684452622491851778854156680167449324476805963119161970058354731271915821585634830693578868794928242554549076042150885209124223042730840167187272714128621550246010206807027081152295118168154907855061183870181078452650563792952095120272926049155058477206477164367959930954819404069229054324771849120097167292892132637614157957981439492280073681792608508116138499482863215170008954118387359157292160739377983865606074901777390913413615028461377786228038966752716249128625681114178972875292554597874094901183837959777806796078583682959749652424611360565117768929824968162176481615542597636995867886735496770123375102345292025070307393902386637405870278863519088257170134342905442876481443032205599502884393699980856538535786135109951867912591685531477293355070529774539857290682041507796474435922822053926172927721210889771678107587403330596052063974274766469856798612342055958953814299150022929148673796375372005019937312498173915594412708067155826232653632778841799809471069822530404168294117203521064669825332431391205369505925597190241992162299926173436984052899935455162625616395378259730110653573458464359702413933377111566246383833863166494964509221268225122346931682362544971272786959579738201502595294141094147544723663697891310971929295989677934518080941544062684393715124829514660217835326713055395254261357303381379829700262863071480193764356378120911683937289877769865199380256939747106804016975220290074855497955558798550055261759182862741992106844817634191070059643209010581748404067917626275749913062425111651785340802868357572153405149043092211120614360569126025989317259488067646647920547638886890835279342647331682198033751049480621084538844368979135787081496062478160190297851060562470063568077899880981153856731938302448585136680667772315105085790635642280003983568501807977246008913431674805198475396830075412522160596210808166650905973556506191372165544619328922634307177010366997764207903658858765221672320652789820169855232600207583090411628488005551205703356243449642180346896437416110482964372784803141029155230543023323088187890795889156696690658598058422577623770310617931782501592316771474342563505926297402736377792958523690753809881337549650275952558749210797941173769164953836032237435609188080016108438735040005638867177882387008380096092505065490497222810348490799685053655366302210612883160085088686693483351387575454326269456621059533189398918232702041770979788808417204350662568807171774360386628263488079362280319123306522544742246179332084818009284006424700623670429921236783929435357223672244901409504866928195702462715518983996146276479335376500830963516227148204958763625130931011594390731207258755318076679413860094325489086185063941554885833519700053490414927385056296957179664946184637640242949710050788560551721704877249229174840091255800285569480140913061039606438377089065892541127649307874028480276066824330920855336080728259409764962055777202174380532451316568709059910929193983159938350503400091121812982768251240401275911047621559748686053835479267566658536713269857286404466972375755346787905910910004233797810151596575235450941386914874520147030576607078196113233537082590927820803570832368442086803102785270805033327484526671080271740616935748865314538870221623653627183492479346282073908619251846077633871207266660439962769144685210526403809917248395403900218429552734793110616442762274414074186127928638148151963781309239087124064441685239096854762886490041351106871435956468961691232693148705524877575461844745454925901665257901483161204629468620183879747028644579978847194484685385236189334285753142523176024029127473921649296313178465893111642350804834889265886069887627694418092080548379998654865778084724830681510113942953200958087238236781600211708805510222519441014489215560923631337798766094529316225376575150862823184564659864492893934889964725343163464066355545698217877212923449693208685116075686791459455485781315556684900970076820083646126916929638315473990445680190589949524662281762432975460459043517328223192869657412962763106730323594772773760596047285634266925036457400077341496764262470957864088699947583932998282948890019275152268624528040296961369697959831477483795913554649141456429167778692407195432265949614678040168847422219088370076599046332756928629564937752564870729671689928288877203536789028954464915027114879888352812983809235410707301742982743907194585083735287120694500585372686549827711577745732257950740725852245315344327423635394687704207525266540391122833809182598457245624775350817208680492573380440895960660987150129575376302548877074794819945289335895207827581834913353993279059475554085798538873914675898922635836892276321633508689370059679639201274517041993038329727750459421002567439471392697979442595863282744363910285573394971841361337692279630611734363439816954404869269407619391612853526372373130199846997232844838940780509057173949889187083603257393675989136211435945452322781305106910047638182462885307562973688942170531809033851514382327876608545066293667927397604040933725853214071048039561961322236831262642421110422361503300138158366135591930670753690268453554723733008841029374154755523649201812482840615045734132224849920038296256289291210086386158122238854522096160140030276720317845488084988221519937735585722916855662076509464780633371641847039624032372128391404592350538091742187779516662843458119936421243241776905239749826616875393207202174867369694269371858791175678933429842923990808019174019903884766527631882155612963713735522673588502105074329832304638702099513709732654364077235428628639097743005064558691084981617504443046774261254722173837963894784379954615806026611316797654281435660967093163197296396440857144710837877955885870357578674239905190223834000728826591595893848861472926581011865016673082129224569516649997355808440106575650771632281377652466012959004176876966518339096397249423550118451747795292009917002564802069407851925184775586759665068512842699612676354367146376430476968057591019869849955541805531884685644166930208021426990056008461388370579704703434118534292950041539913072891668707966590194652072099111801453358324965848567877392471875761624776738194637815946975801426052248932757359116518776044805283304356454842353352433739279921137699874585061447195452665751278695063933333293157936430829090563770673661077256089924689109139482320444926194949425296128205727593056081573615231997593765524273569928283216180287325308246609495583307991319374925546449368865921042903005407726331184114334653686638499111149163143556857712268322248235104612550733134879703864036205227171516641969678291838355938956721827648093155851058545606679838969609909762453822153343314775992156780504071061228338571030395477230195905500881002978510809129512860809151135885971846402298736506585569497719506678566486983451792280615288594145679639617484984592874773031822316485859308142025148777453910841708957056859663430716595053513799280156315411173520555906496148459134056745396307320075802502798422917750750778934938270397270190607476983670759913748209625500266887472294696470964868889384972486650983907842514832179855382841935480689268219664777664447428228390855116474788205907861427314409330342829195353727067367680647668635635052112566626873612120639754913780370585280694152654153968480640207630762022249197639895853250065715010228818121105180864514289167416150599120530147098236182270720392227638710326175951712131428080179045799126459822530806499102272476441317641904380645633180793365800989335842692528889555294255820962130130954799265024540708840748906535800893380316261083459155787141167194788408090662238544517159320308859117154059924036742637444195670144144759244073227267384173029590872319492669252304338121584279014980983646335976550672176863096215736472176549142559782974966492026924429427881064712978381058508501134976053655634141889356101339889573242826693343367643570875050827697521235552621906064988464902718200674204998342964825000850760401671783467831661865861526289792706487979924404302928678618039085031912973305035411979342218158248421700434277711354060478917386708151117777926179771977266467932223612983325892844985864217405123455832433492197058361085923802770157100897788395561769841292950947974979889053472239730425093981029994639321000032885106983471285433091494553735138739440752352616596874357282097984520864468184762382986431972637711370180295905431976247464698880528032611623664998036198407371402035910424074623269593178335197669172901258997999572723775939538283312381190497094477316375750389549885532677650218131225587231818450634098491818470931639389189638260336371994493092492323587447190055841725204407187581613221135886437532624515404208485111379303164276565164269321742955417898240852398664706525401797754243137853767186583763742377987316516911481112079723283369293805370228266347265647349062318849097999103771253980078886044963563927292728851406458044045890421774135242566054870225065613946408290717477663985792064125424659308536585590346389118673796189976338200904483460766194457422321489191031349992141348013459393996115111551997643053765993388002665515622247949046441026430237602196388264635160294497879640010124573159132452664723331041543504386563612078637433400871299528047167744845228683433043867499606643804440017341747575465182765612364678089985156056559908832366615453408110243699402106138428249423584787873406231224390789265376318901467612429591680030918388513117474806859690469271910389048679907474480691347751119037410080190724502966186798505570743520915929332391783470935044045534475469114036887023083128183582390376896794414369029247468203932348112143038784254636474963039331638283947638383235930274599502546692474693697609036267163487109916517605329633086025206187140482259510734294242354625916308687644830517448195257045401659017567755227019719416434632280945466583190409442908926339223685952038390118296439188651738415217319877451371556727465907351751531767143057571353162976370924886673222723133140796635546940524399533155311236756507725766894327921922973424339691731792601925883736720700889099873591714794378582683786970892374158528123148533199337883554220944262100915572558236218657414612229677297025347102960198873251154785945246418694772500562032204881332898418666873775982920028742194229701294546145498380229266675444310020679643118161243173648460544971050403005696282107824758837893831057793479872976795788636558956679311046052320686014102573479502558205568146347395450045067367251946034281895441516539592086524334035392492703545562250199692417968494429529237368801860649803217138342872892833865266892340316246623324329129316525967687112744067062446974762525565102089504761210228530106769164889337947419450981871037085010118098711923854041828049597830612701162899760724852310371735777848920918194159189729568710017559072091502176163725433963036385627539015393758955223021331600075188837491441059805128212665626356324972909639968137248111894245779395191587959068713585860729736034508695887585561147010916276869783718258298787576054335945330880496317999250990009471266960237727830968991309882327970985287016627881235731090840524553405174320169787247886665722521766206926566160053267116475152118521695791779058854775456949412675107745127902961161963606267287745147814579470917498448471785452380385039676650033138670371707464247484807813021881375828672545204874116652672196043720982389781407359338532410895737080958377979595866261838051229105932229057604490455822616767407414460143481752231026624004307024796039108748006586813644463495592823715800292260489449030587733075956175421458860585163244632020549785908417525709082091354429729514824171362876520827921684989245127308210490395157465097897969498689899428976247930572117859391220413320261869106718285177214268841658137310779290153919880747493598031823330386065001941090509521547562727975996703605843360048331282631431250670737840908089957485066330588539056020651735200889414258736663147223807028428178171441595980762884681861466022642201857106448096295923800788902217026113361541233344832143360659516463825550945064050795673355811332444319875757196194138407867463311120462354828016401669410352121895859260067181411821603772057008536030107935000099041738773645747297464027576217016057579263964814702537704869452078291048084452919716397290643420928267314817573245222664210116270479103250818413470778027359644338742022791922186141444806198573114264563244075868713147125903866176079322629464210549796224188560695164680287773213379591453099141249712462255531988934542151119489583274523529129526223383083324930806672739987561041631841153797777233408876520385820499846837785088678890578445119519615365099243296383576865070987998031161887528366522652854942170102605724485737292626784427200380020533070704502798657897567330323082841741077751329345038398893516521900158156311203543477948953875930789669855141769898641236017261737156887672364061517945398889960569850897233142086710777468011835025674692991607929031985378664985468766292233496805394168837583911479997254514607343680288928925427094752064688486051941586697144694584460187482586356637895323519963836548458759716313307487919485425263411439320648620523555933297672075648661052746863384172698029348866173710656855045194303724840865872118559221202746279252895064183811261311995149375899295108572156789520537081182646786849279758914359257433834398232440904723936247531656616494168542071241933721884645051909037209506509468760412187422000278103722016850904804094687793362912269017571391080433103343469059302979355918003424503693177479629862203660282738223184956792526747306593174651503267083837615904903968517197228488965256710854198453981023356840890618336239677374041293194450703649129262897012512339122366055753173042379859109675918716164636717846556737278625686190404154257195397087289610615318382385410513983979030342118052105783126552936571395522585455077967659300814740502943993359590331135915440642258017051743564829610820568872514542349913877759559221415970200701186897030096465354275893741333835002567841959213190463252535530804483560078203465646678701955076718733397113384968937153544787543305363990255592302832772835802016476609355154200833059545532726869209829606146434603124069568464862114779075093153037035308370495146434950587686336560362131477485914111568423236101801720605310052395021245749561400471372692193182890965641991074623231745928518918168166993433820955827970503441388846289334532934584244838994436844940951189123628940741820333876562811214996349969578566707623890564824304122028417055210827998642355183660882265501490321939711332636684840803512990800253718505287997689503229334403376247627202578581997120320575586738003067709574271346507568654335361027630734434172233766824897769873479048249169758479095911782433367078307240253062786240067308103114005797280186517874190873360149200679261946194126315350570880988199030681068018779030292219531537339060616917005682870329691073400427433130604213421732843694928798880478032042079480387274715159850450675898893089712648661493201618451982385771016066280945714666575344509665220101800748854150114990472392022752131792726668297938614937075188758925218458098301879224764601424890072953941431195994045192321550147800337893445958102396562368309503358460154899289712486125168456152201612505002967156628457205714837452126523044371278652245531557300980294294439944275948343982118925491636572001593343020916342351198357136538895234139568328093821837547976815990394337594950731235356500497881532175763856075948174758669768470566755359381376774492237611768409417113243874196822082152189661946906620868451105149644481535575042845261203788770108517639447498765144404865388824166731625002400255094199711499977206808106856710799917216480389105512056871785394028589220326768425663501889439975359542555529017931639731862890630283918556212065010945383579558782538814148971304482471043210376081079227528365439786084921232884587652530749291499950094656339898135643019072407193153395372710503045855566361637707453775321305851905209628787826599351424613592089663640371613394345024470049871659699510470325137007194583184275189286863939581486558573715599524307384827776080871185807309606122875939662587291596266349996954927692562812406649559748953691804009369329753999156762763024165279130638396855355572606389883054890658910268749962768325948567985889486258713777436343950305987313874368589808248007086538779788180002731362810272464939812002543589001725556584503182844994045523372528981618556578259661917271822755125128053595315060221594725933428771371333182183022699386543166920994770410930409257914078173573843338393652567340257766624844240492330496851721617267432879166051420466126136480884873961572205698488732530893400879900657770048617320903081326918908608324465502156727940715009657895628413479097989206117569324681403828593651026800133019791949536759836543170106818385666154602469314862889824233068822943504508288638855646247931592685097954909811999766485965566433900162993895922928711868718218959250240079869828025586779029403502180047750437185039977873920400133583479463716488087164784317342295580966158676911280857990870166866019844792889780120094509851306070992248716235110284989213474585947669195500821354492694805552055414752513395665374029794973544364773459007615974192580556418008894895659609771837778075325696886581248154788353694455243504700576762159050705244843172534896469908259679384955064059790895790628127765031037697614865546103502471637305345409844600160556867530007469667129285423774551514033242049856196065063823160244200947683075596353196416202487240141970320311685257772835857797003118192971441942672416125436806861371224367628026915153947781068884909534780107410511192201805065094754827595590782349034824254763496444523144746517705259757055290683555827140983467101508493352005306792389313072366487098091906778367633527909146346202463508074701148951139922483758017319795503661388177955874522266019497891222668804808999934699727754357606587060451405674566198750818831251179422274426058078859850604646465036215933701327670416465916720870774552650846217953929067516742502593339249792937743176119270782912429644296635840991539412694257136308185512317192200386537215916889588417277555235777535153015056653698668435217366356925823477230476055733096179896137512569243930240276990502016261016817371587977565093874547098060035749122959736389696577867964818710013811621058865948909148858403199557229640617110814217728222617747527313439247589275593067585356433799903924047738126631867924808421828105153823049910414085121699796359324275125065265197342054706375140051723647776259410519167989959730414823871164109180571964651746046976419958797724968984472063735783691931659921920494638725046018514326841744798832358293370381520183334747202363448658138893345487401086089227015075045626280762580342850972718872779450202919723333522919122158948889981926372738273623191447868262418680391011924415890989374461831617125403903632206190981793661165858969114107570639491466854271236775246452789002343626161895942144368434961362780848469192540894880266516719902126026264000334932474186363036941060894846802452486532062551037758088376805596444264048824155693649296821929932000032741293194408891172021844598686608278897273808952482077333623399674374058517865065004883144766858464922177395752462258027652625401003131267389149121242241764929623415708359983751230148574774729017827108267768632537579680688097690355066672938082752437100207518968428451373932416451474916993881785800229543162701503132080601895239470024374546632892695018153385358996293375930918210481119028740859805228474535592858722522448357669691235415076385311563827360019503488565242062034427606750362150408913146660500409875885674767363183278169947194859650402444652848773124492461244302798313713484674928206269371006653272787181999578178909891250919053053805568469409893153569414054463049912677252066698635956333436855700149854896296168979408053148877479174017135281422044304644334240388165374697463756479072287427781553790670851689179354731717526591748355799560124340787381742646938494099684865620484801639924468751672044287012263786790527756446809552494282287368857574624610312802231615094182993319700152716210319798667299514879255111218350990841714096383010072770590141054930405483461244159854499286919854509822583640618855948477991992286374502436155683284529062546036417798248998219321325928420683342397510044213935965747909976184741291167816021270732026586681220613896513789090323660898481496492959958401599814849527934751874569783443956613894609236362329768490978264510882695663981911032062418317364551196327028590602760781268265169019065183868765044183228244026903316217597212055750758274594643398506983672160678373168651610445916387550361169459835467874083213171768144955571505855018676309485205057642380539456107361704517954998730922826618337555245218904622133847618158547297258127750447864610706312791364781489330414113468589093691204038361059228177370069382768706896774740827582750244445836665064993149222345597076264726944433422830848075045861686653158939705175924706331978983445291825588051438880222343018511621993381204860995490007449494215822436275356228654437536422101717895759524488194642869171816901263570000090378139569652876426098218731014321315003408866157465894801351949427468269561397203110370246548800108332014410855218279791534870075027873769646174379815011341087408943064734909802661923714872827750380452121850065625097181981333445835296352179854241027140953120362182492559951680750438638726892765639724191090733361868280177060684658217916898073019668246675308128157066586809857936099512169428670569384789564572952452232022937279271080323378446460464223577948674421667492449764816526095579683701211418269783231803489284210153235172800286807006140987549632992118495363280048919281805829995690150024582925398425675317717294637144675557848181331957684940309967240291282200310958673789919024001420655359672407614979851139828243028685225686783887039163551340815320081733309120099214762866797611523949117252409125222926721559016516979901958591280657468021343831078828171570658311540710049542831711774066224860203988200587672176102152798059293024559669084034447938067913761861163157254539757346295806330548957663328262440435580766154658590303609761352440396096187372123350035431944124453398610597373414946155969803668838061875448079345021696546214491968125521317350576099174999692370026605220487507453675992925615663871622203520195648037999248176759119670906543439281097369019200812195549804579360768863815105286317716990802559631669228686639124621585158283099309247914529907690784424897013072061920268191165085334787697311941440799947911721234287052357199057714145156566464151112260593874953092763049451624403472087392923492849936308435516422126798982930455375842324178760259356364134539800556881390968112889463259352189786396275075127330125754260745659009155785167079396365291078380917987951371960446587909605140191294240943395973811606107800533110635258409211347578803565151129236240227007092549794590290473938660064290737246195004078692266700932426580557167427222008145357884068798237681445595924128519993828416825785162199485354991274400526482485753482556697131615262180984295413370353388757782883300865179769817797560935903694940158024279269480095894586852150020107556505040377280388765125515006431879268247494507802784703872846931775276445896869317648923595292782826574465822606219891796723057040627282557907858685470832610439606199540873825426769456977967405033336463289791958142917941540115796121348153175999394571152967093632646523416726128488157433967724719185197763098087047014911387107266226231478011217852510654295088785229994177632146642013776773081950176861993611471413004248134826190066231560967557009279794163658336482223242451931356304549636509051835023700161367721704183392176191359761920325625816709007480336258500619351861803198985040060176589231586763772406514535693973668685901772756983373067641629883901168801473608936231740518343403695435400582860170174074261426192804662642997799061827277559417675667616026585015040949449857934739547241945886365165394516174620957520632164540454293633214024048067094340536299764578471506438699723999678295457011520819889821498010165086720653336981353212490468509770441745090662932787422961757223521125898715965926672181886294342900010742686280679935258642254483380023191981378478643947545920715967995419098502011122325440888295716157506677513428226205735077131369322334381037412061243356779871391864901528717220743857630890531846032754638092453010718302899975648108815839943002341011360733200699822823292805279629584205578874870222206810374946404240879436159534842467062468109850635580749988530318901742616858357906814111289697538743074607013245548546677920115839721019948153781247669708981147944828108113807464058834738033311462045624035150499907903105930274031607815055112230143229197015119652565407150553324871040248796704307850663761996085321452433819669998285672871285447362273540105665518088529744095663101301711546790627313007522546946341522374774720037084463800619799434329901081334166376754739537448928392466718255911705717706798069642373002327479831526593632884138507871300059144586352437366755697734085817296182110226092755966597649035356124540754684142925221552235560600744141444808802861018167980864816298104588424989148211026726605808929793741414536263554642075315050719459044508729393125607902070986042548521132353296223276018496710127119963911958610245108768171842737729977063398854462274184173869839613399598770300653058383760678055897095781546824557416810434013382122584853461492291165504673337215568933337068415888530736830083891028928629158670629793369746131584589036407309150159980282311791999444976576410423709094829689625281121534936733432076682896225925421439624380467465081011425908268799533181735799349173017729992174939365484057405802832145704542925480632397555583928047350642927295738041687289812970898786674044473152674733748484005319624344808898255243954048848804610479309250569874035054437390918442279957299969294456485155310951058996041865005741277266227965203905917210261450373834897746009045103086313566002501048977618258161977345596581944560573687872717586549062169151168394932208891684664545282387175573554270832306085545797171545558855794163264947422740823206945600183874289686284520058250539867760077228123499578554850237024800661446412581656595152702048890030569627294734192242972343677431106828626078441533385734516351342224032540259764898796698951791291670036145396652499572413153891492546249235802356688778077046204704460595704056775881025009594141139999670032937968552440911268275737489594075498556956863195443650675396354593548272780209843850359604295234311859586927765936274307594049112140287303385454788259775117385606912831191085283463971304447766181597267040955019386189040132535684760532939127979612228339262417587191734651081389312787909058873367044988944597554042563471097998890914733819037960846028685932806184152000542701265143909277677384030495564585209061534674179238366586027007823828130036893721158575162708742564871112973491713241747226434907965330848430182444750357085734325070630490885095372667253969622303774169832706930423289481346300877670397377304987901434798036647102579501236078586232131556474201778347862848619421053700053665740131736779726791266312166308578475823537579683074777395306702944174737342440424319694230054194887282562955856321305993767896439210577600443706506473103072561656058988021661117085737092365079588369714790484636310828588549389879172321603057969169245553832016839129247656413976098366577831726130548482042882905203839726806898007641516440919414423080749662226071724328201516557593033320122633322361895130953254961355624094529298369844857562680943918278486778696794972402462369869495726551233695556991556781081898938322368635490987679183811464312999616510907319781705629747184622094840037514823574539426013524253660685571637752061717840002890524903158693860837409526804105600213893337318539326453094814677695880357045464725003609756679675425900639500771902183658640128954122360123392398917121051640523506787964609879528162228745953418076534501325215291659916540436839038661206923754204619388090702689788006220114386771222526125675346096179553023003006390077747192754370118962858555732739805474060117470519807818930503211043717473655366603407435805431225754256803604801345833035812719866040753600470568828038496732259974548898469916709671155894080089676533419157336532561934417131929330526552576928392371427546203106048080314692962635236084836521715076469947001257886929082512111202706669227159494767385019475446584223533639314524582182076239897762007504453113833917680320489807154772283156095006174957405194297682033066464089631537075812897767226430913853954827173358268144062049396928438212072563785049803602216853692559757264558583394943055541129703562908767312875545234453571238180310079944390913787983285664551061495289928912633336781236454591346376452152379060004372596386926839547498741386954849073117215783233025735459930777022829763698682565282035710981468318823859493674469830109506064034884550059676287735111332742334285580049104455042640076068766538826486351337386796133397945546418652184314369488880209151069619647539488980818200266610703572880227482670012692611514423339299970703375899354368643313035252678068861470759939167974098645506519733585952625772904181585953897020817704682767876898711896126394258309276407649607921202699870195551631433066440461132041135159732392032325138829520142655094633234338159516741989871988934439858454046331804337203956241396835285994190972800968872742711020062272686402102429553265368573944818424640354592266743169287417328993961367138011799315560446436884982353217193227678387380856332542185456469751152406616232594503723317514181431253477198275787599207706235688982782914787709377598424552123237038230230438151487889173459937428552547478807620885345343386030012102817470000060460190071298253291783355784155395870681716066315468185225599399854874737513981552034262270698661337946082655199129922152486698688283528633456935447871192454411527371029171701493923526029077613184806865511546988275465658514662835167773378156296697349408432828984313124711541512687346298633328965652522609975152682058972995800749095331255027318183675142748159655107880730365342427363508775477703526201301367790814760875799443609815038706415846056233197569466102005282610336308076443128952890851454617525059351936132282397442280213496574222262982898877851899182872436582661838066982504869685790762881996565244801134951245629567914937537951907335896162798535679674813143878947582947994414619286142986565945506909477806978793355729430450268298943412363819448661411806598743666338370165707327130600072646525894223211082164597546728688662262181472555689520823796801358198235583550811592476057629264915166599214384455942646342262405992460659652213519681759952105345595641575659474177528054834568471888071617299263501310853851310034170423091477573541759719630805902131614197034060989407709455206623247161512546099039906889546347848318647567327148204001695617066702218169756031826383874908713257306687775712085556392012384069079129670308045751709985345822187899385113502211062037453684362401538842660206546209385169914577128786296560503895592162247410222207934843454484378447316093619642463297416926164829084655567331517223333459606600611403138842866661822249175446129160893779182542916683797318400407771021406746618076428507213570041625301081762254802853623604291969992943093045758017610499328229830457249473485351994261223703476955976137515648947361094287723872221910379072904304710530922679946804757586273783058417619875794836720463333642526824404369136592704376711548321027673948210852322115043797210405595061434074799549302798966558809541189580974077266242694081997105997504446647163443923002527304292951750094961780344154937360294305868246984765278404451650913131367422066916134339179920264020519921984483489495957817434160055672391052108427740577683040997543019132095453330498268630745228561026293038205867140457591144248739542826197253167322567133504687715222491786278915361269627432995100041750446558725784504369988674180579053315425208061697106279274736063978970406406259114066039664250712255973980762397853674607086086328970722769078373924622459949757499112901740755215315004401429004519405661722294576032365451488351225462275999760227986979025647821531999584437526073434776453126695597879862028066422521810972419282675270341679474237486715631941525613475196229075428896954833665216311401338777234084919712449388355279218814201922171808863219830678884054952644311686790555153832232020899948986990387226172992448410492243017688383726034933163775211223783349339137512953691694276852833596945262649771649047535800321495494555741270782175249732774904812542991147117991477836464239739078621046726263423046773186314568545483900482340793408305486038683041209765632369585042565711020849983196052726285343130877820143267828927166976457265463216958380248691178009213137199655203428500334367256066480227370863690834791518996218140372837095127780953620961574867625072710677121873640858267882739013565434173406120633761772906224420181277559650409675371685293530117739202240173160177523330944043528010301367346858398167613038018084239986249913660107870825536639924474093590486084948461486299471489412575337898010248910510277235543047849337204563407134584168211643727307187073983543248786508606081258006535750688930774467905863768260498022398643311968148986126623047015831427420249411753883076129128376228035829669168788214266930407542252945065415701963443590142822094329906999284035325205936542607464126975364342265990549160844559403887313665712603536714322026996070783454250620714327600057608128992116359596880039306443288230703920702656003892701576488579546635246149157649699251562597480395475302552848181288098623652127317079781669432252025673746055400226891152575263552150048392434252540202826861313543567499503672383295528034247057040004069478908084397157974030654198272432720142857756837712950929180011425678298669467418812635592608254557668012617418771761363730532839398382872669019209582134280430672029227899960857492478818841894152538274122520958945097684890653532128512132791498010024601564371723797316891244621576302583952348792800683892765082565614609447187248494064726142491588649767060383158791214643334102881674758232297190717272371909034853588703887647065108421526118176882326115072460007761116547072055733293690951906133288314740563792847353768421718419667852460496742945718321707193467335371453841515665270915603983071286245386655479298706708525132643935086481483782391732343756972779486748900924070808667936985191860054938194539337803653139443152968759369424663578624093033398129953130166867456856959408797789246317548651822301399350992721741875689668891739567900117069626717745981344815712600497404036387222953318936398932476099047048398348332133155957266691512567998506846023868467448599983151620738761276147856697652943016394651562346379396098735251712686333734041476867061442457299286748129507046704586127684202865381297575982450527918136517290956092688148425765500104206728168816191159539736723871293573115106832709291803545661491638520753123304918480753111984028678248341240291346409596644977316771012975648107524701543817375971381062229292837480084982016717133842242845030498632610389338755619946538484999355745018957004794459561431065634086040700907687316906465187642413376779388112817422271386187024752078274992098859088032240160002320772693762781530466654975493168161116295886873469749710054945654781643805126907104202216931030248402544370436010584816824583883731758626741835409438803311679886458348560824718725579007355393489955199184790490546158023088740172795252680990038513294025997763187386944845475433749217277569151711798396217430308371365179572963858342728307039615465648482694056360807123984595486681083965683776622445975079116676161527936654414275136247733000765334893323628000388248966158668030177270151792330132238189346829281262548322032438135014766222385836151440419339574479418044943387861002970591684909078914899415874567666553095124927944955915151201873499518307397746698474576282758823108467572557637417400920712056536487262314058809941913571464114025723676876994368139165752070229569238045111765318979824505215610357467061207609346248066512881229636026938413996036338792209993817602053702823426246623803165850357346469518836542319757236833772972733383864540444255475071362868521412033421611935414477929714562540451400828479777781251968048403100081202174016142512013305640701413417039092565412289706488569133487398523257553530745865197253812655256364952693919681849001518116573143225080347014968009231020553474786862543799451031472963494728027938572628916975538580821082230830965694799812939213480423479466955575693458380255886400052348955699529036110686322052060209223455431530083491641851424009284449268012267592095772805725788919574817852044387869940110990533404764980900795114992088790135441299670496604297904552442242134550036698374440187928648510062684375955260608644636834304491662223251710936605066566672846945618236474463459178741487792508126404401860573527800903913882729238215896916281058737036348517952452225851425824776412652662243714771309752222860428845150647369258401310585672807636420580855088179967447319486011684299181096471277808822862697540135533600179719952269640038276664428712604620929452182847248695518952301351516727648268638887365061989229289580997284621549460912212811965148795086555794891118808480528575517999410305232661481035667661402942155277625674831152272111119593201219598512556974394813383405555261119293119284510295697062476794840165692771586246729899362450490337412769259428291088587238235343858058833283437645961935901668074087160203718163203175600346303676741138846782613023159164650634947055691389190662463790890206243873946841818010558926168020544511532170838563721838489061210958546322015412969634120332780587018221443381242079727920647535759225840513197785321469527375030691245955507422026340109344077206120836545750137032768009244479394602430239889386028586837905317674293873285538603324799109704897721694476163162730081717098037875012351942478117105272936586621028410220860647720489167781444522979624054523836093013054894460490502798414102529927798971335639250624710431916795138651862060162629969749371616194844260416757844873959833659197404345335781765769575787611955790314747280183383623425725641936306281401506843218983760859579748152904038336699316246794343493752531379105223655754895826664425002541471296654914136336152791552309379891100927148888151902843269481704711042723054667580888617977528831547168350986528070987343700024766456172170318298755723479064080539978285100719414710763011126764222302576238623383863548435239704182586081343683557130819683936669385480569149119072452734245007074323889710876229638198878172722099693379551842772321651005046201232364575305583333176998842428396858389085603263270863604837233018942980781896570284724939402167054859959564141022432094852199700498963585701570818008813048748679437405310909938265902252200786284666347990978259883953787402886311471411253607175865480010607262862574147815251538987444216620094169793900759722108314485057068119969304297165381274369289137502263349502721467364182781939269918988849193284714874280354766129308998969994051153223542633489248893417295339149182238227766029067621443725328032937437668881002291506338068444737655457690960800470619779987412609003277487817180021273437130903557627153945606859897387282314393267204688797226120356861720084124636881525194961405437553986405276744508476931882028652474921554649681244628519230075637197378034804242470070102586620055402011010686002461706039252203715873776649820156148875901378452969969435144482349888157121785654854042743930850102796245521602956543773393810971799781308192874937632155028194969085615521782013139556806098526205947210078597132065190182001016915237425367805680146728712986208940482225514033117446478395227327139445231558888222272446520320240258581283854145048861074606548535883346390660763015496292499489074868750675587739574398387413980376690205046114050436420329390249759944204422222932487261528037542287243125527088520242408670878107076056682549105702385585890871012699882840246565928938116953766994936613970846370001209539901654250764231621382378201381965794178593368548206773878211255549591451531214942147716218535021250854472415087554819494937419739487551990271988159826924088958488762833990256663724252828094398336155755557392167697003217539060614161127965326093952550316680302653825881587369501181788274579797400613017222381521149163710325001403099283655775390190009499725582253588166507260652139000019742101987733787287271142702377145212761031634002935963698619851081817393500465262096953197222879671738522608213078182870728138594975184113462238575357289758902204342197560206335167928866375583238589833901980201448216091149330691926260730073057253826664725276877875436933681327184348153808762687711522949046298057875450193188242462075838288771519503678262102810491765713795139111065735986715243814596363929454404589766598127677633425832687237159700507535091137336502173154025312199456829301157400079481642706958087882924184691074684482295145885488961877919569317706236709082081147137431180505088301647966948620079199238765333896308342548145479940460004125676964966792134256164904749484010976368057644212591356423661474844144237243646363206449587521418076566196437934604138412712218205356406684961599087160413240939860078915038662782639571504880963425462531750984184661104807051027543149533243835752349996368955798516409084115027288053171769484021196884941051116490474725247660836592911901558394600293268743545956110398576341499461383193403838170921978074495872152540506072824889093775229870177563760521286357011571871318762340364087809496821546131976248379238869895284535897379184006299412942400109915778187625804722280173806350694935505813291071926894700807621260097292709470759173926208208947856380255032111761214958211004642889835609205999537999081178522115710274595841705475247431499335024399679476123543826727944531901276060233387571313742480183438841332468987867108906154119175395442902324124187284348475958562839791214382804057171499021769219743657046060358120716488164607304522943015197815604189443873890457362221280425333303625779461829065715217828637702258680205431944838406540185385374097585846049871255219494194870573299721785899572661579809269241099225094156844183364195785333553466462881166381194143146332426157384813743930142326238992174822057403779040731701815897413654372438512187651059263218396475985811752080414565643597857938918937699973736359695993289643430208326051274952555653805401932653859353549263093556837294395156953398795146265999298731044104413034362861390590340853973224242168413809264218446793430061748155374414502329775652983593310081550878000399279876014832101874406031654981734950856107756568366325118552175743627367426844494945920878225314996222634629743045715972450614540561110864367922014996425391729900855244843333843559996900210932672119767496533364303872272095743008332326749493962520675613614634270889657030880007927116290842915146379822285771853046879803795538375887030453796628391313052667382415825497155459410404456029297746731229242874500533258340774512461265556843813602617328433813861162547011830303763206697130982369342870038329103317079570702858024473135565601479940506580444830134515593284003794177610309284884593881336381783828585501039061861731155924327133804705629627364022319236866563747878671258573179750393659531909859985697782993517122542965667194712783365619279950993048090714208695747061230767495548239252879487680904208844377851774063177672054413893229781906333692923818017829919465322662379236367230990849704159275443160706448841988264743935417734429162995875056756416697634299416725089862447227739730941606470130897744086382017252573194464985377145511627290396009745373029076656088691123871813167535927851762802901579314005285506096179063055543298415735562019231179243801100800055114267685575381715771120366033834382667885088044592705052189033789697711248622723206751141041620518376123590816689052100620189464699319012254465231754046103048449650422636954324267339792699440585063176305804246743112851635722582166575490844566254985182097533634576647594214653569909165936020633844889654391675228378288394567953940736789149181224526959453621555985181303825049016249106196085368784845809277210691647303803461181149443875130512393527286825557629971106995099034299399861352680583241754102869962734418260309790483975013889835331709992684310096790825428397344880910758756403594096808470643850459827735031112461124678677153298619348685869428276523620696711273478609850152918643305736358990436631231206421487036812198518687317086164977616282443058767627884191129048978762612274069213208654897224703688532068105078029321639571151238512591731295019656012914615764251326666918870585535996536722481792010244367293087804961907816838641591423047391968629319374869729844918471311451995636267580515912713795823033330443363854211086604296479807192371967993882076595949607574819974874910896483888382062267144220836420634129073390401949224306025416531905704282839633166168957136933270880581139113461760623909816870752523878510794934960999613004083654797557317247692364442145468035027845200811071208090659401064092707965672613376976934161447950634673006410899493483985373089447320324489442359754496489293463485437556708848169188444074315666697955465548375290034092890102368675206471168990584174559003393691783320481567634113637194092622175307801598296235326032176045519021651551157343573506547270349711943991318894367439814707331828822948105252877725281655966121820499299713446692535037269130691746122064966714825307462610915956924958605268695828109442230011048816189069902687590999032807383912049582615930241963143225324113921147506115430987689966692243884787362399366048035311312906016281193695692897729164662310742320786749171063915015108314201325086853068336130303946306319520585420658811340581104148520776019259161262063348245237570231956983862386743846231749319139501544898274678197160048684652071930199715905669488788553425650819213066676623933247070290036734852062764844062543564280085653643334057050660143691478564422055657463096024736829699946785336792857340829545313762101355878817789517937589441543625047453815447684815004361435600934885685261108373254040224655264080240864891754421648483937494113059472472536700625774877595461011395438576758751462257962683625715188153449630548061052025445252132847754484011682580322248456686987443414376932949505754173625597863263002203535445065560955610394263811537102025551645733681015818734166790032683474517498157020429534863408684886561258804188666529435993155092637674444689749502250852451192862531656887525986075251114815990653068265276252063237633776765950342170999016066906299502522216595916085490943978850010478245390678848486097330184005351929121625887188003918490916477011774478028113923437257679312706621037287944155556327083869721791174197152772934082319680354248533244572277330911716785043702776459163185692452831713414110295850856609333704892597180562605576366813448880669366423046473479522792582889309187597485268371317866565494329041137787611162364504247521642574812636162592112839412872787151645142916388769620930175294432990192861745655254125737480859712665524762623347441424398156856430025480877003705394537059883047389886703408821786840896361736431937045104656419972225814553229347850190119582930729141024292624578343019782345121023588291023026251375949605194805443191218153571246807553672570232784374708815205838933910885021067608877095580950427878786242078015126679028033924248402480693354505296005959230346221076848661895835963706007721142701509413906042899911220197304081203907067147580016523122463016229650537630560829710143563764762474849565793659381243928634898967272278574502679840623095246287347183167614090055065820137267650714177247878405213958598499438099176825845875136326759036000987375762739690475513278025765131153952324355121935422411068883476904178162058411170863992059311116388295896734398657293027251984779074480848402976232929489366630808236189899512897638265294566803146939361909104512381025488189826282200400509803529881623849108514465758328281699102558201462892172251993207633632157190595397277907191317946329484388759592633123312754341231501508370528404400367373733287760814105976987847072063798542062263782438903283526295654181961144548894554620193759695107187211734163374482966149619102858308450961922588372813409917635620509090494723248870492854185664990247577820421943513576510787201462394763373121406430824345414843352727044487438899397504666557976050067752059087290074421056647468407636259856822787225953717985310941974608822939264228387055626455276859387922225849430839035278926887800030735523163342124718831850504634730872180604134614546877128825510391173378812334564645342192229625427431128419195710912351081014364759771149833510099871446238855706033569307420026925974902837652017919432293681722602339768676121466621356460731137789877365703362618406265827479347732689727413655996014406781303482080427164248297237476302263999780438084178826031765060946359919074807987678875114305211660579839529795206650781460734748269473349103224032367613223322120617857522149983854447319664595038434144698761932671297797118229530709015230565692355495363747691942943157393160477945368077975878865208626851039188830331299267932760907787151733509433490049990652998399410381711542172500496930099561857740351681333656008785688214120647803140237895792967077011992444222172244257505414673362782406225935430249539872490599385943938516754287154115226283167846513593707023305000728470657369673945833880797583635991263882872065312381452241438177480756158687512353112888334530337626590136429770165773228620321101256592186487554592089406945161144742240937821057103928385013830337283444824450698801378999428468523737671535734392314999794702637801024106922910230050675846579847068960862866636751668899816254730359771562563723759023722435542120529321750889797027092684197755708822040123888822810383577350577432848333806296493714588363857738576702436304602610502780513200086390369275939831459487270748424121940778865577078726915661005423468689140269191356988921253967067287193369864134426106973200019275388035278115096162391234372010455414915810052244968478394595108889961498304322548081176740798631802940961540252388699173492127226711622759075558592629959841568815704693079112717549384085391535783650764711918716208227544903660236619057453936739948671730533022369379301410286557904802764221296147476642746721143706599069144124539569876005079116811795076107546646706313937246556053799007652191595492062465530870795623561345457887278820923190117228541697881132156078084058818516005069486435837366696541808556253640832251317961841485241959179041813406806303517604215455045589932078058429979831658181466336750415757341079102446778191788204267727308707925169833795521925892131229713991546700968250409063118565801807019133537264111303704614949513318984207629529315575985504790605063279659537878230994189597207382464015367831708443932284797769850939373707900064844278510483104526945532477157542212572131616047719127998614425152366175393662435169008567926306051562298805215912993086480324547676752230129610782186281845961430333719151209773432302937561406902619775682053366345889792365768055738389903131475401961218732695415610989336471657917918573143785190051155912813350008917961252070155582478538688200469305155468390925311692378112254707453144709572521322928000362280720527587156823756574073461951729115553117514068443627544113222461886320413952008822780137436576903395529627617679071276121359865448031916151849757929814409626429738978816596159899017643949473032240458523126126152918632469807937838258126790694932935553456953811627999264906570588848549274908768225872695453860279874518108937028356099820170826083440949855665402989062359323873083815928767303380572007494512705576634645984868826833230728393795684176814602304547675234874053327128677924585631317413069915553342145905221505980489900099043732086167320910868821136766129618740480079645500054434115509423650590363619730606613394366754252166199655345939219403930510974394312033839562830999268864895305489965192107339664792330062121674031960894307321862281445424863370491822739666960716645030061009662597145728665168054988319324472827634386666189772659601807360277358313199047520523181292441576791467560843807687705041902801538960056698784842477059242415636443641197192380260681613264550083274714173424164964682355360310588413053378244517325103063249236536529829648447488239719328118558430816189549390242746408540776043177912152725481801683680787230952984670428492016008915188280192458937612583368137581788417841894371412847433462238951960934373366564597820568506085369100496052810715538146976161033565570038734195658453706462410096167720710621859887548243898151892658350984754907740687335217035242427064315657500073478501391284356409961084344916524454341112039122736931681932923710439579525672652254939698922392214407745006442146388130671698183158199472766720868272162274290436119796614434023880723413481319812552706115973242782209343634333084462000844105208571068015188069004082432558190217703605350611594672272325671626866058991927768806596005008423286344035704499889244488057488491273773239090965001141304400220676872419533730789091521554304495122764478325435318802436912631112057593670725136539732535337494109185982394048963336059599226769316189855630668801454567905536693801285844184235739311574807938243701285563923224474392982104663921718755930596314365660510233902307830248640941963487081660253491386032047005445876735068174609298875364111612118225021674747869300938243977104395836921942336565904998926546688204650625614657395846785296980587146766391929997959935295631312811531367958657913042933194369705315698991836518201297499510999831323805106896192858139971537031268141568265968113619287260226492086346176710826262627534938687266476557467854948308078989409753244233936588837212577194059085104289055750871157930355050887755786165215735325004485852975309683336430696510601453402676253365874172752850379525044024893218761018993238388971893933335988889223343087859075695629695275497581472218357127201014364166799685554530855119564325797623332373933206607965495018051814373200847394453270154470823554780252576669411382605861752966046911186692022313142563206686226362814553628470431675835669001535643374694602196109333691886166042302214258198749872328730167831226538667591905198164925270540047949150285990362430227091757251853504909947917160641863272047168768143848155232178647681870166221565132517189442824626870148245768099234954905647164838727580199557088382012696810557794907567924537498083196169924332819760925174634474204138329520660698791550773670898812490735358130453891187831560780170156639583611415834911156436768242225186357831747007962908185416206086865542851671924372713414413824862919923930257070497259081036763607364213310648345844564792645370215140624545447675499782432387064685166117175500489363224815370430684802042600979091346046486861119273573986554160781753475980284815199362747719299760185452253123781943523527359860762077964646751457460786447565219066191910041730632572611211400671013419279333661686443112136401312841637089485077613605707874072371410945643851823693603472810359054923525810351935115558313380114708284975729171322248801898494739969504247652761615059063863358469197588179488270270673507804482200616268185255601262941497494747593484715940931842182711541123718151434810735411108558128706159154154169491015605403628471212294647581826388828893323849354168476539376091791917054074064892297391365567551131573780255740194690816693648042474174449650890297076553156022057182291734905897772763984591882366234638876380632438103144849612279451182023947598526614038216281799705444085468269651494830484491576395668188170357412154959282351376289536928387165940431780785319290581957043247533387460226472600759264660600983682836340048814688110746938031247365635860439286591238743809801509274271855055255886176133817644558933298033278121267466023979411831660549129308975126749556963249603063956543209461170094193469599694984260452647504505984822943142659021965357231152811706286141470015851440612705502862896012562002378936031427156662163822719676113649187582572699230920832008157370242827360768839336196188788347082487267741240159023901932464093202502604477615864021749419103255990398064772397848971900038052760724316455130874035955163129687891648548557050627946563135736354029282826953602915893487451789888678620294213435739682072673328942310050157606297000574781948018785814143704438084970740503424850083948482067970351959660733067281419896209852691950488013957353415175618534276106293324259132552216595219624726990900578449470062226631281983922395241849684659146897853707069439195461314164407901362582009276473908384034225238474575179935997612433702901838799920727279288251661614752617678508444952056852523117895484205944833265562135558393887535302526949149944233893083731960287603139973925219710962733846032234455324406450331695399718860328533339148641993115049498303162794313531111362537868783905699505536042827407409004681508970584901102901452175811608581532838923806825782557661066990222795756006713222938262884491157891367675649954823912500952723608222534942250043848401310223401947200086679059030115035003506847903995968154872305289200671134946978098771412017674349203543365879473210645420797216014178538502389525639715747122400012673989683430459659500761275710478329259734325881299295210928308747629982413382950044745060298486465401655782490183139959098546169584864298182010794558595425230871309773852320820850278295534110252693752303754451199234287421401070640351539479299541960311533021525756092333200833015229363444849198543598575803291268382424587042411897605235288214352598798885435124293159825396820534768829196882821436517795567194512763775043769437336972290076357750131262325187242871237151473881611395991333860923452687258395322850003654182171484089127766958593457096366280113829930905241421942170674492768416035779759867548067359990932107319190394093244637479102370708157907018452306528336785265450079024974373565950663458436678824956895692914060057135815115608584183249119082936667863092702996728584884554029917082658346109316074006793610658587171981319789730225534544349604254324896490151423633438485119896804207785120671891631800129847062258212993819342564806594923124703053950718805367964038946210349988949505137424305008922629659372698435251434769448749330802268509811425469022976784253123346736232969043463492804347816820476218707931427100087329571731356995315052963055191014726309511471990762026597220735611002088119046238979390646547920273141556710357768659215161752013434318316595077587891174922342364382819311525695580550197954206947937427695379313414127456794783241619033312717380761513031032462502528659014646014781099319092112394059966423830048998894473998127725503288734295641273246216913325163041834379815240148232644607127432998493437790748973880133762576814341025597078676689050412630055719639902769634179248144944349955086941099273197710848520900221088913297385074242603730298367977565603846010539026839427888463108696785407849917099338768610936216162569390795203982072825831607433102234941649818088276759735175660828321318012446363454048638604497630282917429680053621483694475135190852117472747716491047500846995792206569920174295564676550534791231687278510181914628115434171665415053812747330156091987258144073229962285762712875798476939297023664371467738498434629633236807121025139090738283361401085955246449551932522918114536270023431464951664095984889400171384949858495949286485607073101782634382871780578747808252860159592004936039558435187822318311989573365817960506397691917574828139660672802970111578028405129382893661137053833186662424132346887895951970295412197820487598385327388513530940371122619946170674485014968428682826384642453631315466014295475969466996100441447575843699848869276601996592101832341515296043663968042398082846658430111584206436190199628475885024347841317537800487619995106622721491583855639707747470692615403786723001157583668894564385909559697271622382034251613148803585954649809794211175578838770028011972569751133693842483009956371706706328700695390735116126808425225298190750705453418036667711769314049724679971004570151358311548221694472249910311014751153684840964594909834572508718772120760188786529407323561378231133651389880629283238640891595559579179894373359420788644473779805233234003453388626020186051073925931293630411319244845917920752981570775689173145853606276372664580281223155769783656598371729107939036455413764941597105606381781501697269784705904652828220519585182815203093343317567616828617637958635331755452130901036369266749348388625389431901707841750960711737081157899149178990426244816943582106246656171334454032665862962556294046358895841664373275336512859380321792451248257375101437036982220057552842654794241300747599538307588246481682139634199591664742784497738535318050250485887230051196146906030251283008687994422714929206556030486638707145731202819448933560884577800227574950288248556031205887827077495479924148359903863041782140998594861018931614318420522865058575822786092786514214319679351378359929283949660737737624456565224414955880904473459080073244994988376256179402426706995648253410340584471859224533263816964441757865898661778647432153569875348241144759303944734382810883649362316766554847918787127604211444020666766480936509140729325545674367531430220266639793751218195394190562140084830465020706433509817158884424905807899811683828854793633666148082536594916201709515141411902179675636863440504620245684697776437552330952078157249778660446721251297243671943244910479382769824136581432281192898977286452864226535253714706885027357694145693263751576674866662870571618232306116467763405630978262418365948614017102377140131923013521007220118968293807177445115094360444724085493111916724673543245791209623625624350451212056927203902976450979885425618201981256793552698057212824577873111657199618530444245701629655133881212280069837906379254190420992723583927972795804280805981490149138245721263846566111008831291695805933216151020205786960645567973856793708643515285203248743762100636097122340098439463644581967193013498426014359503369810198940204713609833745747090916728916535600234276051058010085308398444062677305476737829063756926846109800796405298230508216804706062662232923254065337858621566632374540184989313852620580269285921671506995048961858274541132237899788666031293006451288075344390065186884063662601638983181147980382527199745443141951659140269698694874237176904722821194108295147746134377707798089862166192807830073024107459846991677012160984763740901856702524673706943997446725387874865919489853209609374972197848180114401552692295783679946409508777134406738450742653849004697771061676824147396336209997592725032430497813422225420405139603027800120617751604435669312982372222817625077753977210731596361965767694330862448317668863473093432368952713938395511445364881429497454485974509609968258018668285305319172152642979147302956958781206715099005542547428346713474347021880488364883575992687655734851666881218858586563841104713547231145700584074715236335279307451081830185767346134809766807798617179152583381137639898287345102068388947770496898908910289938458026653061389358212964281493480376336341525303506717090880320835851065344882982463687939757654621440380053212253640156094166329550949324851169699788152197171141259114262807038780392157233432638389365266104536751447368506614580098617411064932017413847971174144819442829609536778000552148297343844787637196588223211440098614963038372734554453478938041973241496213597058464993609640177770218263434362516773944969389237572688740483074071837881396234948397197513063739922137751137022379615232919051954264590424289786503004095828684008930884907928778333440771635591666007884305133249015531042468080976127379701079678397152039553563478681828526656232504645066887197653639372092605632018311285262053912295408324257440592255971545668226537693582611790931260405421830407458535635709165554015096675019820228619725110778959403013566492418760649040001913622944650612395708137334767684161251726922093238123314103498552933803734067704960844301019782813517318488719924685077084794328199817269493282257581448364116307389664049984838628761866120198349560916866819149662809884224430866319800826690332804158739670655792307769533287455439980493030417706198756285072221518735071126573218027392304684547258166771294004485133932454103784379419894584038975682850416294653851287111526902012757781808123845764019510308784095724538690081842950244539461305335946838771841851932017976925469125627142459135446149291018434599909485460672979714864857402656415761598575298459344436637791046767271178320380082389965302245858249116319300828419480821036931683447309290659898046084934729541408912178067119992180523406815058909107146706265236647792707154301858331359806029523773011240398594841247186582366091109617631647667017249134387123312822321413290384452480209713323897198689788394211225451516841978210915571432443375046316829418826525297077881762817148110865680667054184170473081479585577077621288600865797556987140286713735952476818208037255631763522754720823407169482169581758251060082931313926429575383267487169179429650411688273211179179895436535157814012714269724148850254442938309508936305771312407917402897124803126256365564111458014479239705138817280370614655379726794046277343110826910725680280932772267275351884215598443191532686965845121116481775513692199245787978041915954312327147308110540841925299369815082837438401931162942137540679458410479744533287771799554842410561210394109636218636288418487337405233830749631679385445270169522783185337302246487129181380311637340028861462451285231010404591297438070323057461885236935033181996528588747093356197087329678510934599374464181467324045235625581151702331495490981311932707604981124436038826669836532607258188715867201853184683409596683318166006465200550288983434306786366886501412122217121587954142000534813316252660180970442626276255733365102487122751220770778682027461663720270663827939163518599769364207562019665343609824900188857091797149408017555024134389693478911470022621445330880741208244810611088243161492866510890206634960024002255745782849920766406534321523903374124260257614487917402933211900112092311050090480198619918013269031067212889386460180061863913709771592070617376411277187575914634523083779049377238063872264434480744697229758002801201111198876823693851896057264800391901467067029201127753891126074638868903023118013761248682593209310213375103156645057244313137778601371015023578791124986804535279529896709909272401661412111363089054991202763123574586700054309410122890109856298366341771074578434685969198248071187669562267730588023913759477769345644037821924353450441843819900941277839346929706903715159156269316296400520644278442164992684716707197548437590826250822193643783813496883165719855918281921473853868312235506798413741318888219564188089053160967326841994434689576552914474963469845338464591499681987326741927009965165137122110200189222896454504119160616711044448309960861032127745341806769313014812895656501368829741455998877621439925135823006300488608755158318185849380234964364283873820787246232338372179937419301474043419773259529252112119611602362017619689966012940934794289286740462156665040369000546733208728744404747091086370759066747257031676168427239270203413298501213016174861814113976208393764759585930930686789145781084809754659359739932102925904301424375719511480053518386125595511566587911749188493659050823832353601490157481187671584483329338404798007950231750856354618170031503051885971290960508933890070920462756021921173935213229828428811503472850101414265679181850436905559517993221036743170230723168454928031360087560665862201756300554101359173875296072303568958643553431110877147459806352748469485314302938017807258710050629289560807168981571792598625448242594519122138503210896783453736732108269319237881213662153878400536961497957888670840590345073320100162380545730836830535776011340043906278347847901564885221852912314284483555397430289257269533800785773446247315467798257280278585277396322090253864804152518576743755819253745761412122463880205589249251068175467303279715025248890473692955275495740354801259409844110414777804249056417821218424598984404617204671502704549119154149022326003278645526150092291556007623536289373787032023144598697217905969327548383710897106288864016724218407027560162425536380645112051935779506197734084520450813054893472869992198333584521464652050944837288216305818394998862657569861024110116787746959223214070698707114531627334980382940944496812885094168256928697622717541783148584384091599351572314888996108383558681202441194578149374297547095635314835951744835239667256991951790747787201712923639021575490058676779039419942078952539742505494892554457092623284088221074643165765466093473225802095087718257911673400830651364031175100761926819817367511149112671479441648114154874303324000402041311039968642547395757622293331944672852245829814273763489380779915412819798705929110702903891941486788454555712552888980827114397668807927875928467265680257916092575391184136468376802903065027833638379174499034923240879356830310225051269705153626442595899902544579190223148525474314279418239398191741156367752909460576233761909959094787828906326268803599881116095507351195083941766294552066947537813296825522986282036125680834936668230037487246932110189787157783215536591209746172553456036763796222062810557133626736153949058306268486689890957946137039993504353610426123285468586117928059654469988073200595444350822540301856292368536692180709934335643240280352173904210158364717631466719750814976091532870552586475827878488100398776857081583734107956880939797751400818677190641488545147840339978522267372025782577082657766480015661434656086356497435304987701903415694985351043822432709165318375842615947337550039309750620434888926898811183762208027350002472934141877147027059869397304383283894946247969912663300579297943211294947792325933550310025412336829814446770789271553500334592079632209403489743247606304075922361499774937938308376616751472326497832600761065501882387402652167205052450121791765849338946920926093958709091146840085284670314293602506009852687089308317670395808799713662372099927517466894256578374523859662408551042656339547508546486615386798062583612071116598981496716401612456145361230680239973624622749101508423291259814940169187494493249022970585325058624662519477450819117814431563351262753684356090066548667289023888940547541910763867522636449599572605075629916511161685128855087008515499705921898018544743748079848507313546267617523445931895228184993428491701981474530134645554302027588774745210635482203910328109903792876395146637056887379157683306347311069414789204858587683369717972201825540796062412504539004434711193211399171594225832399644305888679202134928477727648468212518098246418356037691764248510308461512455183094221575883813365943808871541182979815686297620647448910679913310757649016791666874708781094758624939729829480763991186057520508078159578180858197904617102067571933695612556984522489233752377732515290900073643218907173025983561650251039123811862836250978665443491935332406906271180756000061542627440057001611113223766112458585612658865328625495338863209071483264046029853689902967635106107178577826106494506472186623718570122133537631887895790510152657164260271173792832914278885462256632859658198468682549164671164047556358964186482591735330235961616774571169970215100843983311398720242860170578162111550946469319796245023563983838619628631801225716799418470836388290097269734487717424797763407345749118110264429882539433198203068845617137344121121747874000176441141234438648456568001533377283294133187975174137551727524148531743672704218982912844008181812940362716117047826091773974224298849770421095409832208903918058323037969316811906859728263703472080627317286886829516034463476276935626753955642359363304609249022539219100046205274857803042087929278321574108427151569599473063348027316860815881153202120237020487607848617229156823928906159533900641771272861383355771861139413280287869349197676553851824643883520942631355314595898458496615068214375717028289841342920097530342080140763881681479741542334497312913042297248738276770648632561581759455242371269673287328591213012142662972802253018377572623729167625575030588498854681943269346496515789747850258791421494599936186859721672485847577951048326376061326441195852689821539875575615790253017378578177952749851343108173109739496474826033258107168767742498422681656599160791601500488257111789556630444765994301380453564106587397129440808198741041235990996029267260361617002857608430211752240157333450765347233956474701045979176342909733532548989643723962997801364191247993851062874577881582039241289257140342081469845828559451033250274507114690439309685501927908581098641382305938746383282421481822377034336546586922240063557623124189411001601491458747674825399955400035379383514241756639294139345864980006679670630865731736623009328137940279332450568539883561690751538327831180710733778291302094242256577345736471044737235245949494181009972396712328296181239486355944867314489014682955721334570791743851691976280878949814749322292314743511238642672904551872177356783199207753887169406464318692093580356461287687689343808115313703841586174640596364787172007016020447582358467886075122496529026747771060619773221200681689126690472154894151210342241513167966524152864926542246763322055698504445027410753864877475365467056555802609761188203019883094872182570027057175634055385929731550763984829475148314396371614337892031978365554225130549170485239267745170749785765094908355623130919407811636847024218924390321091788176699699387054767350310577268116101177273299705136859903948560900519814188281805270375002474652568956089199949344184866984710911267193933506987302919409473051275323791341786535054223604065675181144561237083301832326234710642708739198448600493292291114258439608072569603826105568308357556673688988621638009345807319897510040683864180346347354365554790026966803077750593526460408012358773432810172856399891474474404473731480649746569584837565616093549588641162207510637218744356624743910442250795738892366829014519740882559872840291631065801889965843004070643113035576660277019617245961292961706151818390021666284370349047968862273058181260654353926561801640227250327671859485098325639399410455132329130498551248884248167444476936816954123603903285426071291772580052561789803641183700546771800182044983734435934891953051190413412928702988747230397581084188482679284774337066662297349219897699521874148979995667622109904114240672527949047677512594063201161532423473044538075392494284741342042183344945825883025496696780141012991960110745711484182043573064435317351661233135293672391540998539388996099204342928219433500754110413521730735140918510883023818796242224521161916932408313919898247372253808241159525083704154976841295953720678131674428148563086574202220905795574448892661024170135323486808081011005227298305256102338325972271470790579049411399005545699569993476323326533130062634935403560430388048605613215058781438962292676694246994706874400400123054071159917198924698121632629433568457097762149585978127446677322401386005386451305493717858814627798297579097718495542684652613617054260686151491824133527032053669292054224439469541039792035446989796295956941010707877770895631859482762411725272781242158404744373888093353716767930881570016228252501691033187481208739809474454875016938269578236633226800450661246853939540937183666702629436019065417689736790400590646744688941486277987643971745733024916486014749612168474877854649989091305435924408371889158739229611056161673619852067086521801548929303275109155724097480157233152810230585105728756477571813412691166197980723125354586541977682907965109811291497433962455647182781242838697234930564271811746289308255964043825182226826017127286727764891631196569848619487514680114318403885299520595291753698600243330351491393073512367398962910654272217069501118753071121679066771631868473530989869935661257994260665530426685485190188498421940199026712362531133051316111798817234264452114338465244801996861243548604393766176663803598257329665947436072237248587683405669622997303353475599468234654701689714186909880466558800706379541376407254100108903439251355754772216806423612051678585036471794563097938435008229245188396089034622538129396452210267281811693038644529492406001197586764967305268496107732876251215385935363563918372834637512031749718995670888342378450786501513683899076582408932308678068660108813482436209499308202346047285615190586844559281515288156946953388174097650681392026858528059970726672114175334075961299655553729134204692712688594116493239865998736138254610067183700475211477670769458994671665050042678072793899750875799263048834647229061308231751038930877306321779586444264651347232774838481253857183737700906008079211608039769440164260075141267967659274770439225686573364071049205281435760486994307380274820465549232358845941606489642215285984348769808356370596828773337312013360608301237721085302318892876783064374475983918644245426853099447492989743880314585632725742343100834979051036733062504350489688181843977177789467856993519371097962685795906354257151753513159918862905832882435605903116745114837588236331299399340787006559107061338856120003121209992006501134146511670342499282947597918974607860181718285866009007173536866873316885155626589924699623566928892782332811375262329642588363575296121919021310047258302024447474964510777874098943657851138183557538013287760536910951862399864596405547730243076198334343351957777043944389845224556995612497387541628528716738666863043668381636242542242595972894940189927035071579444117216843813352056078184674514729309102647377871541454358974906357288796530259096831101727507869021949601731862378641388018863452759604238304422954023687798108536192834255114048790681625760868562201300793634892674949550390590197008761420606006160058709507017543762528128316674184845482773005821838152255830225101078958887390061050354987059922888667060954866896261751528942650838256471482138211659093298157505660671696170718068417508144267367185452634080666116857503096589644811058071142968546301763600196822075091765433440915694578542838778001395999754936373914395192540110555138692620468694909167471367468837444239653106379376620205036422961532304056694927160142209322267969917198580563276629810594908537025240772784916122366784787102004963627167430808655276392711445338367253345295925931211124377659894097288399038374065736959977950223139112920468134349703654210873649246263207225017367701147887939525295442615475618092695611853666723503914405465342876698846152177318744623772228141971282828696638728649480317893628842912976005495102588743491802418788486708822298960451475900799615751000742863159447129809603167095546642673009359927680601218840298325731136468177108601502055174441903535468110513974139896081650548617157839142253943587976518832206365139467051097188338271943852439123889882446257895316951144013853874222022338992032898242951378645780941662778908960009322410220559436993359757943605021152281152378587781224643517039875601798108955668870709075698750246984796584832740934262965623468102803152506673454327337765930131879076502058180938319724299246932641444942081238087826056291538272200029734274880851588782873503003717706337542371115368005423967869885451655391785811856465318794725444758050059076330947210561078658513478300226248506481588472909216842375933540066947798071554473983132343854235535099863332038986624615322549283985572058423485904994233468867768140990787889902685956839748500570284314697782831408751830148127503545696031432777246620921141519205772862303046668671777636930339455848992096608567370299915593411135015654109578611789014576318269427243062637219809619610921777096005741597632671048139270157720985254052648112381950148778593009213531734678528779173798069073030537711919174909396620232980062421797211282083854409683767276833478577729409293395455797256295064658926461153003084459480232644825525802476399605108903539191673591320572403168461670038821487281382535472914399077414471600368236208545358670269899364028774023357806627806004401640364355252694642259272995014655094947258646804576944262587050486931529445515184024892937141746220447942285171013022673017511281312463057027946269887314152718860617183287707619844956391879819820122053679954012182182113098070793344604727603761945168588600523033818795697129461307032017049422166509062756019912570029016037761122000438497710182973586468436022616944803350411090972271353889044088457208730609254611080989569210829659617041141695914890439853801245045568852898713797514412414789426284194089228775811444257351846519662406614189659252483336131966538315041122746191731042655827278399170319723450711288996867917295258676477268971458266881965689030657205554864283151234411089988375962326891962474374973356878979002431204119902503313504767071832636666889333556091307912002494828645615305330595817816254098143122324823793825757153509192372653445505399722848002311780750929392267346782423596152553868535905923900218384315802236675380542624746419665017406792797351205526894823953674845449062367440988585995525118109710151166859309213272205920207854222590856263096282142774463936592558519184688209872595698719131587265966098841087833019527427034367758821941484294089878813483378808868246975331445603706033063983715118588130540176197170167321997139458654815186201438483574962285616725065252008048088465328560416584618596844188006242267232647112394917285984300013096066066742972419034722628074982059118952618150429165879622048036336361299446419285922617570215780676043666101577110913298049737274297040808564380307239959307697598032304338310690725184670444159533347428174438963833964493117518604287249736680153842387209780025254205285393106336668918447044172760566456077708795626892172083216515476581477113871523777884998607162388413423610718841959113362178750727487898090715397998252559679552161142243484004029505032840942434718674537784280115605302789466478317290502904466567965978507078101140056276866317737348239585227544387655733992666941988548641307375777356238133655232770193122542774586285408679971546877147569969988051746299625488377665671515859833824733389722412025602792934097254742286943499813577860245681149182965821831198974699708258937195371334559707659438964984932430321619481894800626670806240681924176937551708200584584138292033222663068586107590670638043929756012357075152436929190417288070363414948475526516402096371641115373137271896510425633610590145777827819104380132552030119496917314381134700024097010813619622133752604113714231161218383465043906283019348050969127721605583182656265909241127369952121098274150593622154300741739000134899378836418046967007004453519480811207270842180892737160105353233089300470781071071820879581617573776649459668476999712049316756031745484130023285770935390753502115009852337774035434162533747115165287336977048910198359904402510670708948476314462558088084274160140504956325741852612818660874300246642868228145926615413095803356445752831218842735976998793661726850783131173566078684484424636518880284820062708206173664292931633686670478646998559564775874379772030825778127687004436923864389923176946307179191423876943661451765566067808904921767841524532140545778416024970284808246038744423725302586220493397282120105679841977455595715625047091189657849352332079848067276305504148400130288293737390426318968812083735521582411243722766929988346157035233906800012945683541344554925840792136960285702349975801226569966560422547253686415196546979824242352380654928329082710631472511161658196825227633107569381331569770821313492850109079244137422868541191142131482286459878310557041486927052459781196818092176102050065714905081726616080083894301764294925646323647396986989688240842092126345788440337931991444942348372155500382925979174195661249624565322114450037821591492633537203295094780680068697354721290122649024062107015038497678569516867947533749627646380510182894361620543049139760961890906695559337456566453567895980086883666004520631756098010076094565022663732262517743062977228354606299725119253286822282804061026322088509629584921051341170560356275856113960786220571824655180165631080403233772262290237969209478430590453976959214881017999826651711956707423720148013681227039276285026511171228464503136544931608874184303318681756204185621353744876951656469375689020228333839894404018417665938380848279135325062959939740357929544036898884937567184306613315411836416277378168104215457617626460200167796701093796305468745684977031692987055146144154184551806256937704637561708464920883335624493707857059368331822365883328774186754253814080598012740707736568582174029211706897050717183975838526635402107184869140136023017207197771194979052746078997732300772084957943899893273994547013388612638686371988435439962722668518975055927791950477904106552238292138397550603643281837036285178632617309260806055458185242152272209399966665434200272891635324116607541772766873402228422230842236082403340849115988389006968405946152448740741104778176180052449055737789018455923560996631201955135336269587709522703667014998762117740684506113120970731096694439790202805241139254604950557538595066358583167213233662966891715584415117963679103488219002290048829406975101903645267262181995123736256335539399125392594749248232426811640757946508191020943254456087162486030907706663046744439632761735129371756339929761773615715165698146308812536493758567720121637748450749892107036677697988920568807940427954872718379539829294737066955527998417315501046116829676196856087634839354906341075010565692095385984540066035944465974706367172125678607869467615298229878501974034259901173839906514136597376620393447202661672900251467704591318385423561664944088446715189721924084700676949778270022727199885026090414317100591057926628029860009283514165074953728050255912150753940665964193300743477422920454755345647064990074503709883227261220694159332589031149621908251654772706992816942106906763058474840320120700897043268286285457028771849280137827572212437910194394739150781906279307655088825839716340107155196710267027410048140350905938418878707541500066568132216231062739273027593491566394228755173724315205496081409500797611258385494188366375948912542664354378501243507103959297613832743154066631738909933039152050462151307159326961775148200085340738820185715720377478529855415423323601173948722345206551960750145562957045739595224704536415902650699986711721035900010854646439746719202609933454371993251848017364557259404992424834635659829560501968582462249923081580740751139134755747296637458096976065823336316179851515353066200935619976322824637355666466721458032035238417518258580420954451293190505851253954313365278843209409560855829687661820104311471391525359247986614450482170959735922330700718697585255722214058152003176285908360317377070001919201273766746384003948203938425217985552765002785991222304859931628386667896620725772649798817467845240715202701355217284174603331769287439555773004428066290309555543293217739891504785770536247631911689637603246763319183163275239377554307194871545324840539916661387001162232113621717250177851368802106625638892324943673602805119577615198593258346572920338211112292575636664169405602212015463829290727758748238540254779759960138187956791294512281689835007512864909250385359277087078500342813291956204280630182401762786437016107456293358100600348368438371596232523525947851861441569782004795345759792878687964760273356929339023158437307271972477633000949703122884358396866646927578774172911322062184003580862324954620504128538913635111329717144348212601753965194501191313065274335235479164871610285131628508727191469204073812906330762177039867473592791668624167894548814173473730657879021979253372785440923963882565437173934300874889400916972325299155315131899294592947984625987407109439318739685013513884455165467788244025454687837559867818013823413515171309084037176016230905096488262062383019654063557809253379338857077332608886677453444537811416625619153636811721597204266008978161711041299478080816010504119521437928543587581498268892764608736971464051472537504877994185953525991983234151689813660288903064119100551988027960281575482347390008963682863899885840839199686869027187244268969136609438625481688802465638550423053808554574584801921833227968791893083491342789050493549188211021636291020020765776883138655871663877335515066495932886366540310820170204656256355914876749789430525563591719432585872466116516341793666703111538095357496427357366461990734867724954996069087115915101265478937716987979525276678799424338120006249272553403070794748819097484336923203766485013442111321585335619764147111314698445098290184033319576678667792368667268803687319001473740841393907983321722195247850242235161023189732191618398210839246146690510776396232079047537947379799454820338973624671357995070694004460896637437967076830480616908306028754230388906065164806735705245817339731944383527013003641416689118849586644597335734421316051694380102227966219948162501197131259217672102094258388151950156427457989818447663500582024494467684465351743335321255947949767654584252531086018130778019498219962044390547540563507224100540277455232385094303949726374718849129113360545590853450049808022293936624737332392962791635131562102024103243705292976742087485312890952315718186177413269353024101639428645990742321898368397326714607231040725720896347340846171094643437172257532015447153206055459004434884005735187884600828682619018234476224552156851456071303331718717248806568968005906303964489635167231279119209261055184945855660798876796970679345546748494445129054035917582377815058029080146181045854729180039876005897949094273237663590586349121679196840198101020898012012337541579792472552717248447260523395317850930372670871442252511466603470579430024839936904658657719419310775873565286527269294861193482106225985082733497859155813725333549666507516654311867166442433844128373433640958744296952984819071301654240978460312503088470996456883955681285471244869640225657684905132393156306108566381397839964874866060384580268170478762339522153193906806390881296974924820021036208485220665780505254798459458448252399782680137159548902862172582963630704645735847635261177750125490035458438356823944684013174288950647043840015669917234503742497981295612018947618937143527507453701675602676360644032999512722538249747573763598880886153276491821742943864698520135318277909232124497000824343534765182903771698776734078149780030475114799916585413685846903673809206387711445999481851542165702363675711668468628560705933096805776058055926054891756721599260021275149458476970062294183776136725524819487933855981655788231435960051523837921333457819471260981354053447830530398134947920312292821554350686074258727767486497161377981451074570560666111460609914849423208091845000040036682291194546066484323740678196824189391747529892559883274800898957015897285539961435536810258152561490552951612748439480902100071109371620079103804704808650436409261663927970468549912215562237543738445271323046011571718198648697265691309054950943879113876702541754128005690986977462507158527042426911888610776225570100459390372764470261888241900630930966479121351851281454151112897944741334686033375334266196534231544545584240305881174193328823343772773135320312035881253169206399118218772366902845761198250821423249944214429337989468518662014951000283423597283060527500085729707568717601788152939588966301437118960821282232094587093341469059748984002053317011374951899908992178571883439098143304628119076292519352495340142805091798118371168155054672746629014901497551425121614793780674645326824236190576249485477965463841536722195832924464249587154464061400466595876956422523958169895113573139769710224766651937607198368294459428283910999256809551626301116195148361602919784188313883046406411316308003421822602545997296958179977225177071172620537223056935826458885094149599392278254035454363266093858312247780822604133946714804680044952229893138117687940591204896517717755009295767485830916657089989375668708541275017644580801028317966914736071761433620849964384784799231187384482013758663052081484457200067919596482373527538580323509018836412115538376830179580438917005982092086842979687369384120527750440405522767057602985956062509052991054307026381379942977898739934146773850659137195545010468882720348678304114740740670174749017465948092443111180534354129787641213847957523262838136305536225546307188747219416397072573505388646201148398117061098655019876944710665041637553229400704438471944917144438383480058561856095421553282073596384220995152612788489462972371486910497498186295056625558502605141682350212238050849567515213584487161899735354443248444074938114295841405486699874433168363997235092368506662367500314872954787687878063626270951885798001316819443443947006064057267347057455655634409315164525134521402459962470112897352926595669803914298575200329730995021991377737564949942397364728490167646153018385335840448283496765297451273879586314098237261778376123951740118702857800991410756551925333033844583285183756984996862310812136426670557419245387256328706969946605934082775900744197924378204671166565726581672634396651189492612165697729555542130832794757438931374543562986580936715252849433050994038094475372885168990698120512183531214128964996397742619658197744071735219135836512413663859775615817324099600516995984721306757667537029658565193630994170573298656026773971717903093611851383215349568952710421467990037649100928054890878564848527750100653489696058314353863133752426042082708351780349181271865162508584235324836331127313250518071801407448110238013880370261925730257044700928460325320513496288207536703015265563864345000769551654887725505841357952997231510222666314498778080543842757490776317642510019105197991772598156840940656540646979539870609684395699152883124354004726807224077560214278868351309925423092858524823536930368411494850859638725052029266173322758665734313402838738916416450290827388529473384958391829338708748572734224977349244614366577288808014044904042114891863502217514359388449262271950548104509764987749908852153250075395732199637003191022896140317204695048091602604993236367161654752618983602232319341457238688627015557180889494835661021064111260192378876398971660966902783985579524162780219022706346212222385169592316223980749856786785257105205216114122542608251937311684043414878078270981430362002669198092887469592336990099418607564872383221439664852901257267277434722784423539083286360442898222712198528168837447897108659085989052204383567118561553526191522192905515966699639843914575719061841125787900824357465907266646584087445130436266322932446230861915138358725550627103152512890900758368507544817499100917651336824716955381858040580953409722392919156798390052471030022798586767099373105806198031200529788984556019793631462599041313247274963209489591693872986215214547726994697158116474637386309213680292620906134428119881683439132304195918498355211423825252608507771570582331566884477612423793391868290640519250513322120021442339295172441889673028730194547561006923411948151010373952422305007140632674749485552670031268594398767846635848334916068758679944838390871048808675335802184025152058554591251830977466656767215088237319868956560878360682288045620386449525330088785529050821422906948328833736633527439783219807156499766910284897990965612811456369370849725307135364323301412706069781605895454344660306411651521088362735933236042373127881265252620762896725698020627986905853007841718549777915719300027139810963944319441587566219000962558086642896586186000433933961683199299304495005521911371737279438761745078302720328172848594280616147015075024771396236413380852110140014993828442219344728340815717737778273054804799575561487743351132724979585787531130110518146618166660756684000372783674216816758739309417126778621011556170863387983329277304649394488617025668385818029196660233897403452885635262397763179230453266742757613379276642876756081365891199151888060357365951136510111757081085389801051658742691703316875934292659979256901749762939321572301959853464934496868507452085011618691284446146300552970250748685573049231514371940854671754114971287874447527574699565330266634233273970365382383703221683708098021226847415780413778508337675500803236836197954617644129933443194618769011857914722593854125404884474935131160602406925245890140185917688190265674811007068482396537448786961152570482975246630985390311135441363549751874567833918463059144714991494369402505772490272637351790408449941770853774380328985717819680260990918529541754862149505499133496418268953800681950333898776273351369966779155655804255889747011102197850990979720651844717898719369777278272143169680169461194639716826327382571867626609475213900446602260504831262206918805587089945703428265293136827238930971157711994400708063457035131263526075923914690207255229299738339661480110093021799707595819303833175014701752314557884682016608776045226365987053921633297826344498283280365183241878803639677334018296299797993986690495668044294403674330655056566958555630977064718133374182849885364951802695116901078460464546077955729817605833961875168443982852797890933827065042224802445891847851601669127251315824281185002411691459557318055648329414668997194862739754104682386072005435397757692043099535648026186196418783680471998149488458049903683001884701922782352092601062886686116710141085614942753421304205373032835203790951122521639666482339910427812669419348912478527672047851476479153329263211749511014202401829586784263094329436781415307906961056751018131137160060585651740889111616244739909607839527406785845477156691219061196288248865643674590981023010043834436475772184192363768648125866111245578880374795716587814823740234417262164165003359655069955627616164610349954006470969783314108657551734322802830946806566444679974275380118548805890850985624773289796325794181998382242526185643948368293720180073875392371546323697390736314017433674445146562870292686458257306208988419812193361876329957679121492010439150126504395783243332838251006651761771664682961111376707000189110631361253648371216175616014485572164062965970689705863696624891300138821323072579701796943892601824741407956245864416073332507363321796874943999927249713254937287926908380753424025422866623584536734183114694656614175752420177475491864156577363607516808446047209097428225054564954574796721051452212094836694328885547491196560635365630426332948965162022020131873322099062197817146608190298540354329939861046282350592838671945833741564127073942422229941232747998697148385341665828517208715764649629442083389079442044231782362798017015622253089665249560227796877346954258029759606037975703903870812653645259744979097914965495093787821306938707594887069868542161552046243125910694545167754920474192631104554794040650667240982847922906184466346895339875548625426504951427924493847955322585920208190372776952703083507299727940649029218188670519490570393550503501249886022617940112264889490814549515538107517728199392009744659834796504945702584335827388834245485254699343048209987883450268306713561429508071615520122201544856222352986080729774024881959787288111432605773034625754567587733226376087552766096735083227581505744569664880236509650934580276602949768954645667058559794800993450466942821697907864216702873028969454882892440844294285838518727876683903472680475301757834140481212373219602174049557215848629653134168465009216816994224139607949606721719586297882084715237398063465028636885063384792694667679897942823431344388447532138851005292452863367639022978722280144703653709857596073461912102831977651934535542263805396400734603276644200940089917878325677880506709664005996288044748919298512389618145135779647793003811215233214891007410148369905968254087399319600787282693391438397362252840542541806287540767070860156991162334132344535683734858453185220819473147804351173688613101795346034817794004426289262124058485540557146373959944681078009077754464115285342604140648387338131845852709201305411788550877123970971281762709656567154096834264720322368947330817668966199829262264637736406394273171137608740759872583035669953548052178319038130606518817049859312310997152050478528651135773309291418924100301727903885395008258207322832521547572673054146183076973762191071608530662113786619011079959273867953225584329107568524595602266357991717153997101610356063459505719121244848653299476276674641336624541775342135190078698409963537003670852107530840485986904215058255873462798288124727198188746438712879097813056326291736393263264022835438489309823829412010811172912795288058886046173832391764244425842686114664429388389500888372612581706224111532698753644787056675271149067956699415192622034335392440674836001816943160088642306751924693013177358956508382755392705128649143582231244959648316761383257568094143564255210994610799474517751047455917551439706696782284344749905350818230291975001431934080045411302278496237810198779809947914734492504728577270891545629933132714828140534104439886064629014923157003199515923349129516828892420836289193695775855770472651483827423976500271583007403898366246321892962086324748127621545184243917758970883075526998582396136822427746694437848320441007388964607307972574143419694276249862113746658510901462235592056679117676767598312057474939691930785537047063660324556936230857740348490165623293978377010115486321081885509597224019743492104381588620932848624455075210517158307738564748021201175936220264700845127557015295034198191065807170302445919888722658388129419424686806178766172753439491301639591201640847804426667192535963695855922971305602501363670215794908548118851820711698429349875991152425410860040653493323223541810164519011932582706379723307904497893919400810035693816147687535635431376922455369283474179809640664588873771931971865541645165597323646286054729027379665867593781711325453476524997324726672312940209696582040576757039430191181476784983794773487680562719217012428670688762286786689195027176080847107678960365126303305990645717715334809732616148649833754555834055178455989628153835328835719458790073881424372388017326276395622255956186285700829850773653849378304957656225440949802752681429240471594420398773319157994135847276599954421400249917835136406803502818717564417500393919282509268604835321211620666158783220806882162261584244494973372267764591607733375127896742023805526769767684749481660338027319736318424371684352319964459768082895091425952797465332295042638002213420976920742625714817334963508109756914596215205740942234278010133103176830353389229157864572841159876401147629281323928089479996943061746428220931390705744955070851169736509340159304655948057717934771754565451049586259773979458237528270235454229617726494497571956636185672738431151606577930171085314834059512854314625955142174894565914322011969732532770986327621054877549216793617316707554021137072847653562799652760379845169439731145092771381101930279080616992796309569821003624282403324283697525584388882719161319581661090912922185975649919229937392101048080273972695862399539013978810281032358847859298175788379735242964340091087975271592944122775374881956411908037997423281585103922614862987100306973732266451624437228809898920411101272887987988035828238276240586373593177381049693799035113607292848512067742731077263941889877637073721859159806438173443755339552107724384980843001037612827488659852241779459817945524575957673715874393878522309147720871033954693860740637351831257566828181093491235454711969949373047553905455199065210533909413515242125301590795074607604069348248374025985939381561989801988398837994315413517527930648288985835530528963341049428139696368693737332427985823447224617212625894919571797590692780356884683078326102703276203924564219226988832870305984904483560697636966879427081208290793696955475474536326494690987013617004676633231469699477611886340103888757703875210355045860677619550244561783038377554894332365524228122845118143907310322486759001632449571378562065953611018989948890157322713414859826816859330107488661731851516889804225194326337216802114369855452749117659944370456381951886060540308267847631968070223846222709541084988088944307992634174754014581756515345279141492815593459265811009957076795630957422701840705676199873486150680175724863641344833844072589514791293187477523108825969420683651660917105879407725854431764760525683642689564886860223550970923140861456020978202039008935814290049517994443845358463527807345744155118777369672565688077897035290046204632695192833067054418683923563102765294215334468420070857814894472169054002680943880667566185482177967012400753480161778820069970225891052806683383086104229158922575951836126681045090884860004191807475541406047351537836467460653029444597741014945579358197792145228425877313019324109133416909210680982490788005393767772605952528917047000736414997295518609232877421330085430051840508644859198624508375270724927274788850028179995000795750285946069155138510611140796566235239714834895233657227495296718776746996198435437807266500893743352269963818651888934479587983983844424289506039453289996087265337917543780493589668753041998106139649640247842377131263971839856099794355776450919919598766309011638615181104937778372046424111079223864241118963826998788398334531885964184223195007141852975296857113932665725320281654680892002826227482011967591118980136303817659064071153612285913057652321512357381057876194244678197920761218511761442792088634078158563713597301874352264338365201918749104100928168029916832072319622070815728911367621198680456947979572977041674581920936045099698287037573620625646695015539222082297403353443163995725017032009545910418608924373877581407130768280010620828708516606864240373675554928977436180773305356535499548311276869828954211546511749012743345417027013828022710631503872904869513566337882546234308345894711038525426312205711375384955122107804527022357258105974617650253600895767546713849741515623274897681705430872504076676236835972258683030470944236871230708251304132552478898611860201161156616213552258913581539224409092480216908092548881414413659028327142893230928828528927076815347073613722906090457060778026896039257082047020320050659627821321370204145267941900228905093587238490172274828641769156893739465827351235753110288685875255798383735286904078302332696451538525715387708118213702515555006453937478744584511629844043832659253697085740805556157369856401901082049423172177672247776126486222535980183766607041611295658999135549564579508598797798922345056553995682799516304036491652122063116991937335789945127725256196173440257254654997236011763568156286662959411898220262942288058457499809051873885795739939628444025284524097436016197624370366808581841756193220506784215519584720980296891443207420032104889656768650939458793860895458615858304792897775133296374129229610303155615616964719323907305325024910331450941932642453416840617573104604077579123028330512225928986501793616366814967993002628231751825741176327391440334810569916994587862618747386313634576761581866197551318304893153523600463833469118889395553345927474343375257953643841960621639455519789257514011331407270935479287289643009509038112493502937865499063853111382145883786289505709602099928574319260314741616548195106295628771216075232775130169707641933622526859063085371119213738932458428363042320053694113108329641703605123432812118435832147635172435712391673457304695132379818277240255397044504831451647907674249466156344930642263123253292031833534133801788426193371605390639772052770823191363708964323310388689672191863077509287679031151506795661611902249091764986547786311753045692780686380734470709697085805786101998117746131574406188824482628688906464716220814335407207294343048606455643997432236433789096025256175092420289567790204523075119585328873654127635944525706165376109138143277844974395322420482226752820540057313559729646133326079562555778683640957656515567801850520669125417952043950871850121029418442239168175687059602181423443116718438586410607805355618390887090691884999619836176507512774348301616422848122460344314159791844688572649414115674237349171067278454268796184282931313093472300668747549745034074618647927179879390592274967918780036331631415429979274125353644110810101064849230039776306176279379305828130201772107050066140228678763007094819078706676957975672405855525170199409577026256489049428710121782388223797982111151804785376498348299472058567127503941630271959931651849815883055823427536567922415331107462971062288140212305237935832738581582921310902757254010016377406241517339336051752613774196621097751761950711335770533083105476938339287665117047499742669566440202631408734384079845614103049234626043359485353629997819903157771702005399713410138515113309813158401793891137437845209264026031234472728294711568135326657229975907853581295179480449608620021098182363573726795756564408510169629328292522256112960295413509623453559290483831639924943598637568653761724250753081335183675009983887491628247310486456962114430596195469821752230728972371565073048350924404624843788975564692803073403492916347483069165084691434499690026080013553241525909380241854383541610835946677344502545604622724506632865016998941808968985412031306090644383441442081826192576576754711475653052362487628391932818968581998457874121799862794894173562254204597245112825377041547216882166440954583919410280124002230609326348412872029895032605285430649881339934981851143485569317167881040689568976611964624779798864585895397416944554413692088424887094153236538666692952353179560670855569697737953752450363359912274441693378842025105425547907785341005417588000723892950296872257013280648927660432258339999466793172904718182059914057698941724564656317063363896307547190216133163072404461966711934954305941080730239286133405403553539751966496140823838069118103776668282112716978336397188947402709243315236796094656657704402509783449512945072849689446447117622512405103858117305345784348650618642022890523050450865992339617582323007307069908544221560405402735693981790480293391674576398969813547128780740839554008597858601282797406039888057737827364585424884026560446546889577609464906450486073678446090589657345472891025751575915482994995626247804961128341782326026830280609028119173960144167851531573795483704222005055681362969255785510921142275351293322765264852671857698542783272185070948345426429735374298380547101178787816278486741585772698433921388919995006197504660075983931996577075958167821483974092219306822491971086598269714711543073583507380355280892043479722117205189504958579008417724534127174904230775920998783243017975253127568931845211175946010611868274115160074520073143568650869330669756945327813720997148642338009610179043777070097701304729976086015103976683762680810113925266836071411767466804484439840291268868912224574737790782766584508702651171241631723886461568462498911156085561078501090509594770114674783663056486785716540746973739714358732622927590420838930293105128412083681190992036304848591572861062590759355081797527378610677064516520235647047710000381691389848962362226373489976481209264186610277076192939162501107587039240423355520484994546180149533494084769095730761941026973526562562475582001539387451178346058491561419828308780916452672406728057016025185483070648613453707782479186141073687332685160708618239145969659323894848181238555036100142346191161441375078580738881067524434955079211131802859395677063420127331943359630010340156570859212518308745959403796255697597364464221821558034180694055100450285148469834227624366454926119829091809109235858273163234698065930955468137771225145085604633364794924588751405570835738506257510263873668908621485650412934729959374892946768418692182447813298786734765622240809198568423721054609031791192933837095946833744862019116133439964759251353261753730951201836638559889529176697974889965200131969073168399221628456277582701903445468438993316057988212425764964049352551914844590009387086011560715600925103527377789462604065782916360526992546945522905697696810611338618010552983846401383290776661532550579473537123495758674658434275243166817743108533323370320493412680746341149392181127293592130928868811880029993497313200413349637247954838892209541011294456505924331193144573864120598040144881698255148390920534427779040856294429253277353335919735496755943600028104334268549808323894210553887390008983432569455365682156038738080824502994708612810382178553037628420384296773411083705576336652374069465067982247856282998718715141548641912783576921410559375776968439882998853379398755371947252466761172183243694224412127148271082129718038342250916799999090717469809596815977001034334613510832845501323399161800146478539734887296019262357534783131461707064195440014548399537342209699779997421943895573859639451079629788031166324831593120141643459502509357901295755169447960905529438029779828900612604703334618454150168684343023640835148966396012653764751093134332123832138871265211818404814538260930412516634910086646356451180978787468076046068662442351604924555748345833133623941726976373878422986181006530376926044624668525161745376369963530879887053298404046466978344110985777672585782731048930832611618412865443152721006998685326124433019636762615603557276628279238406438566318334931051559489368101244915135889817297635960195413442356204584719476124815133409128226695375879000618665418458461287978845825774105784750674367460512463383449249541344327657184725739093125733957320641684537787869630348049406323598017220971506159363720056562687245083095085597541449480787545059572910808817205094910802791642367638572759872378159911370076050554037392597278658975689964059541469646482721489761703413025174177951173746847939869332356411864749523016754369052925894921523041526308510951855880827162960293781284765843954395363767783407130499943841478958197755976409784231038625458236601837298030490363884303035731898448235781871526523194257499225133016226772136602939795444892613096066307317380678099629353804593951123283943484944560606360366941734900085997157013418093211029631934267335979650532832735245869539897085961678950076667878276665130379191823128044399375310039536817370018369564122552485266246860208731776393903463480736473564631855341612438684924245648826013558470698837931543683555204401358884238053662947804534040913956644835229056262518349661621699090064134463356142571071049464833222520348999591257426475719245928492505086308311357912135927440469838340933390144946390444273928922694731282221589802150163072240572975249403513349861497982969488838110632390807220500897449227599805305458385842814580960656515657584921042250895681989062955856123020268880977968113298176508055781434254375111374135489223399904331924402094790442150443481834257616960018536782062027980599178326149877665021988718916861707327986470996838076441375670306686270737779195262591201461658458062527928576513764570990275215735104573853039134197517947471189577807698434888951977805486937785604634074776685478597137064059305190157354757909240665742199802996815023836650422753583143912547174073287853929608861163356435567402434157058139999996051020899462316361872362749669085063136469432779362002513103069782849753868175722801653560394999443396206834179142722709179033225483862900198434811362633418215866072316817696812970950103070722998724289240593867744086075373788446933780777322520414030148607440687341374973353005400844429028557662070584037799769722013518665027490335444848896963763305785820791578095955877659397391698816055171267663441060247365379562486146250663200223973083237923753398203409310506231706648238671766831216988142647363593243376696429168588454771064966496257760222192363329557041215704445295165731133511388886314678838319731680017701742371542062770095722557948653978112112108111157092216028986686350399866743866502751166948293793431749632803699178285666682315556164253451163403594052102089819377600844426125995346370821718895707070800801052747934236323224425950464412006614632750089583791067083070548702205863795254949260116755515406831028319311533567089639337711087830578228285862725636316099129253583098134218732143247928434800115120915771131769932908666397973582768972301007662005497006889491918243072041577158241992268636499164874444898766384421451377879779349343053365507496497413371052234095629250966802535456712358905778809030951839814419131294635524258662563988214459579407430534003843797680884575635930041816301635400573629255139167341625647977474531335825236877711468679433163087465886167942889679908649723700827365000428723367564704229670468179153698367434037640252833146257536164626436105814885989170163248817865683153961363619917990575260697972310578004405500582180193989330278642568158070633974780065785533756008054579905241173420666266592347605959413427196597958000621318871864613908069184133139915708484837631761767725634384694302503936811840899059765958489300998054844047395610496498480362547179458135622288551813919136884869646152532658886413693006515543974531981373785351175905680056427538766213189616286130271222302758972103788186433976868053673342266062753183789625567391635279717595969400859559541219182916174603403413360531974052593089096243830360136702000371614345331623730008449795909816144441054686191841319712642146428250390207862772249866285262308700206565076256642822774676569857811793899464523707534724946585254110711374404753613143891331754168261229818749863221189378036366962862028345044005925433611261591235165584271127180414729526053763299539870462984214205220809292014306204491475684772770145517428935562944129144496872552053640230552090516862629781717906120463179610799508594157180605348947989116693497592288322744970386110240043912481445878198040257752938618255261846505643051566818289090917075748515885852847809281230413848119499993645518507511920462061474041149906611660612781680706502170795824473282726796858228787308929795253776036318798631684384863659359718346939441480374423250783599498938433997083224312088475517690241257506393745235570114449246374950432570175717367361087266119705085626502522796684528348699764778647985781151762025899264319088648226129501302550948431479056542188657560948741265437937051235961307217201130078869465075255776347121213511814696894133278758892673478847275339722933857055771468729118027945633813107040321044230896423373868917907549258635372689305946875707370181629421865034446676135637022382852295664146320390588386206976204010684857220014470075151819138194660500421315899308032233318625527415536854064705176368275913513824485553819587818544991280549782153314544897922066122931130109046674769399972034009457086869916564749332961214013735906927434784522093446160221215169347821200383705970984520060168699770331044996637354164497543458414766529928558385860040700108135889217229721046930212120267964032058249840585811900953812434508322800328926707113404966192067307606262214656606116778939337008428385433659057685543019165748986048108188062434473515911407895639494080865545549960562925953737391798178499428751463182702644608983905839432010010265996972241269965036373139832069098497563429650270406701272414869528970620181094023547763333394777806177802026904948774357781964746160577942445464525056602980576539297670773411761666704236586722697096831861770829755347246032697295118593741427686206504141337677794904778447407435718999493606791246456654788126900701029897018188467866675184866582223510121195269330478308730800463764382745534169220223238256282252401302537186542671242054521460035098079018869835770097738377686418472264269653221271971512599516262363558722969433935954631675756738407623091213071950359039470388832903148515534847269538808837307832107056483925669410170097435853587966908724210293818970701705809727916682240218915909422971927291601025873827283763053671356264540886134565703657116447948487463967097836042744739311916499216076343800020298671701210375376807702470016095595624961390888807393154964332067697527601469442876175529842773550822913711912870106764685651349426420050059887235929439356650266243387008159265735060869681294398751535338319285465536675094265357451417789247657343128396464117132798962750305095235436874490860417870320678071041403435299870505616816172571791217221573342450296799614112234592628597836548494362925564159388920504814948726688268809626766232192673837983420759075054361490004887820917654220756080124645075506238232232076675313854486942745943602221831233742589448701528937997862308768041700893801875826617411428362663474995608368937446245994985345412016295928578448856667594157629920536000575967263157058161496791523711643660789143409573489938982639682786318602379022541568648272728018972510646889134272076923887583308302023810212507128615006985285840793278845975700192694291781312286844473143498984837914517162851709568133648236096067472045309669468188907913708117860013494594952905610768643136609665074067497104248942376861617919347802239362731824025060874314556661379989958978250473731885342703617884318636715694726327085352042173981467143719886699704509505690668192074819354233058878331931647885119272240570655673521793204019895314674435461823541253794745912515679084402315603654013367121075296142146888115764798511930089015179097060782548341022569910409104970536187886312137862103290759642852055096998599186595010692772568362774144741187297051088575893670740174886468033758118739483744443701140169215182223434069336542828516782253910876462805248679571837716586102517734896401535350042441686929312485487272351831827983040157227990435232500147831502580572033642871326223656679196392300600321874535237498603913589647008167688520418636734289735944381366637006821991012034516305767560776046449141620241038894480422310587697949062145294338139893579258084324037748085812983476177276029597750216463499478042782030394824236989258281115162327260302846386218567395642163617427808628265844439246755204677407831229645667322088059425172257511410154728548209627999645717107792919529917678071610867824743863890725753916673920128658268563697852320514676850009893260519490809704729632426725058802164598274372309504550244852033421531182313007035223753932085297899254398504186215977146970490610074036246938552067221440682833408882195156273861095008129741940139789302562349858151044783563900796007846504703089765477933306206847263007923365434825596143907764489530783726094229885775521366826535170295312247940840936092683035309180077532188358557151784883954635643611300965551014681831914551601639579566789304764679503512756436728382437451527546485353902886330892359644395842000838796298681267748731097097932047781930729953457378406085484374028226907531575496719049607111151990564567202087933233963954832850456261485739958098584890691168587311980746654835199008499066816497340564679505813063183030295041301112985980206696136060927635262414995331166239017471975638311827414996156649476158302431584585685571414651167954985606396039335721245446531739668589543213204195340653180262858155846501674569833861892353930918847264003543628954431932069353507867313626251995268237701855339727656227230506159085847139549655227925061728136186104733007420643158225588891077576984255529943098734558628235018629324211048319598574136477815801067085188405003296306271160971906631139405649649703918063541664058987986592321534503909897271075384307923859110645107409395136410465380171680530735605633263666398510198866991840279517076312419918737408377746403640510092825342353123194153659260772998627436125639671959741475198231683170890394782655371225515621501258973427359311904334825101407628284979630565104903044543158847221898948867282498643894274248023106304457068303531218269787988639004492113826618732904432439243294254641540947192764818110964205962775400534477701932427273828320014494331755257895697899014294770636368908817393623359328177604320059140709564503826633499399262087058091250328241846638615274920067209215551261405047219386589749072608866615812025986021525664588305054537937982959082606226569582630037284261354768471432298484626144354990960162650472773704658991446557276308494883419993494009582979432267404119451454156252823550843513128805587934805703814155426798295679401715382272040684533506928741139347319247230259408088071392538184587668174867921020153643529313268963442264136043823934461516747344532396257776610579999190964742507730698840256339300245463350116357636521460270524574573127905175297940226238898770833178301007591410313972218764433866366704446370676652005385446662774800966059387774169628832973734006353406975063737869888630210706498266702000808727672433096173675519761209085840685059349133717653071616864680705963219255466665147667290025946049593336152714461807651928101085356093288666911915265328541311964200084035572216698122033811142590820499514203380854761981692316917080345885504523857854929124179250648752304496241319385575870325106907176948759408754456000113635805162985396998470416210980861882434540681506048107489463128815375202609801678857716489046464509644191752930754979016879586687200594858281718665016145174895244711760616932827244953140144297002122571456669382988504058705299556845471207965013396810370218034899946143467700830775220724477671797188849771050834528379058158940228552339086489159333195260381583705041179309638762030958476482976851411681766512092232489433898836504008093821064201978243627831277331763504941073797395633444175785023955969613730576666063727823727363668020788532144212608806638078417394918941644751814986214130091683543748600345137490889073612832220162514891629163445288005854102053648522731861646176065700611406452819609697650493036073233453913210784179417599356738386735525022370730720665444249659476738085231273190705483248935076650199373849645141932308105084005766301915748850374238623786643159740579473235490807101167994983814215038106462215900917320318874591853376433558051185662334383244746194816763871533472258471988040435247371718316799691553191137272365707909906690309094219580316956262302992566888209825341989546526209324675202220575457797486541993930281550805411522032189011469036225304224748796078305683724067793574463140735313973142819375187799217478930918960184220688810114087741368591784184730704652765176707981079570022746226388410620043054385927569908746982669865330877478619732481251227864247009857314798631851705640960289446315616705061935557381557595171028240750696142568957938118970170720304971811324104540992622929015267994227609199831020713650664070642344711517293467894194581328826093753322900098800470415160719090824738794223708376130196172941618007988923809171232393971866221445331427681841217290391803294371686599775549326339579779451635654155807105045632078784440827556306459402014808025118299539663143408802434356844050528152367094871482032709265331867564433257503151770728795267210097539065850557547832811139644464432290082978714839665094074407825015458160253772811895054423783124049614039386663634151782709000268055056700596583094445858399380481088396542434231047550387938303271792169990979498725470697935562175587914328330747953708204883076447541181663747861745025532089805417833986373044682205049524144868347632381982409752288520089819292307787389127275255873078950389222424720848545636247845700002709729051523149781898625644761020559704609170782276235551668720175773980407264318150870745063555247007254016093169308559117456944007813739222787098878498962122437132400031557517209665250748903168125822817280265725939840857651375590129001645618588197906168584137118443346266445804861883784296621642911202236320336915307505808691369140111053551400178261253740518254341403093267332942299602217236396672270940463075949962059738452682881352888657559954075266999905604788340426839666990415876726734939506865649280758435011411790542247901125626893634699603362726031292393761087056998048610178929261003929748927276529546443346529506947196387267877606282006148490227104283298602980313390504432554913614852716976685416329816872652000903959276657732422560800965874918943652696463702800970716467416970269962308350772460889315755348415854280679708559374662899492385531326219374975750991551392521421204056299537952037739991255168500152039750529368896875003892892796866609860065581611324771578094980198170815276671676494249363924084315794463270229482190418465978567422406596032197126431452660968583693318757058080711219325503342268749285765242748432266542101864521314233243225125383911721784446370087428932660438927317630312540768271862877043924325325730870567953869826565331577906634575011630852985158724222808444888826078858892586903336411149817622638748028520395478357203956532345598645575362181058052138183828367766964063292205103548825782620604934954412853262458742276627010271320307375340388837080198630334786918303344346426604038675437287792977003229862313169362641557998055273459335377413501520578923749174757601136213121363751764704578313168562126044585135056133121940801129097579265576679462937383190161725808197152243208480365885870380704076383411782802345562597578037342383844164254798649027430015246380745758644494112936660699087040899251338833607276734798163043153250519418642228690559812651428965403761048550226810338203210835043392068963294867269738233922801296114316845038238590424884516162745346918203718273357852646407925610246404990613702489643054351950191075783094785235911842565324251192028710054777205085981351030845888532034605993127764905832467379811519336342718595192677515999282221304735712926554107299681494482603798674244012427065295796006968073748601635217918265458940079704710859504648430026640523993657249848965046070940989622953928312129864154304606371045505541167435045486925951970988625748208295841097693796482330299965276957440784676753429982065950524236848310945114425788915785298226075647161226193706669289906544727379738509082183429074305585246726352139843860234855707514554912786714507043281654920003480380456636553903697653101263623817440367561852064790844907450931255900695444847067835122483925212069432795857953583178098757037192851504848379759713362507185738217302679116479948033101935560759010826537237417469096200589671389404937662256501328602534371719873435507861131496186182125034389174595845025968660007727187746039285516297834365672568448004180745038373904285295191091340495442880019592346272506155198530881777023897479167254333986611622895702428259999399197805864091032357714872460473503414058338142151001993137490554326308481801623740599831807577288744454795805449735944105281367694308348701599171170724556028365771592954156674457368334480111999951209442898067250698346226905280867879950074196632579486839398363099828509076582146128479650162979902753870840541371385807194518653420232235044265748489069750384369708591715701045811615775316290620084183246545539042454695651673877529572283672964878200503687039208299759962887639081721040220074814849255295353108838959592466335099732184567769812653026683628804905653316555469458793632232458681752923902714301275091424624238650913070290580258329456016449492445638812495362822732761628669238311511516656083769549758883704607461655902923861296593154195849775791742713631321027827337542873034349711035813275785553700707338613343065636756760632342125545635469438983867053414621157226912478471822737073372323947706421357388756990470864593917866339261000707930876222554919320599277277412511034614778577466833709130791938248907881709955893797550786707150167659156015093643005035947665651550322809537327994087741638101083816910889020534665678820093202276203669176184080311116519250841322520378008340788857639075666426269238272825604705770846386126807806253760565839928996646987629663294908497273352431498549379098420393973781603532317537837369502261082358904491465641678963172123884421478940878212486327130859649442373532610726013566055247327587195922241930357852065773116615155586667607200329495033998873323544770545648538042145163403045070736561638173023691456603526249858415435142426496596686484274062633381317768909251642212728013582373788103514891769333329787390345498617638332980383484320303239935871091868567839568760792239916519455747857920386338389421442965171584749997399833292102568611110953137351985608103032546326857532403425311793139705005618696319238939661911098711252212111958294337055436463051045712293368031289815662174042027646602658065886032123838207086077626054079729935161291452621924322318655197668113144325894456503156089732300627882223221917342127582383338293643387185889637287477865841440210061552988132719544902087871684024431246907488089594132016426484184908062148992650160387377786816990978741378770822006840405072294627110887871175521037772552523899568583952781386518651603951409690337085478082986472190016520505635655904446082924267007990752030743175450548233253154505200296941356112222511292793918417295038942690058758555994642252713190505839104187296159592259173327554723699043446101014349444349281764416838102177904271949157945083877681834400480928007122982911588288717108701770305742459773015501770326226882039513823740772265945245350023030847010405763629571281207416872694407202974774742124153767775186944207511538669383500489352934287418915066520978198091568705288386113453550283189099779185089620668359659029652608694634908431242242776672324388700574231274641625748115061038967276738107861329736201693310427638810492303944895387735300605290149582553938976288215432861433259530768123461410668523638084141023301103978087188243772253534904156623053914505534101883136989742223409537108753315231471821161353272883480984569835980509279015562281650579666235197271392952355281396198642387642193493465657149376430085968323604123735328879408605766891462871134887714538574490179437831046579526210803664146658690145320974903207466544026339697014036609083377309726363204345591039435451918805790211488512219507129592958076695394163780227639393032091015464709619193278523265020790326615634064954789264532453095642725749356747650589821918116985136114763741510426715544844647587779886343684518949832948954491003760467783501756352440976587361365444923671200319558875452920096995998347551505218408567992567284278819577485339391460413109726166132202735580725556528552483443318822047296852658967151105520256140402085251511321030049093546185680974891649436447044467367843861742657259820635159590972794586455158072895297726263039767128769007292402360416739673949931328637446711213064749560517823653087236454232918448957653760444974309752573353000875537492859813195917034424479043319565652025335334287131751982082544548137082923892522678922698693361814746028702778347868787541830873158570811090155577247436797541273244221495800794325874747077908422193854310655431877117679515501734267403885008956765767122191174317215618253801286146375762061831377997359320834656868026073462338951284135889793028234246774658830937113281321917100544108298529178550621702561616281799862541039561142115633488866896233797968177766531302425245107928347683352610804255617212360967413565559322070320730192579974252584052015300592173165161193058801539390595396957651622267403357240615555604585684268013086204219846527112080349328138961282580047285332948801471507572789314680027941332021726144372753603845219207472965181515260437295470855106968161063568804976095502062705111410959270348499815274136782239924364880323501696303005483524906823274477125227885546873059498938209515980622098044616229731368173244075762426891626268130776431866788748754477120132826174097416899281203909529280489518836568036475234222364829351095888808181057553371497550879449242334695784895780776385997310678622219061200133077076241159060673971063638230249617175264343031830444293662001102139726928652620682150512977072592983030755019914701441569283201221665459790309298663651883500886620795765997080574471688330029389996237673023431094746020962141773692983830790425121283097564587729008725646146936859525906280345372326767387709488921613341187319050976216838421471296406369021421688748351015921840598342989363083455520382315414333893322989146585912676055950898007051633485264722112667077295745568174438665490657632979255192858034338702899199165716575070928691274886321533879472894153514411325412639727236574574988631159520709891848526723676141671559692408014229448956625951661109572233739752003398472087133285203763998091003779616406047195299269469091066684693145407955624631506249258029565626905255776970400725134250647167388446559867530350304143496421953571447008886549897546154935049666114193734767199720135180837169636005832430057367404645841936482283204259194730023581507617027350540495960899677901260121913107170170873656511100423465900112961814532263600407131320025081095324686305479710893407446698884635857598120736200560340280805204340587780815593712464884417109876082667075235854946380810962869063266670437626829100798680293800136523952607238186257771797601393362197042359769248281906395269390978873952452764721713123187233294968277307597177924337769356264293343395012173096968476140481325284178946698413081476358227146628705427222616882479057484743094681244601699034088380333469382885281554272534019085408366258362662817684934351734420023700280800800461282675931851402309411929686296894052374897916921522754923484718566715562518543274390613713544874484238478462037461824274485764143635345506756151674495386573173311850017848330507997417412887945482835675464704965213916470456421688887753972556131531242888258451845155378665827707478699796620029731098122007816050168200506582224482660260561023115302878826411090042409898633171777768622502726455872417938701372045239681241368670193007284085795618123782516260331507874282763795486253375050002761075227573826325775075881014771830653020839658941662274621203382169364594525040384788734639584256588862194861696815010623899874103493309562065112341593741638085176279364817138536271758508922883499436753790931629797947399760092993929047176245272998002299799834117075030235563271606684885021974774658765446096940027205729868820300679886682126662379610822434357453701777916087382525978372044923301296764366567322071274872223577952689039806050987186748352826506735870180233082331766977030279747106578025375808535084925090171648086951274825756081297242262918625317421655904594206719045746761581509599327489851282926345404185095902296436313857750605086642589080479543961436000819637531649165786643796081958314744984970221989030121341572347719979900636693719982313931254671920286507155393574883761841218956260001233167264848187928850765024959225866316121310932604263988660840936440070240616501056300665484374427867578777475046845260569482533217406355807031656118409243107804892414866553322012941090927905463899325533088367785942952562715615321053632799272055937696353384627961955030057341968252065890368381837163471084004043765932550455186967116418601769457390858003888146881807383116124728783869947463231792261508404658221189492700583343693048662923473135990925416229970942169705863480101195032980604596761184378761040535436033627682197312007600444277592165060247783501949799004307840384666377445017057184821794316901901795639259125071410979947070983001833794761140595778614391479270560761889344349264949577076437157098537957511387357301905975841002360877479869743890256957884206304336250106701385976189049241215885868905488626514518462852147261734072078816760336268985711348389547638137810878296040195453796907858793196045663508997204666797372547901774199926657767351025720640995404132233024890573326889236060066339791067483247663185078968926008226988291785874808506647554728737612142812752921229444875405933737645364535086999143203597975102683015798989668435026387021465921528182744236205174496795101767772171342033375605202722761865874218733627544832720089801165368549998652763807545914742496539481546188426172281791401336095666196749607971876966636601109063869380341177937018570286502653474540010824243663263770588943346037449335998071337001762920463633892891778779290833373717038722419716123924543748729586865113941747689605823086804813110031603316394264167235248386070158969101577441313847963930536674189164093343246263044813798188263748091800711779298041073802635680443762018807298108075645073581186561996065327784960276902705922500673152680428692767859853817725678102139164551352334044724734825756241570834561166334224578335878854349697777627925850393294109228874182566578050410514117673372929957236265628173918838303247453642130874591860224620383150429471481312632208491889765651181631588138029583880853797111774708259649986922928931086125549051512039426743751943977067569882294267699715761992593207542768700369666386358581486725469672114606351795714687963610233522277272384943142264465910768767471826170456884167471008610357767683884080421160101392030862934711574315255036491491337702532336351647093419588054834926588957105508755414933784493644952917492811460852403521092695561374048676849775028242196353969452158666273569030142255418597081964337794813766660457925793957544903358882110145086814693426868163468497689078418776970615149863857364660529606512105286488469791235766668419870083331750753862579624629525424451250679957105734361787089911377179060512989057815558514191147180422826133536035481203592123413324357100149394701614991138058208516450485450221732796644639185419237514241016619714158563862360764456000001351571604952222406324854817007343466066611081818645375122145675060225569599573866077617543366073101768955942651914088034921809991172105143641458102562176079787166197875454744619023037279812550840158876691903221512600761565551332641611132906121008286903487892876427354506212675988951741160608729399419364547811568990635226807831695067323814999475054500498683899631867857542660117312229071530369861668669084613066478654097069660714444960538116078584237969740555708004767547432005621758939978703464705558810993458243725373463676591918685511000535517193007628395475076986653534363742426949550113856013317873893200943704844432351317758456452034359896628570892717683331556256135909703866309219894705419221029076329853365312929298449444907837358735741124050984045610471143198110009657223379837677399237412802345753723322575346351170702388265733437874719233954170170905002141233379918522653590237370974872837446375642522292394980481207883248881863928694055553680227435617183401254059377402431781066094348944922875168960508671491882094222174965614113915889497714278888765716755833348624868911987304532848130128721099722523030383647887850022848072102101252387287681621095320276244279568305865639746999309910085795973889944073608888263359293277018023855484565559453257425386253645188684715584485484742719618831646433947492597975602119858438970779368241389085046905792899578254324438318733315270456821484566265582227738135881971947708518291331684211048217770787978286374313729996071356967474316849374667550675180610311189991295902808000866551766979003201818472498047169591025848437935504899864711395114218198716721345267628123688411663128188942217774696655793641597779743269940500996896917000471911788165337239855937320225263903139865670394756700196174109683267896977136402852246158899485580056744406849067277011426884396881226868233471599893272014516837786615061682541635903872943698156863121660691633696176423226406727924930459132196176683887999372261995964192427839377404637250445873301164742883586067550785287368651305096044017566379804269647781177658024543888538118490178098356860901676232140908197729520632885106074269065348961777171431919042368568903851694117854232211924404137578462063487944680803358350308974560141945046240359488648111366641421776578041935457252972884703555315424054631657967972385068675865339802814578401692901649853436598796837166729378223920711901759804014499666894456605410632699477128729074969242711456327209672234004339235371488155141666025283403075901666666043132645512783585628280937154729967614455459329138421330037521189694817070832787899099191130744990870195359464894761929347023194460457888831297124607417939562940392230996245278345688624469520930048331059366704228624783584155561541792263606552585075183492243212764016850202210750550510117207610966508114534319647282954244008869190101380982329947606594022076343059028719450834300054804879686569808909651111090721554743036143366040143229760093805050905197103108536964957631576339866829525052692689131777025964212151427964094751387102557493820780038510982343248695886374434152199951982197232264909284704764176991483642407433605280148379385517317278692379319097908730463012887993577588366662916016974898461743337158982381427511483847285258766887412259782294156545584840123274992913792442576369670994182648714632925782617466973841805258120597260561888040728331102686334560414564744780708007260047413897826864469022188989940692181105447346175221264177411409795005595855126325013250059284883379446568217424787078653382934447197848969300905611442625419227357723398876046935660768407924946208409270503348254858750317894417131250209907294770822486651589284220209906555256179486086815097474063394755065071626531990651417917750876645165182419021250358379236651903073549446040846821342851011858971669173343307959256502737533999139213724911562447225574173663770637432295295711504508297957140739353537424632569304216607721281392784112759582531157135091993067427738011632961251780277561240551887090377811885723302615614481649720043745190577033202464535052618581822043234957773430023081762712941189377703709063383841449911036788244155994985408973639539898075160779656481983415466690791560561564732461803376198722272366502006884418189296189984821062887669413813908187987353088606436091721286821910772050077861775901129974748912536167134357097795529692744389369263280140907278022514991504998408281138046961817210683604705678461872039938351350382747355302623666624982008184655771273295067024576735880895821713746551069811188512875436365754875924861755898517023092236548201536503261624471139691729989066391612498894347569425616770313049023747020575785916658868722925420405419823013570081715123022201817167154337203915187641079887131196718980231438586119056695020637072233718282624450578810281666203486079879555190316579709711315292417023682752967558895861975540339480570448654936711980730508966150900243779504920825825986387252017117586384536548297763228873208268063038170970400354165099332420278799145031930904638911409205522882510247888398294582063511606691543077823361154056427459554597048358320700903649592826958914320328234625228613651108989292177043462638617929174311655018013060393844156978396260140545755333576721685535989314113370335894431571266188354880736738788536189903511595259677118094242431558052572383433485392186326725359617562447092086369512120333857021265577851103084753569647196078456179690468823840034580064282309436887725938808990098054501799313932428520723687215529528320186420337609774459289290305578723704257237464122626793671792438295756033921917239238091719864696057539051533208195944230899071386287968743424116382328496551290820005569688769656040208815941275403288874293573887418523806622878137619004907488311326870478504517245618564527015729145900449968043535215699629787849899104364978225206106047932497471557794443445634515574801885071155782020165478017973146189495865041614387357192262419515772461983859416613110309293349192927311206201307559917081662028375027561586466168145953400382254094775208665241477321007612127808158684010723374585762089297935083951969394307361013497279114455078455406213383988461279090342775663412126515877875008088121026261940455068790881778658030694465690181576570964576871544309310459900343485885206762765495679668667453742733132336260588362512317925291341159655048792951927131703520061499105220085562459625077852276588342114016374809385591072831600387977406607551293075403556465123973708822484628971164274494681446720889801864816165263999872481205609669536744526129936039403897915604606859267961325741773852003814202008166897782205595554513779914773858832264808031490775475968721335796193710577042826346714471774055519169736700627007700982256842863150565724954125459030720285616026563072123979440471237654848080492152581558928308577159218890491289663206447375378649354372359867150645671159584735209137100887680046502955624215449305782815161315574913484510837290974259589707286638546940868106785411775842120012058587723031317896982898338903359920018592849187684475160880062018157549303664341771905784953170603217452754744043933671990763626991396538192831615477968243821858786712315897261303803932553133210507371296299042115822988491675264172509263443159851541085963362147369635855745100512379424452452939141910510355019608827344836234473330016562835447401091437564529075546074930774440344063526161290458561263220034381384362510887101698101746317514888753305281817314621892275836244586912065337673308971869285819195987519660488094162611519454447692621648427937314065903341668294744390696398283182184836579768112847778867625729276313430721068307994645942245056324790409528458497569428741914162752515109605713307065233626745476786486576810834358276966713614426883778406331265699382873509503902526647462226426641502343392545670395317523858614802740608847588596386977864400518071434089920719434857124765543513967866567364112703946239284115222070334746065605128505871460031843833044409820249653477943469497062416297747015312311788054811604101967863262551835460703788584395714601038068782610545356976965467528190269116200221149998892271198544578209147079871916982068293123461555111356419645569970316907668463094087785353564987975088298606424852152585335648706626435259946405957113886647819692578928054439471350869018617249745883604173284313172609957037056390023742280651066474381572226839106147570661597696854503247796179902388497764799988487417591568651833428149563592022619735702441993087935157892587602723321783932412543830439572057302841206589964818802988627359757309621110909069234842895709679702551030445686997939252829257830746950371312460519983786269031323527820847915513127510674180002668766823002553646271459452556161155487353266465045982878161970138079027313305723451161332788909908123803185190198092554976023961485567941909214752994056907913303983323709834078391582898138534490061627650954429912834464909586519740614208043977592196768327340261560192528202200969715265205949969317009579343164113219886032018241235174341625806841709192916001880989233202664878664241115350609995469841283885030856874692348117942919930102234757207431093654362519007112250497551399165218721266875423561941322069062366887214294810747712922807882627917691545687243654907062888463613500874975599764361242621088831377876625024512840759893345452015078340130764158773207336770343714039302322214385871540263837678514682365743967761141013951820390611268842833876900752687957412987364915785709845680230141624152946843218281063000227666695665373014635634689181247710992974135623955398133981888345509620076065329067897678774423806545341599885136694286585603176522341164094391200728677152560265418675762294634655007075886361990964529239311994221251427055846106790735492603224225821313674741207940959171752303603334485754286113511982165932058729515797692029194245756851534496171393153105757309708996058398775066340251295092460761451475714271677560463290290584611408463403951643659173676094445802596673157092634913890535204547259020925031230922181318097497293062305378621740228310995969641849357963611018365098484402153884266959101062729219523058472221653654341915746873551986092020990561479828242527473760998878955831161295090350944354155572117492795509182868145873333028849052170848235325743587824263710576199115147142327609261804663048186177098242976196216162009667532033353184345878033861741044650477468538056882840551559812876123865856852646464438551658749703565931544312952051862933553999846065117780223688478220599647829401480630804809136986151804480281470701936079499155771471191635774362375275921187776768734805197783644753188395141269440056801910926577091823304029621244155118425105410148582798062500566341255191692124058280200083322486635242636899867213763168337277565075616251784697596572032537358816141461463558295911057092383104672578181861909175149556294876490129800548515404029784771856189248671164850068753519544940968023876511293793135934450337794346690191127303955946514762261250686518900978357928327887890418551315236506858751033644957415480179257395233504626341248876416036542617938798003867764375199368114971706545150986183610900976664494608146684934065683644391110423382141237081990251196534962885056683997159263296831307594794904980996483587299332433060425373934071456886398822101689416651681272586629992985450212177102089046182170715381381750971530809945547554555604117722300564682635406843345884891578308622312458789210468106055740568775548491566137171119336719075855155218269032949032125020504472647949728783957196658186912467833704198747623464595003656371270865498269687338639869355139409007689092406328693960989031821327895664432785521768823765046045758467910739974787129076915655477503122836868742398118523957272817858912935584015237377636508583795635726899798411115857717231194523852335394351806584934233459030418667437983843533447604772691689286332784384407219934201127230564236103491801936045053787993886694567040927752674067296425125691014413672158451760118099775972986310484669545365793172416594233796669062783055640172521452388376083995566045295127700071971906888246975353039853076466649855045880952153929185352690807181655045610146258145340668523277883758528938727213388590928683480533585178662445372690297306679156713914275589089705827889155781665732345483439065217237967826349336540237463373300727525377527299904003556300422604160480451597077787946540880351796146408891722547291646889466716599955014848769936875514185173001218673955884376661954358180405599395916989845086421280010953246320521416971825878367806664628115452882697450097781510490527871809792353265888429400435566512997928338003595024079900746711079887929390061905488144498954820431490064340892911328887791132239086574964014225287075236874258971269351406768072273884727632938041812103001601814320332550305825358674978300905842027956099491516588005654224668847098565573976718107716749809523480508327371227670389129889024200366359216873376873861304067417889038678013079280150826663677566198866436986223683261402554570820182975441809636835541783602161273613162502823943672424411367983760378434274557448901703766304569474532671048373709495831626729998646870874321057933624956482254908643095312040915351670739567514916614187268264540297878840295040269352738570372361784184270814719115562759834574388508291551917324426302153706377701063228012838629308792751966230740782093017867662402561977990547411718388391809169396343097222783097353865349984910660833476114556501536977696416755031519458037544135956133993483012854108613322067499623591939657188419967198176472300702778738354477102211763205408005644735647960055649795579843756643849772092507411321951100739127598839188077868027787633259169442134909735129459098255937338399820546577741433648049284033228468258176710847926387509564519231507097559157376010267985537011927625332576340418398129843810848632398846513915259331808480977435172656105814586426033723975220386892475325775407625471722659313700254075899706171896831901013528284488139430736553985352448560033622334931506975506728203459438294685278824543428914229232974655407645632634019235797020443471491843448247323852782988831934827871654246266490753144139854321780893653352354850144501644389522935424353888961242187597774623988915487052321195073643520022094480647940578147565341343556130568090606897527856899904817290372165213982009039214310465937240707332659109399551158605003304896572701264979979086126017610200724016260923688037098612890725258010853290691040365829993210409881258187766157145867843410441880048981231232551189067742315075456340325256524503085621758578391294178100347048083017388175607557881908529443070403857769264619886147349852649283955859928187652248643038695964514761955521675044188720063372376391470475976699591902699010989977426877699274057838578584707488006854920435572345466142697241190043663016984071053358567472016229378735925224937591208733865306624749877234334667708911673282955117728319175724294052415320854978493358594736986851036523684407551557974176250721335606249280914569144765888608712865542181908242369906045874408596335776721385482422341143350175654262436149580415943216384829976365731754938276104614199881828387351650693817705777851442037046007989676912843369999361313070481606403022228148172644166222302033706738861667423457460291416602974715604080675546855394705489148921713878532674507730028366206769998401606606324131224858820526021738529591460387370627369589761173350503767399096279455197534164533418251146162582809901805995207721203788413105065117942246684700030558367399876848849695934845055568808947128737925635975859145393760730234708965043779782702907039025822584574231439174450412295848138924942241780453519108276159320097216993397369256033535325054194277621862007745486870652149529195456615299035245089676770159985157257200072558530469631009724625806233749349177419892662777418528179213429028530970807325168487716459639953848842367318533974112585300375073546203308687110803465747177787550240919335261128702092090448484767374203751368256537014468826857697615395868676161474770431490633326394709021425046246979165021621987097044132618662113614542611488866173118303098858016059400083090555587955989386355803610116888001562768216279415319079242172540926920987611290652724580096881402126642930076858522410620345713981670025420482343738782846781044394481908467970093023401135201407209447511417381901372447095949470965526267748511942777810683310294676318181689992907032220041201359842404876463534695909360077795861077897011229157151869716290220378198266258510845984972648517163882631675775187308365363066681622053123547638333828265538575743124530341781737383912861811761870812949190790335722063535853664431737587536421686359472526042753724384255855118447394557190054481717311208802903168981342770945279263323373796722648788179700066971654447089926649816658267557958210522446496573024560562450693596251945612902810383894940581203020286671324416874661624437253311165957593094121253460723928032085353758961677938212824531456831319349969957248458368147958371405440606493936708594583170005067244861693519971428658150650814181782940822796730944000809153651663493654420013049893594273103026941601363025546606967962974848159442918103836829162464108648017909138821363542024230855671374501692214618013602479928777900300206586859173163794143170109235389340079723018967455067305286810432969479449057901949657264957673737646713090391258986858880738740165867904441030052956003385091171315067615123967300050132367124209193599644388963541929238850031028486408846467283223988511226717305012823066988369424229080607729683504541515963298982288401357898116102621496453545786905365999954095980908836865803104240849601702073494347921668777172553374623865100903374161690842920833725482147502364284719128286237142554636994148696734353520812232447849335110074833501602929684366440957241388515001958337935480070948428208640998559398955860346764799929750831963792407700583310041827308669851272290699296256876391280256970951453765682299803532326261382554890402988217226291757832630812441962653016346096068099399508473042368724714098096571344555105387960589357034312468717697052700412328081583784230420570061908886601660030910267592594300360053328976805399448033656316832130201175613166932893579687890316543859814747260544552059250106397985192742987450814445614261855798717815732605938967212926571116779316231417967996204173902565418995074272349342260441890370963815828907656871807723571612104370709909603834278931263374231627634533149402607531933738504659215308354323790619742184890671970300923463269344623074442031608950853233408085893040130977016068225634693370744843001621862365499990694007567670549271573910037223739276557685832266909013439262550865616942932757593909507088782483802515541920696643055075003114464627719989654446787997381004649697007085520039242437099191347947416134956764981581899367946076600495876659045324936587216140326262646671067078556084588969469943271030707376712761001340398120518314604173782835454827748499359641518728887587664536223497332107309856878334785608342684088085182075759697799317724325320005404194674042048642472078319714456311344963246682988718370090906849178497772768924385286915560704251245662116368668313960995719290527100440746446032393700218591672279283170797471155753855133287953735735941156500189712801745671909054119705975193338510443954813579233754000189827145344873075149415208293332850181942721637025678807483670258828911035755139508538554337842697491343764744381510731030114839198700387773878101759042925937836929254760991590870033521619013792156350019482910346275046641669685675488432934471096664831594646165876701892269840023590315380461203505068834075829880880698526802144739113339694160357163723922891538818642137996350879681157840896412094788793831944741183022343707570810973803717873507643114183151285681519166525061682848107558946270809257369962081364505809964494779628480256644177125710959930960494403067018894169504290144215860799037134596837505059822007531950052579542867147193257192524828273423716642857175381935257087860203277315454991810943585743841983467172088457783147709242793849336759658475351643682442154373869312525530555803869178553031978935891366481037311832361146157280329272674777685495934082520308671609333918776730947830826222623786869023951565535647297249589438992145001019018712116206576815059316656220314478009693962544965671624170489281099703553603632182755606374470938709164515625663545365833734601010777901321618228630765539317728808315921009288034675270935614517893348945243719861012125797605461289610684561307111052512964705676676139588493840843921487487044174666813569900385486131194209813301197357402489451511806035438837556620144806069632751159371158412681854984389196315050517577346181927730827877827560460551350960659628353497319267152876051117452066898962134393114722435280608008899522951264936459788002562661112174836391095211277589971121615120182751510260751100416601492317895251219335145477560873418799314228147351707799607114707327297308573038128011393848832779145352779003002745621116665696862906969618389167401636520602799177677254599068430994367687625140279873263023701853630526864198122138522462732658335074670829035204730241843681259940061310054639810389920088450520195622822838389130018789441774132742967631539359259739589108939939781866846937901836889494652733931005145107518513191779015572112980575377532168984842553929917507524446548501337816458998731836535736531328355060434115216955212280988889458028813205752015863209171663955829587869692924928790049127226741722784368208399554026192732610429896818283117514436042210576620959484507107849882274170639481221397796267452910693009110613896088593407540052582300328825116925610692393350894812063968433600331567835637560796959042333926349018084622213493411761169995008456883499460984124042284542049604809790544913976107693254987425113802390358680439037473303308156788008623576261601016526541864608117180002273890042319645985095371512482754867376957074833723927884848295997883064484041307630437769479029689390780440470587767301870838364987854787744948128069395071333533395998677093432885752269180650482595087077784358348022306254768623626889418317157404806110853981456903282269267023139678105042825851796723256536426487330199650441608973657976354268504974281535064346757084770688884281827019312339335161067310954496309764405886556801791947724694958846378367693722392063734829921413005661382018660133245358747790585935675798816731379723019771860177430169551365012691132701817267329214712010798025129071886654519453287801635095493465213402958343649671849682273377246510067813697718676482518133857586960132968648776961876424965117513480369282376631530240608494194650663663138496328311477283764464610416246292694781752305335068297154218117955703327285725640847436500008008371053409591655324149134507069850810313540306715797922299156608102343457195615927965280619409685519192354157453316913251476732286723892318905172437084124598711800249519951569774632696658884174984317084154007710834572831681152892441696213590664498646669951708974100153675960584298381388790705851459450904885102614256820495692604629679838600347969477087809230799963193092141519010314557103235736277511799555095591648668869337631294714760943926631790097573542513056871809935176766355607027376595281264488917487554678978707883537010638198186190628170243366218409946675528236826667864734206669062119315503521721040857605575715662764779594570153130524451407544337058491142024096829344120951863916912057816188778120200714823261443300179004110148037899153541590043429815705634713270893446027813505269458660400263564668067155937615292601803261575620313660663541133389765068471766538936157249945427287722630899352769509458905624892292671714578048149757329852039450428400156161221762212341888209207746165988505787567871493617856219965588499246230122215873891061501941233775951440362495165651922899987871291016220374914798361780413965406554251123155629807778415803329612657856279178441169491148050874570929959531190205784023603007996250106397760219134579118389448894879146110728092297970997171690581013614000054640146639987704283515671352566639577028601919234649106271967740727799393675109404366900570126010554432449897494062868298097442393316027319707874665058103660635845841459315832194143856365670940220517009108332003873076057153915137979945855625599215092050007146833430171941125774527252878928593945456051148986150365095383444564274254311962850263397136718151605744498190675079361316646362455870690584989627094755355754211130619594140599323299199602712910737757856791204030580795836795673142136428284447701652369669790606674164377728046247670566346642974795932956581287214851884250903964271532272458713153281507054435263577981834114405869230956574180621309063913939987968331036780823026580544729406550187524716615387277415769773689570066470868095939224553935776026824543502742972491022745780760325353143619131107683138062110484787946910397838264650133665847887207957613046277709580000484552307962792826749983200735835525342819348266608286273924698205689427653038446468266009311004115442096144801268888835182056833950281214943950018120660151870558458597957978939169077324754956003781087037562451648768631175521048408938142315426358680713425602184383830364191588398465229648415692882740713469812405757223095182058574619307882894888552736918223746857144059965627134127617087219158658646688428237367346307074388058910518609941240674778975172721051124170265277530408961341921064551819323315540366523082524339932754241410569287140532042672391865737707453132532229171471514510464798628593251395514115497401593606254167879682142293237527044701020266868529206075211526102040036425697949750403953671415908223005422588756190742619759629610099209880990547356156913039104575290729760777315763796969386732202778103835130963456747022793449025020533865320816186942976447387161716041401739432118950776263529905148574440852908901713375264593341567649332341287712299397442963102908394098873278852041365185601605840033409964512312520544474840507295794918532538792477138153438975857722163168568124734854887216692464817280262177584426460961779230844723601789215525958615191370425142048667629534588727115479518639185720343812355087421882973058107524143267542713035619663074638397150600995253877559389326293654273890715384893741159513578298934535056500238752386243351381232776594616978093362149461692247998312931169163377538264121353545546868080649898726092048508295330434043207322370016993065573400286933430009463334790178215827400373398964860027098206376746629880766186600444521168320122786998282701367184792679907467413322270422813016380247590898535841056617504973763732710564460282836448490178103939162713562814709885450614258751758961911250839716251276926345377912368807190404678208151740164446782096227117628439962783946389933738646218214545432018683888402320160693619161008829724879218223157825145076208056579874931513262301317118910703589120644478765111559340044302182332737960254088372761536251600170325724415661718937106877555631776852841265084714474369739827271486350158632008531095333115879698413804826485332290311398673378451702619318786196135615661508010731436302537686118080767279708769854547645141997362955795897052429062478101391144946994530820364230931667980546302500935534362085506414852486435699819792342008548408856921670370187966737221454922314869987687246993244969135427234013412102412163352903077421699408951484524621855993380482385186321143485777686841502183666874301834544922898509257125140480949906774878765987349648849862445071279357797825779183362134912087913746677111374207919063817539640973970182022543325223177700477068292546181073753925208089094338369931095994219209048309384108773939442788304465214492758318585728265534254212498517433984072366560044747420159660890883361375758614883635653495416587019246410976903144533783010553456962058394578650314040489495415671376287846484055553367251112022673003608554519913790113738443199544585847146629162669767136064282291740931677235926870420007418078705120573744393132027023226738297528965104881892867892878503743744986395036775849741072515577121571001198427773151595165138757748116690031756216069295223328955443022723360695623767171192380568749518403552292044780597889809863632678139880896749627118697707594842562815445496104565922507408653851408759442377907277727241297509229027958678730053926420922717297253174290655024232826881301696514266750094833599878879139751639560928756198403370038773017486008405842695566876393731573669474934257128478843424551073014775531316061765863133337746662729247553317118673816724394372511466119428151010000943368752306195587976611341655227775245876475332603905575924553618354424723450700823377701857179994799379968678977332172792788113231141042750263281128005803150843512253927147961220467439015571743113621962958946631624311715874231019303800187998503303538539899054366720473735538080142169330794088501694280526975115884340062589096140054114260363896156805439102314691461178075327164425401659871430591885171438085331781843149750685644589373337006730652409277567708951577443700776436719508733560669481621453533834869261814111732605473133126453472915633561079828332324082227043901671554259043970199672120566697180139603672466417863834516140321816055106011958606903602492398512557459818721845679316190138651919229127157968221054420324688145765384117501061022557912542699866686246752885841216300203695859116748853688004389937716239260874301881854760332106753035001333246421975766232269403010616973544339981063729114764140300813964434596506126002664269090138879604358252638951397845218225922550239590598858794538051379867469394024096095190017441227113261458146358609223153558473081588815097451239847050328791909902329292707389591123792854025758469436599589061081246967070910865471031272853045484239990573673620816005468842098382199151404572492390471188613330473046193039833951484417266424911123256584643380504464276407332413885067160583190544958610744402818167510145479979933604221998586497511250808889304936564431224392508852905379756816444332238662683015301227201195759608208266844537533033922595693825949964198544081363586756393959641657833598610869722194469468388768764185916331733805877599623127928439727604644662737519140681386580344361625584986941683555743250013373987190179973115856580777698494909242891794831482511499222635388811913538608319470437187735567825650205396627183032675646472886416244604176251825570981687524580017409006306173155604787077021450545103640368435563711304978523282936864301867818572719615253386169405240190394356849111286432224796151365125102136453557448584863864199189146412987857157948114952350776961647428377997918667751280792349865855862500974923030650462328083628542168320134713609477622092977133693515139124437540169072956779580345099260985526821407142061978931406924287453907058914131543453776787977373568670892886804621760186224305365114003877429562167102748731782996153371497232104462622713968810654281089816788689496177317831330799614985521400753304701077068935375933251264191780050952621674947481956677687949064036545292593115830995524003236734032757242782418889085891884039404694473074135494091811729330072313454165255377313292715617347959049482295156669555920862479256883194268594945029714660061064113622914316570212852506580916388065354207657985545192036654590644258184740781202638410322445292566797008108393524228590944332162756241800560259812534389478516039549627206661589734280589434555676025162071453341107934468240954210827389608318286552827348910358629411872320275647463664181614504075962255036210225840142346225474648048917725304974115857448128514365303238343472565331167521941348998264035501893903785467102797621084452023645699546049180965543818004499421946731329417308044803319403362096758415888866200422005524151411048678801349836701537860720669240973532944943104273849532638200093605634029365757748661249975407891375480203362296909151549238066843180659876298121030053751041534237320033726665615125394335541575695339346098796555576385315511772361307447131063505462774497591221487669152528998922672685050021462717018280658229985729288533004785188935673952227155223300573870826413599021624686252476034062731236623388249132138992480672549967994307376776987699376143921237551955562393791178124461923326170973900374876795323738742001422658002300167146438637964690909454957732663561088162802257020118721479301992526462816144841733305731188590026034891593966115237611107904810644015727483822624222528983648969245879934989531625964288507827132820133281591449435763658980964026751116128632994645376494385919185158137507890887760217063330874780360815278086406363871778601489835599537538942352420427793994588502455604004996505818803822958458602171721273647309993724050220110327698911795096285434286242384093001428652348754066212649011225341596350056435937106860877523453576635605097750585902212889196312077040872195219890479193625414445993458251876715101153407639797728562505344007585073595647131199280040940880634087832375173124957104555530622598561822895460412006080934751829003786661262057156095284279144801871444614256262871296944408517263030136725104973819514932758875311294545923006738511034865687596687843684521703142612718921990040419940176174418134026251479615471303058792462112771755249647148376929102518644458792067989597231390296427909985092664644294860721906432015537752317401782561994498552854043844466862203276663856493658445501734522119973704462345754856744328572574412999108122466447104871498902577153149747836576478985763622086772591754300710406060269064640081179229917382482519457004136325176916932417605253531199869649081798568571864627610557344613386139770831534886531984983728473053839082779316226551331747779105737386964759784806254356529725021787881798241911620975864673118492492431001887256809668440434823957967662764022903205961142553018440878418721538496268802282816229737595718103912857805147898135230088602029693029208817454999794717203940903289176759792092734422179120869235362345238017056938227562912071065611241546968698997782497824418820924116612279018707460417717271781296622407535246657687875012656969303743269580348540653492365079937286774856714974404371503694577603928838937514605947847415252743468004289248614628999408171754977809510209059673840544674222099477781335115427016817870980618159250850015314215118275888048341183851290798261407818748210779021558280738102466610278098505173341137989408208699539066531907436052671563293617290549626170063042476994282582748550823185467142347188356607828519924402957732944853494750486861810129804653019306763465054124964561581470658789093083819556263600633593255249198813259813355798126295470043109197062754855501127979213789559240706782929730360262264528401383024827290834269007509021884629422798019392329122101629788348900183953993756520876060640567516210031524540087860492979424894686260607437111124366544465125446363058703145885744110952148250743940602789523314855038846060872962441558890625854612800299284545006966668774906575348150746882432788636644716323861687351357715781244455589836169417311020963362568419877765405431295440885454491868839454911350066161022317896100282181422917546161712994706234392071673086088962047777178866294277792700748229867937418340943254370323633748685455467087406226512110070553176858384071225346676132368599835436678718296479949349350943369845769600692724875695715667038649909186244018977952777557960870206651339083311294478833117660361692305124003854320419023444986910867160419993769376719351469457217398273616455161915921122096092599966616939351133041821850892772426485095314880351018433653001706190353900910476441894165251457537395226206597672603102945856451006063433609191075357143264080727020962914246821524142093335686050013022138368129317411969661576096679516380286979122657358330548899139902419972968576418720544286781602393818519682343203796310384777369904762232517102341686565094499637145638020601323189632234647018278892433457041425450853277351118818768835196754311968752124544755516511968106066882624079131776627178172640218501453786094618643409697694412057913299136538995791450179124695021622613858583153221602542085399627148644822794962723108093740807042365618098957187393491446888061230032385105457104750526433092613239642336841085770312101424540150484161234615302148734040526919796915416286735905654695868297885123066204893713070235276249789403277243542046264189055391082339373750980287523177321137891743642528639707248864737818008588729510614131586502703295892589350733135945815817461827280750754006348404529682161660678065430232239383089533084103476694752258068918603017847516716629184126821684037211261783884760206108056651981606857280506835603451395056960921658713943806077729769061250788669595236245445846474890084254712098282679538390162408203959234697009931629806664433233711527474223265836771743603531225592771033702603973084799426179320054077977521466110110127061571933779753287028680120046433020901104084108447009511230607769175332218951586596861295501413911780340697481231145473621749433523270216754743898670957091895404906519950009710891526219406172428302519761013848740261526600796647258119188148849097326205054370324914576618669873909648910308962510060420769585474512254760951665225871407378024064283102487391317502124812889613503105567654982986384120422479746242112004627412525674144983435675992399948637954284669956305478401335490044044712806197411582504328795826893931970376814897818914163681590099140618497693213107639788754857710385573958001829400964976033086139212876015758874803222608278946161886978306440689585527001329431201376281697910365702832632016361074340678977793227998412879614492399913272859242445520655881378510863524694494159897496350885568936475358553558508815561777271113706573540360751397663774892372810171665301753178845090821848296833206951567849175590979368982620546691188874567161868861016152750597795688725757658711679083925386908232996617356296778824842568222122702597690461435586306467748204787291604465757569477830073025288686229414133382463253051064293752790457994126952191633043669024454289425218040209830076738817973852421991003747138080071993699292115370309890776095052144325229324064952591912767703442295031896420479547228319866065283654040247677141076152507068650110410408044743499521715555822601026063487757689213188142528752829348279696955694251221049206205847545504868601579324364755004722292458016528401230321096193651115277072132932133456899723072504992584505433524998936660098932737105171080877905603917468349447116476306573365497188320255679134720209141688637606538630020033182250886753415350182798731707817396249960522053227839735973582955852817637076307503353667418962211041381577237647299230558613001618924164027881658431330440234917322699511441198186758264458768882605693447828076262068807326573869955257369124823159422422994613324597423564342328200092945780535614960466986248555549285595464095910956297119377722431171506570142500164922091533070680261863328471984808313783664806514649875053812941479353988330941029431790197879555392641570172964365848432912870668660731065325394171469641194656095049373202765749088125822153025865781586943619116187263954713497276768220456129958603443349768778554579796559270405221752458001585909169273056066420431318529166023373382306185289774902224969245507506636271294456313870360478108395349973020898105883822070387497251775232024164193570027360780598329854666015265029096483806878760644238217758416834058771650570804017484770674276508732681109996451971096658933888282443599997243582969011866604988132370706444763766221951124017288579634680561885099062912623770205695506307509853020631486574926983786051766777391271205578310690087554411648770065356636352604482292220856786238954194387262539306175178140628854914794969610145092232959134250474771220239519338584478329021227439953085150072447498152442543119767413456118034823224156971640853303700939949656062422845429679524647748312394565459476802438033217029619925247073817515865167294208549003153042620066846977733299249080062864848720667846707344058881917114847317548648579740684636087396241205725359275646936554735906741312867005335327001256256802615651699262706982421504166503512494404447043687253238717353842299291417380487030451171734726639514403787241518650867707929716559813353946050058672187761029707922186259343519404347859804258832187194024893053844563033736769659195011903582648579224786369503916091538064002657962046867712480690994174717284386478958993360081592049839963966919912919424682823569080678859299090676823651507067257464692892091500727032552735638933114583335714057564503417078123074651065379117813425605764122534693161112473102793131645425026610835371581819186786297722329388333851628577443451342975563907877965500808703162549342557339590680542470367109831205592357222501474933695681273862787669234579668311118066408359912678522020114812427885829940776594622625512821735583825389948736686576131333980359705586558920041642012358945038233821316701041516103043952533503819657928867456000535244145029547246348874523097881650934292257342554175802871835559271613224058071056398142590123580953416534533507350555165650173026655423523066496140264073863716190273486625827578984956923922712618545245990869731291383486408934537598840985900236453960878489094798489136407746369552890205829232723415736320187595085573984453843898161467059775429499943510155696944706893473491736677869193401933446521969235771622082159400219155983663441446978728934142249103168350023164462340320300556072522152816486522530553830139691705675315782289893024927293108614877594464224592195567224999903749384130546313911442963359378520045330392602989607105836637263101908634900107458244162029844520301179422013520846363015415155481528339641022053297846927565343735735250343356474948000140125425986260065893738262081783940016202360145875665320578698318290392918867773163008574126213618224286294645507647300403458197040242025072436283905602609575592714556981006043591935494717778696391346967289253957680408077425491591611354472212850473530927219372263277741164177040485944763011963663009891273731986447095550503213981274125443493664283397673392656593849753832258303069252477489649221939942546471250264320246051470880868623492068095132919859736933255431207728813965492933801005140461772199631318458116861130410997981119500059984192757882109578049676753504017869576195508805438948335392961164644243601014224309848196821134352321560288696032811221007975062195686278660418583724907172045469808678234503149158254952241906342270797856639679926492132188564222944391806137906182356310150039831342770005169154658572083711564418296058741274946965898455735405149180208997942469584872630847405996640540184204321438168903408577030280481559193147005747974035148372373325157380568798474173421524205757557685233136082918515936710771925557264072966365644844012100918800826936462528763371681784132882716908505420480666991192315266067533886381254200110082013898703893561858181932355998744546832495746547594599597389119430879812337666667793994734195383263075616108729213993733909332829323168580512052041060404453238558515926515898541761014681637418563641607773369753143928957359969601916460887997231432940239152521729435956458850196578094225985897901198404515597422107317853457754147632934896283033756182799875825094627268462585753190121164854982364469268380399744089254825165663345668094212323491779362808381119697417566165871538075387525962509900703299430296071490067860071784186594009696856885832864875305152357358868196528813398339671459792665476400043885611164002326629788088657869509472914351658843064387988277049925569640306328492801174668700108510509645961950370522648185404823105917541144918087067289124036022548911755270266756336687122253560927775563620571387704982350781623690036517114132867323474300901105148381266930481637279637642890204364382977900913696691821586119296715610813989021268255660358794169814887390865195367109393702849767800567802183830741469913484649028770712204737937345328871908727401685693338168415572466757040065085202371916221113103661338919100640292137673601871739597097735790811254151534430577868377369791776113790021722236400523281292582475703192175588152017087267527833351632649402860737983067413424086427741814747274010271742984844361672753815813767931156171654813689089951492913202543181944730115016050979095511605467976979349181787418554610090610933586753827307581666909853324116296279257176985412101861337790025259559615557420429804423519385038066881416834134731340504461920133410083001633879315698784629087102309197347333458755987322295742727235363528000167297227522707279953496025140541937236541314672263161646705345912179981967901907589967409951388937220979820992891002710607570360918471726815493370850861868362524760019552214408536016612511922843728388162937903344226162569718948056950668868040508833657529497002586558442052755007184041267686696748820463586478558796787099633661239018033828891783900013970907900769509107652934901201895057442694547636838680251076621763665734841577551535495847065975168050374157450874545359856582528242204830272505212962607052445693878426029324621005664022336306536057771873697151373408256834598690280443479173754571481321374880628669558845080725039254096341116473202718558621452442927976229656151966728100516246010315245659247771780294680333304810140184856797963660665034477212852273145254722737459360682937096944493407297212532464250779784166965417706797666981851562208703042257459601200437090661603889040389533910806613279899871805147826340006685215524471771722454664475870929954138732207675331618371147109093346880242936180412607240924664768018938748787219560302798070865435489805071693095057288049906433152905968554422885698327501332712073819866776691002401122850388679625248663879909644893670006339705932645124611725583043394671514297107805166359027576624090244595101254577968730892540115843379228202712956338824337029679751561535657864954124984840031394233638756477180096043777715153873926125557178341918094438377439905809603265834368985248214792321087643756105301033072679808472451107112337125050843256668147268055662079795814293547973212658913024355519627618218417228395437870826653328504098781836775960967875842331693353211102211006280970034471311930814129749486179654342558214377789804604124626203783973233188119450481528224262784518182498551107360153265629249091419101219179790861758475511692916962465002961415723151980993363081515790112346911780169281631752631923042615651451156609369181954120078358846840352845731947958473555413846667394150772047470874645918979704465728511247508403081903206750219054172250089095006316235435161838230575564081011372346574308372740479749574053448400427828995641639041288468583138965683218715462963796744119618337231425966975658314735500029742479494875814279119590521393202481236426053060191700847292791907770540897782978904439357670368629331492811871042570150319652744978641319605969387826253167219801385427511883679886508789934713519951256325691197813729345607362688643820413887625674006178996472850014560378150104537895774338279691767167931267337465111328726359701109793412746932037439572289183684704358791734575893099375199115693714851467315689379631871040998874661103442441057962237246908258011734617832608218108166047765714977032189019315848148223922890684635950135426243747626375396110961588401976375784850712995851319219333254363660691614920064157988246933085789782477961120228807084666760946039403566416972023159710444117010016359115887935759080529824376444225957390075855060318400564097205553886149968007432387119160372222310538323629558788174395592912932928897222342028617986659670180721368740253944837570598678044885445142610771005072897012637672766484307588983968759968123769427287676931955586980192940829468326773022576440454995400269426075792050187900943919250839060786987051997705958862557311862463603500227574184716350863206643969723234542844845777754045775129311263139384725124437785141245733222923034298904720599307265010451104091491566953776817264117847757354356916572701666504507461058034607341123347931603356286040421241796693107912887668179998907012379279941146961930892072122567723531120533360786488521418818340639339432210549756166468607420952891729431799912539016135901205607022647618127691124862592727734405417197602359231414541135812422482310844781296290060388833483951583037723895909782139964183955206287225256708178049664716570600769887184513209328006559705602097071561183619507635684960743040383389571964795871936128817806953783047294265217381580191124109545180206938909228165881595350837811651115158638745500081415432337231146965047112261659339694275817491246944478473361829153431261572415114235442650987889934311915834489673571321655034414879400739957898657656693937087927612389707749937549162789212635145866509101110827716509941787457621435194392341799328193287907645885725837194205255163217077452079078758635516727302041929191296072584412176383105202504115336793277865849727769226892663821266538880139984611328993352482977364337842070308498052681970768818295645359757571837474919974225734786048202992054050296700882242467865900990478823880751322320892578438453614484624819350557834708919719337605820161493632016715002213719957166988963700726499304276690778428811645430952250560226924128548306750135757081102558015209032063136363456092166798483806180183314388343417250062812661303359363861795427553791633335318215676609935870325849385386848981645738252235033389082602956811748101355269412860212050113576591440510537398523363471459719000220737102990533632394305467932698731739911284824010853531649896717447589376184727268666773312592361739954312712930167084601063930888253139905408415430478938407898901411258797490655667855326861563923171111435761494062227630193435464476125139441012736868325281813258885558642606595091136248823536896591559540461960083896676902697403340251702574654839345595823516360477854313608197473325351276552346126206948694688347743874334582498557515675659790540891797709945374948941588803239359562675081141681498528866055109361651553607170599524067111441671433117595364000265075271150867820063044756405646103220058504407552621860810682812638887065019010445480717403011982158068152785423468132748576688813820140723815551417409183205347131513352945939373246027767397110817526507220563967681716731100643530748709434531992176848347054831059459052357069178648074360006555973021720066035271397771878780707484793534442768468735850296325131285020482592675867947318992802314636293491202530355123011986142184924406382027310369780449171793471585765235845045096331544905032756404746228418670496946425148308853382564407392518083413519738150794294029805915139922584822808595908995829053204847145383442706392881468883550393628457263883960938241417507319473267834589201126809068090580315437538994858351470505036421880705205693172084786812114125094375653465208702300092720263737745698271022727435889834919862677550713274592090662662730090190994266749379701817980213956204986081517126593625307963169761479240417330707757472241914951304592455419271528011611545863557326080373792248303713097785258229857955698214382846214384337959372252868387799680691349257736526259820703796834068260270108237872714360931281115727805262233792630721062342622505457399485430074271272804814007596555296370847758811971137015257065736620851949714147277223849789098382329153163517451600368120872662787721560888012229562478086204851227898000372681325603617649630410781848473020258236823526551597062127364501111146544294757391177942589433529916847192274516191576340423867136942468584160595708087825528192219702721334572132333400804933695237519271913364748815835891176003211324635479693154219628925279246859912378243823094397606776633497719947651478941902062005906191290675813439005576447850508172882269207503726164041644630629671810600708585576588413150285975132717092492356633514364045234031477403078264313843892960692724812585280749896615086446061767684590311317977279983018493442801105182818423020624373742067480851740441733007050901643000786437107964508750692086080971028403482499629284444503452909524547976199618991856951153479566599734052531035745212131406590281785218749496910675730013655387420333624269463430681901293844846837152200596590407435404105392051227691909273987034282157790268016626675452991270024471185279822694845257626801197706965391781777779703740132938494188485941880878088531415784567688503774573255835649471695349644632406353479383590085063395557889778253669631173188078663882605360167180374176142416219024772607603787702825693418876046925756177505676123012850383049874950359131610264754949599370696011467866886419313372728608217930893754202779141178900454657997185411040344134426402479005185278326861244835288864086278986792101517029441801741489388009381713873446821296761586759239622200966995897452638693353585214013668299474340011219461240631873771157622356205986077596973887305670503945166539812042108972593665052092668136261649128941009209996013123445097582494886339744222360274961980916565411595437681594219320464063705215318461048756849213139653064865675209473957273623694676266781304551161234903150861023686805649346905372941265100379317676535257426492336842013304681210742541364993691156778639701280012372081503771846963463512971766357351543880407128281201350612630927021085093017291146754173738106998271874647450873934179286806271229408940644076401848124802727427684864292180232247572878487184093627552143404474505888259861177433832891342958770740221373065507854134775059445308138554111946580486027246499120013015861500716261439185368793937854271929880384644612528015207462146525168447905172839503739578229603187470393100091775587359886778448571161661909774714977099443739846232817839953915062033482164731882652000478686572600352696463635986322677553567576500755640575756981809447878639179329653995536992473635372838724193879038565073008101912204709312702927662149546807145531227200820211836162817242065654470524563887708125217498416210832627015846729434404005848117144087175054811115683169019897012223429030605383572574528841037466336649540896472800790278227642695363963906821729087749584901648725593633786367376023075612370470126753689102595342427880949018657611468501686941502826361724354190136371883217716293219252147904789688386431020935467851748738469252728627144645244834187778612145011420602825046063535895201206588580545037508742466305600203532772737556370977222424223953942651616742271689512048788818005769364478706495519039681317953539652831716484593293290124016653330474400758518074448122491972333003782647088040673149280308006081553935072526551203347780827279439881196473454460677814405191089832257269536012715262951288666773271968205144072371005397632138495461161077563840043029613303526201953507399508914697429798527669390650803302743390369178759929430151410803673499566586698609356202890587278935864778342240154157613927525945529091913344544494685634095809348648637651526282404769927183005445056987832535703969848204054076250240893459677168532708948158362299571596529642806150487384612898322060776348287079618631737208675466057758970414929599357486779582765680013837177183404137772128856605849881404404383230648147202830349041860306667623270391312760284483519098424706621007496021817347192341012911486246185025447398406671955217857343933292846721495034391966920863628074880892928147833852216143008394794779509981508859928001971997734213404884863130812833770001170323725770741961854472711856542988850253127601524120276464418498132557268101280891282050521725090099723769572993757654319982899447441567502939403710589872421816090763644971141117979304430654467420400310261299338052431531863493336069693039665381468740361578526347568468191115726539537753077797418710776107447255394547192750822459457176612446064838151023363664870646406967469930410943812700098123024550783413084823597434602927615571779135325998356170886532210570717214498051995984998728983887615163738991415144733728146779006131476919537929982998983996074594786412958199728081141860112864197172514098459020617638849930376085963638062422398539104807759205547071362645687852715505234794582204417929382216327385192584802453289441120328317330728004971032444710004198076890111968703055154840455998701733266255529125016679295814631052760399989596090777779149238342730877290948415863835135757377185706009736164482646650901989260230228217868585125855434683337145585282546256279870578110014577549723579203149875731616017094582153496217121159006134015472306576661563426557976176822734441284179210079692246422835147599139794914204875813319856492747957686989437311193877496572842971504882311790039284911128111405345086444024545472106771663842818068484566470244397477308717464155926627720050934693035668102521254984409300368699144875363725856461425646867989092607712250942125243851917120565797542486811191711586464812001005455538473022439692932164869651883565706215016773381803960434479772196134668843119684871892578267302948850665100106735709969863677419648611849839911347041375393035400895806319908075764722955848161623942241301116239799606254039634428695381927972261139197532338929896562083669564189853180702093578759855838889014399809918312332357492770336667179209996343723951746130294979885523870684224511775824461948197249757861414227313296548588238558120326320889933750231110564895010456719401366724524577997448793305103593241774888501610002777954394059489783524045148187917978629050484493797182966026343643404857283854132100322805798098389816314545618451474423729088686577334341553592762850205461035311088029693541380439291094132724216907170676185945855630062081092843471813021063936482113877403537749515319657979460076848787008224080080658087453672408774366628943507618459514212815521887890541991085047524973052899502204501728234851687813957804547144089814555809779474553247281385250141332132011809008714875817246674283454679496610614533496333168338276214847033878579383244396847098540737791122559135859476399812852461060243954939292910356830152257306155228904447046265808722236434887850481579439024525046790883077876915151475817135233430629718031674199206943370305124818760684887870526065728525305756453453867615407791725448256245249122815926096897414635505418171406463258190972280329665729417815679503329798182104202988108561993474635835267479912002836890373008372137226735046219038214092378884085214199836159821199899511026336177841740951788867223102774518351802778649969877359562898818206687729948466596034021333129414953916080902030043137424587423935139528978829711954171951345448247130962355951261360699814082572306020016405524455932142434001919552756178880023731116764590799061082025819506625994537731366209240934088349751214922983146975591180043798778391726954377385822691315475475662765060821457010970634904221781216888988300376391883390871639332782793334218753444538834420485014508847079661412983227286424383866886562001900467915324005626344630115778881902825720321984120798024498198342363865582863673935308547111366168336760714467491453595501471803384981168280998263771200112269265006180014432911341810058864203893411197674953856600813603168736996248653324836627960029238852677465658212420676636262306816668420732636002552882290466573613620398076900246684493294651862513640276976100414868304081606139765584950768075775524492211517815233210229236119739227842228155810352327775794364731543366545866435363893898779513422825449049339097763198963054502778311793294732444415739159916649496192168905751555922742079483506620267399349046136960871535315306334082460017796105644563042360075007189862801311624630807319253934428721025672824489516370258268303613110837942475528260723560279636041442198218938894498243233285448694634367196614851687379916999821304512915426780193652596478348337697621198913317398666637638571287179487485099576883938704894692767457499412995546491888895345858984826685040338869827183594785932636419964330668310692735262454196309503591987223835337933064166338105191520301341568125218022989348280981417956460326359645458217507703051896929438654132045172403217321064038100308101215610484406540422137680418944736725321376864728399901442187093750152073150396939310027929855235933501558641459216353747331249164932990994092499641582165728281801540882660674701124768887213775853101624062925482989325359361310643093118770733283227161921894748897236059959520319993900107486168530910415270354147241649588436623806982887969516823903198720812354882017135336581454884347265985189391101352023043544208621816039774050938898444052155242280180745363400394695758887805031590322607312537394795749632572506408283392346784205133326630842798433103873776421683827913083700312540176055802567733413390833514291334412146030020059652988500510539498222540024757445367850611472454037435943864495836139655677973158563253844148281744687208710055324122090940743585007643865987495381061053436866516906876084263780264372398000419925811669473074730317523844853186951529039897301233444456831571174488576746928116896294460182608184490595274072650690871420246330359890365396876147837464602079558179808692470635878406138445899307730425733383031557606665835521283687169216365891921761463102820396031215789291640028698894243886967728820646028019580805703202295591219639550589138553218702906487761481437495993322748399938404716247969627691562160753896104989518961537256835605154987381683059726997657858198235886558488166939563856541948858016863669094655869801633102352498656752621101773650916139563168079963706429419297587731654367465290105154928300575664574623210941362920622549788509730555561829658693908418114651011174501526430678022215111065087035437281892737066107869389955128022509320852343499909928106207883110836365580180127241555690658236270035175240837953687539890771150688129133470414154624888312017170635053516230037208722337405148900506061694181968082131282158746169938953604002451425729765957719583852662320412493373294705552996563559105603196490994870232870499826609910946644443840846137372702445453439953268378360479361714718768734559306872808942162749556668266376347304627069045658748856234824227512753509727825330835897464796989870901446951656247963155814342270756522514385889220481835981830914610828752944891252935310150555093861579401856305736340395904850151993663611811797212686035007729832399510713681726105687051037633191915570916322716838056560614754103193870161021085094934360195648841542867280589052518546417225683229797021110736050333471216772415597240433650035107249500201780429821201461241377669307666274858086094954701224868819618136593597619217485667736671067307552665692536383730286877923273310441961181262642996669959691766877687720620959383161501997826373958255038728905936856277248548116810403612302232904513854888403578507212601340111442887305539484950623313689066450968535107688438224126448729584738082471924941119843612042096979929944941419671327207989257952562764600111223623008541359852172453846003093637673687704319683899151584060095866381704443673573743586318810558045554973895913248193869343308250445336030989703424191079389410396748714658661257681451450630875225658122413336283838288439043261181898370112486969248770171023466497494071113664615227899489644282424119664017966459781371467469427620186255287308235381152813427200083081328603405576020776134409121843086949107313791234432438968974960837080003499380090015837468723583629008978292136199308657753893920983104504375080809122175924349176613647820719634178146885241404961909137061404698850473618684744422617681152725244381142250362830470808001930072765587845136873526657906431966771055386851685207102664828620932596355591689364920892206090202497986254132372757573143019634053398578220287099277072144615911993340521452787043798504650719046648007156011254854338295203449853082275420661991369526699217608681280456049512433230844925747297364587850840359254460330286457204171189549125862422453345773052576929537663668994866290165400604191189269814333603761774176978885174898177015079746353128698429298357406595587694869154543750657977261535140648466886069474401746571366023731400909452332942645541093715531947934162420869750734104596177222622611885422669981107941398320298548813845135093826737167463161410820331771139538938061355783090854876026291261021198807476297943283601479043924886271709212992666622593333480131877205960796459984249366083012652267711880108959072650332125568835920182431319768848843640119902076499844328333051076613200805200837499846120960724284041481161053574117642008744850267952725660435148553172625897280242677065971629947880164986754723991063591958232876406738052172150073085237039839595889749872150768350240285051796022395734931062194236840096916693975796179532723867631209683872711003017802512553265297829717281330245952045306945091508703488133245317915725457382796021950919394907274031728702568070178259546846125547115082199701277233303533211919268253499840774259650054392941215827995665080066131861228019013275375273205153468601445031002670225561451367233338826397922033152709433029415351399999269148002927798420548191463339468410091597355075437225860727723957401343516809950273331274419631007646117825928574106429096324235893103260028289499928654806669791316389835250142992537940035264619351593999969097333687279852856451469078861262456651731376825304031336998225769073828497523411090528224356775791420224832717349119839986813467764494148504948146810290271836757398258747575411172711621995790013742556523280498100456233510506632635600273241034217380872598035135875853027079748380102304435169033822012605872375508525856582969902699412842216761310404377424053307522419204479906160650991282292196107549096754096792417698308525055388506632615988218331958177680944612760058259794022914970486215963034233848780431393029360203609577417546162559453878610945586026555978443887984673165152367040554877319271825768179417975315132086512739308926890574090200421458946832089857964905424229841653610730102336007769069372202479753310101579385330679825351460713294339381359632367917431781753920303486183856696905166256300785502781371252170016416582673449545269403959431112846798906517960059105112395162808711275861894787370562946498776627465730473571532182572863957804088123785350365322848158159399174705403682077984329623330915387976714316087933081784003516566167044343896186481713467597165414231774526197298493910654891692566075849877319466320454619798368355733974111747257182878709708494531526691583587643253655315259048471252517999839057797613078119256456955843254693666388581672876139174984188048034073715658736956380328735638133769858064422538352691777610183874365574160618191617440335457514378942791063452212205292162130433247330076040805390596410369425502942362817872134157188624498177697372008189003872933066351149082623627033031827673089884861478972776225510555733195668222770743649307346574485004935452571489511693318945873787609534703715189942179810455239230081524166592438722509972974627232314450393443776413124978429671570987500501258958258733422753672623433403132898279445587009269142051591437596380216425321598959100387151826956250891369931355444453933189835023650086802070330337137280380687004526443983192517247941096181684732652286851644196085587590852343584001525293193682956435106680474460421748135414913125679622265479781580290939677575615128476638192994845499451710276846211384789872010778285338717281833243644075256626262220418117654683341296861257585208282590853105542879040428523407554084068039125964839368140772524854904370325163151912240700680858808344109700093016114814649103177817118350374135845838311156416098480063708538730954245799922359251190951951347317837508982740426071787573074640329844100534956841820844933030265560509780676893212215034457531594624572397912818300035487463534680872681771312511736004007045058572276524034553125166684141730470656126629139987888728956721233886376308567368852756214447472895509176199447704349514727085239918411272861347937097510543216643072023925783896041322033793502206551199129094790174400500979891113138406864794385435389352215233615168012115151194725915472476046762867303963102820594407187035993429687215608572231497769883521712810647409718663568778705416002339731793890076312458467127727340205930971360090264673098507972567108323969261632336161843003007926765971856538897513912082686289870787797605550830070767450100472064968388757180101426451963911652196829349151413989206253968233665483220167056546650049564752907874044535209430679407129956295821022808592935709025687947819052754341741581155496536028051967899221234605828241559706847163415110062116660556766273786391395840292866788055674278749882175566858081514201083376092513949925643952323256936697431715126259740026378166636678628079274171772588090118644132295074376454532427883637328496992551160509414649674515456765845892816569112099647177432454357955473215824566300552799113337857169380257200593006414521233251162729169026087326529849079144277153340405793561840389584075539111723072188551760526796566841191326583078852891558854250353416818603033702806313700437943795703004306418384920371523282853404560824917856835286777739208929135783886508356898046461281031360135691307667827354596770333219731431637846969067522304919897525812283738372257992854953456024833411788839501550253862713045108871786209009796146334815099792212881207730322925996990827977640998483804815774035752389528938835276621169694423301860350816552753482633348900830531877219447729823557883401742612565036542399601804324146290561747836837154820663490952535829757001424823921151673511187566381197618101891385244941542986571713033779507743982530895922301254127685082677665707182668848584198689167386382416771504217676640418596239778880597035805405716953112885638242843340366863831302610591329043057973327306219335884046649117040889210443437109454315761278783236345413048452958655332149886213327217911966649348960301812383166014228968022603329140981013387820871219219547735837258027607537554692932651983604758958571927424914611805652501158179081290015231410665462868710231748241352499296036950410048276165407106547713500523973286778223844847385078663396287146839785469676109757237857441042845601696239106101379482876379809443177854311272064546165235067729595619699464437989932592199293638117169586385408157388120278468437703233129923425380332501724237094937587323086751109143323198623927915704469123367692403469139822977867701443913313602598481238464027995751235800930846687467904560408177459181366365726741464023239292388908876957696285021532511941910155516809380702208207792212684218566078412002057504035006348297967577615503472153026805875178627873329168001798210748594158051761262939169096368153474486478432362143155713617369913143370112242995612640834501948490843537073775243858078320601812956404247680602287590156061995554666067371450836210670525987328993509787567478206996246470917615766889653696419836236700228043319205619023394654201124666361933024056101983602979648401606038390203537443157993978267181048282493786038907615984987263848320578479666884535123817105276091850817682576538940343534585560981382079455561645392869325511003005953640644747293327809293437976012235994540628186756207234367227090281015099727258982444666472219033406291251300030287909478431995530399451993865526638487243147369921126551148565163916450129345070069954915492104918883132681274646733913464817303302012154293443340552016735841379576754040120749285921606725699831024426421020857736356243136235990323622671995536773038733698171138829399346698904487412465021242809959671340481998013195871518635745712933085982361159302744278219301753320862488867913672149932798609871319175170017159190363968821444694402188013861044713245198919735151820427613884726739052059166263119918952764792948721873157993814991113379326687561318656196935941152772556096079453223175605956356807146678768541969505780013660723040351332413936861077703077121045966382831011715326050380744139750997426858937576306018461554816640977312098935137993187523332385609348335799108991991242112432139443040872659865640860644670198182705331497506673760268057458653821508656095842593518462112638545500502091079248066355960400190643525607292323536821825630326552831927358734157412614333140107407574868525004076703639542688757668761521366017061348600986412927012702697959727066950815497976126579556006181737293344885051689095491034968805433620005032314560912177950727226779786111995249451239711957707211318807117125556313242318636540519659511878665599682100464711629013257514387061289767599751047409147244823082742607449496794302741486086745100057283360635611088421814365140555335310957108590874616631171459393806223479398366585179379731905482451556434281691413776171667757333660341233248215348001683481050696621541738437316736376224886941815549043516507479415082272409720690395063672590146915205813051660154604036492146908423039003204774076784016178451629584775132237271910687417456985346287236760823989272754528285165366836570098738482713566714626129896176652307494258554927484008937332387104456507701953429991979315581726901904838237168541717733201260561092033994397161587108755441057042065261758052116536536009025828994781739308318239729534418552185610343127988628677019285644946032614185482414375507706515755374325994906849451163358509092874951821667312224840856974093736451356682980335736537230733958062711882250161240779054321613225895508097183309316068310742720333672978489695871381786344497797442008596413499618549174262091357067944085220222690044438848631959218560599746099362553506102412557212258297635298911044239677046221448807580039849858581446724443489470499360904848532034793325132369291196265666120924485198433780256220642539643889695929098251595471588416883185417936602525158864987297714791362899189938463855068443667156885002837128122946121091996053401734591947023495051560848132473197511669692928344798088900911842413969157399780771347578870297512399958275138554415506029862812474738769480928055058523859583262545410231605461512388173831395890328635024339893858294781761992559969279813232925383348621785837044670436062828769559030931467189558911039146252511939050238471208140084308727114949298638566895145163400563655167566761003447252913677083226496347377111017374792746764419987318764667793023571961230091033060709047519002776062733946428189301045389621523306343121153421543430984606553180877736052224687997631135741986996833206618832242911231335669353325884199626115679022344924410508329299828207925558758841140945127796410634576768197254971842626646514165992336176431276187266368737509374894058757386543821803746272384086848683422116344362327824967702455120532325944419533521448357771265536896361992968996407146084549071370229773971542324188397653574116620567386237383301000650387506428117097339820630420208099758255574883577968153816967958337129367938968195306761380410296643863930566570708586041103521530939038751973337162941500558286998113283391864500051733338307499126228947946668372084979675452008176525253026765181058141136287967365882435853194155675904185161167551491650672074608783934375187544090151184194453723321955442604032016640222564117073879796528526420001234073554859630625655470651145460292018610096874906355924381428306692549894405764815771802787922859812117372003768773936480828317575657854087506813449138259395647480239207214360168975165718234138068697304152752835258418340544143376968531493672731780308225181019314546599548218873730165390648260894308567772951113418655469708308645909032076966743382981662673090277369788915010331487320177554744597650072682175271246858787780911699809965299620914666213571565831624521431397467710756859724347102942479882735417244085497531895187975264521719385532537731177954138762453205018474605340658357630534227299473442205628973205217056226364841199784757764731774753108788261702288926305456907533754772927977233285537193753486128911084928742874773959370979404891630874756616347761178512842594894545725612511864348786299795691704814759705858667250017197428492973680702490293130812912896460685860107972120022927131783086782085504906088953466597016862435030586363561462569851215383466441202211520516972619840928305968932415893646897037453599101930561816439886438766032913376530677022573826688114660213387152797782330614902786453636273112151917304289649879471504816862872922646933579769349409745601246156218396600661033115614041812891325541796760076723753441237016489283058504417011352576484456476876269085026516812544665551481114021949680506597782751324341705062310005310593672393285694303544360949322021943141646118654743671967728849590914463244176731419809483321311998885817317937857915502792569793828106742703354383605118246213591821672209276710750477150967738797537527147971085165570216135528446148781015531888878327299264135623633335508212937439891568913846501039220571798931722278476597530691838549854221306832059283343216295058862721982123165975196341553128381850068693139727464872223568100359829275762280710198617385862351117880331253205947543040086714253581898504074343103882892927295779725650245417277789717639582240496182209073402019145524494930471240404989738280498412319733062103106472178180274961439138521330840642274014840017661532907579600112832149640254148002651680782840169896562375350399075049781936370484931279152248356785718883571774695645692605079576479064424553274487491555472387178714708451891683762713736064176528001309795908699308433065609863013012475178321067075088777182725830353474664524905775630008954521827376907895286996358137131193874553981398985763285565673575300548736378530619478345551014679699507022576430033390569868052076901273532220116383135380947742746321567927142561969162838376632601221028115817266204599473711824595769767307032564348282289764809911784918114637849587486021373407408101741738709616223782848190382869501049722381093415574491537276647370146926381347977921969106791900088717315562514364580706794886742075964095161639471950758777095005769599693267507941527809130389254873324995902563728087462394904828586790195231952775793160782439518105799551992314100453631623345344684548701397377397308743976607113358999173106841196442840254142351604242104170078220603055256178665059731245423106073013727255552581689805107639707566324724817196880548332791643078451057466977519165049605563952396107236225221622890563796132483609619064073165603616254631479079791414486230232195441549765305300805313205002717545876870555804965238582826254052084665318237339877810081769689461768571295702700398109356791216181526410617696181894029965389266211567867478657324501634093075890125172504259877150582581641509219587461726655319104747030803958181383559698700206041529494095451821504841553516022389938070686310170307930362632134143508939271210024662715621185735418059836033363956949452444953636421183816044673085885782443079317349233468450093305796453749499618866899246025751560486045016579470513141963094848790131671562935135663597871655679689258235571880007230360681552036649494219720582975596736519938397301506592696172000145920456996046186750796865822159115707942496012631371110708721857995763225091110403905721359080208893550301799671513087689764060417298994246221192066064771732385026795725673642000110075744360277937950837504907877874922672991452141948753384002588984671061079246407584634492884173652101168155716433813601228868384126674272318498402099243634382467648749949601246635684397565698835744028404840120444643420082965567584447589719944976504330118829971590863793493609158269980978853019278712970699747993214896816968401289838312510036302899097256924096153260203342435963825140980095465519109155962604248763152880287734685553792690818476332693311238906300655666514313991828661900665959655845364578446689197309175494331991510888259679313893875991462322942994069811203877933583048019196401716640278026735247830494272662069272489638408723841965771296656176367125436312368632979696110937727524632607871325865659448665387647249450915054963075567915616411119482653365764853060648115007792365965179839621643749695612031488262015725832707363746158068964968774230745815939685868580064801496030718198686147266102692588523572519084669890674830978628832466929386972273909475821735595770634112717379050594890256855786944340666149362309282430555544089113787393076315071961728331766430208052253868109340207878023741474328291402542554091057868122732728123323192991013085755720470952431173822685658150122193867518133920170700544197112706496028926191154725696164191851603532511504130059758817585778846371937110720735827335864630645217062694537200762291160818107805526710646955727175542733708699433429862213694109570466725071911082871591214920008416774600610086445642113112074823754494629666458632538278162121751927073949582403549544892873554174528380499789298320949660367213284993914268258371151125292174465012394627440889304060172332342987133558968517293338319990248897271195270641626393157382943729267280041457611979181392094139228611382764649042929928793560918070913144069296352129738774292547853579578753988470971040674859483454908141044994953763999065673295573053891220955780074344239336054840930823256299397571653572434295208652160223152025352077361793702736108140754010406781925016667106602493043897809393441667773675670965696144303194089772885885757869178154911216858935301724941352265202730134693181649090336599739300979993943683147633286328603538217607988492356530984611994430214644351021932068739739852965116575332033947572279002826307330829724242918397680905158117871596601745932789045554651827381214675787643280347658181037975775036908504263771682317184847458788298641468960010902365910658400973381994563945684991012156763158415441239069424991617824456250929504042933726511069991228246716897155980684726932396939521379289152216673189369784295966161891612082466000270616603324042423032428358736402130368476865824080446257497139326472662123470746901720708306432870228703123963545849364119558223652182991398600835159173919901621957286751883884232556918224208108420622382014649352317093755539028221252098003035696623704263835718398505599133628791308677420665666780531355431340089179691413955832417061362716752760858476544373955049604483174909139059434054315169471237620882012487820500302471098566711991133354594686002578471520537824574649463118476424478595128293727843551196358312542124105149518176898339160770747907107764614056399018558030716514781062829256423520116116749565860904041257469506448657537207109308214753704672817503293387653476145497391291558618873021434041821702963228229247258122250976312098205788809733691483687488337675288464058612161360224449950941816184413225381862524634441238680674642001049677794574844303996104804918292142999542852470313928474012395055747714519518325051369488294108499973543030675539345469039811155331700716171459626935126601884374428405163863440871412319797069246545913352999088858571759408917194269313880651484802353273770712142240237867063505801998108989924408814294573858265084344282081633666080794105287796278122809005254467452498882527849122025247687846615021743068753929243613752328608588811092246554041233958802047118031110931624843983148248863586719699782706770600287924031818664579689274978850125692042169080546807872625092416908914711578038671714491558294380322090929687313698852690115247576534419054074379151200965634880245488528821664229444581847200364510373962137991682746561667884448652964788481985940588434792642846970353056801553940075594079095225529226805204532259801187680972363599686960177811525163769669177754741750224024716149146856736741235609197905876448153000821147837384436078033965903721270464953165104415867712631717214263926011573357756600513582258614539741156076149126022693041666395312381847598766403652965463485819360189977363422183940541624942995102853807871502155710380517190788944547141434123951175171416417096122403749598791919385463305024247057120310511831120256713589048191359217701510596459787019311694491311150135002813926042495096214814810404744490967168357610792213101382526030351092041395281516945811232389890163685211294370328000925580485748949618838584082494444272869746440947782452405264149397465657418687444167046542063516825839942620078731486749866154698293954482219638263921486547346129468305002055228198588466178053136848822854123118042002824895531279953179016100340586600522862254899400131270549829715097557383130823892497533268595895810898873200933429964307779389145760243693316092765442770165615100831051756595252457658960293590402913588170064282495578303684379707113965182080250493522902843236267924274845212818677834098031092976486826108505026972355955218593092322982581885297824585558326086532785328532231602109488277493158060480800630292294688599981962601033995731964127035514227691374021696106642683538941257403266481923998856934693093182741457134283166305098728035914728786443234126480747486120059050824647446935182835760907879934505917469561092997591680608475516346520229807545363488869664685536173867232220582819184149858346164860933623800804796030144879558262398142772039084561690862089336685404793063062728327588075257005213401275875728584432512538325753394609635203742558057685365150040944338147107999402025353299052222349948798564280817323688942097482424059458196680409774793902637900645695902101346117681563383079001248147685221076446108271742023358334207741729740475316138956719079685523153423726070594229239169436757317452844990466419546795243309512687045494772422573097977383857022653248788195287714166424275850733671904664320455943133880592461956416215637270954341219436046471011420810866012578654604730287050928561193379458059552252135471924727991744881621919876967450971364636094523580689580678599984047884687943732121280205454555863729220297148587379338853097411514162871388095342953417920343919964025416250287424863345721014540536341794132567564145099598851232827862121071430223784211551381111863536925429537037723236778846414566759585432448059437041898855999243072029489275711712444977493860862066629235629477990541528169275694062008881623608953483984309602724216396119120264046117803791507399787834330462726236670682187884206335613539174258229085944567897133539896469418283473990064111110069422790747839018785960822302523557620040595589269942458727138625981827876299358640620373924371581747771712391953333369909068957622268506308911567996796753188178949728178910220238713632940257009785827587257724875957770496234753631984437552418360738213394021122936319943574781628670199527506439167492404243467177372641187680034448718978473219438812006234157025557993594726548298903218489606980974889144095022247525171932325309543627645705662379072252296296763898222278844412050536168789969980289405754010296803787697497567004336378375750751045044888781236862840488201273931248645726088852038675095022744065550133744593266083115584238062820491590867074124172837408489301925600523770700725277958610424922707382129763939904572766642359016760909955998633602713959758610788426733503834056062219092953237637830816947829410201401558772250571998639309159349404449514482629870919806510705998897602367829299108453854094230622852306133766532157755639758364465203957206276048820381381222412733287246508923819498437214898388341884073763461747495862326010914904610415517744544062072790566647497971106145371190131129419139624150093291805553440400273610609061388250174069965662150390060490682734251534286806651635446468036460034135734807939609979994839912383847401516770736168965088909278631496397557567146746501581571785192245526561394338376183297769677897589752804010377611244270785432569374821851671165067941893613382831463248652598231429144687654781245016853715386290317066537861723620014976344666248181056332163791127038695001196808516839319491254334959216926859946519899147927663572267328986161798770518417253376076658818868246946840975804540486052401231205826803052484730813673601730521214527326775372539120193375139305423767954118834901949693461914262241751634689390979192039592471112131971677488260305253680608717781026594523229830279580219988664893523618854892188954585053817935131107748121858302552901080150646963936088562198645107754261575069456481607233472047144189861067789759918073114796367723702500027412650047253413549676739252989444805126640010629027647054764622771625454190002440607742458172590527293464605423310579512451677965050126318659535075807269991550593048755741521564913558644913670084994361167853628236070660283873325961532216465411806200214826602727528296514507688590253299824855345924317466387975884178363408829778748889872667395333224326790581330626963351295431423416499965796499317012664582682847774675989792111043264208097184441569356779064783944210482284667145714086180644102514271831801747213370522285641859978050926695140248571316596509150058682931008422821801546192140513179515825614230501859005878791419763304706064786860194485089677377594725653985112285249983004942265583929254271519706971608643561221656354011162771519320865315507579562669021885478972881766212651403557257967938943179631814388147451540667952537188548285252121369862882742198328694761896727528763956912585050856981456564883887832104557579512482659737619229360409421318445429491246668981647726253952466225591004416715561984945645777912698484018487240535872837793912114717671409204630983899577414458910416677876569159951429362905162853238330153053966138998054006519918508207743604878938479244504808611878583138443690696154946612770181691061238612466737721889672093971205349473601609336186367227620344097439352575407230504376869314711774781467496799105991002677254035209147514016352488938173992814612739653383681641091623349005849287570894728591018967753644172525238363753157036588636962987947204544746041449017201647682732475103802235760666545476320502072434645076067354455451365494021087179040385012885252295222938900949112131135297748220715663391035137322333080632676506940111567189698949622806861105924678634110142906102546334532435439677702330512206691080277564749920036329793804163710765716572637788401232376044833386773316105038380294725981276797651031931238225120293081501112688594897504984478387835668290417555650137409015868853510388334701485886807240398611043671230469903586371460691568442944594218596594476830342415498867808524455418869984768020025874218504423632145236015354573485344974096439903858881566291966174219314569283454682556074353799123168031916074163692850526006680341649941857642444388171996019139444684604661631063569029846823558657819337655000629101261914878165419018554793187912475854166782705807049035014262671381211213274552520762484734991736835845262284409336058316031338652281471243960939232256341997525595254609270780453926267776388421486794150520497166151855690115644650791913981168038598292901656316628775187167643682201238990462698248393176038938546540833857242868419477588253327431416949419091644713614730136665358505840963502185764515222342913540447537176315520228884853864935801154338862901912455556170925106713607520987349425079134513172245645435884229168611184965957007261165591431302970061068255356095516432824662353580352737997374492165494824725258048904134732748888222613172167072470055390600728745162164554465001823374506883343321346693812170539538190966674019839500325434538981174365261872300126830447421178837789814996419130116156443713432855820398813905028385713228113004623337821254055527276301663812383321884593809567206034109367469427047986309076924909162640721562613252211321685811006552840025896458032927480458919967303692941264517091694102762169373964178939495850901670819417770109848725682565175281285212983512828725076022743821789116677959641046168778449872058610678786094804813754179129831440486372218106229320037900143354131051721968087492542710726121615251526766402420546712941646716594136713454773958835783599091974786324101818789079853704207264373816486198937292800862644884775664359922375517865667342329550603681860506713468602935249562524812723638737685821492558235649313616844304891033234711547431674120638207128438482056300694022533106479501812836211510030262213758017964074060145980672218254485258617683585857874848903463998890775462871677270738397572611639043324606000038006867322004719864286592049169256864705942654835401607602758839065182879440802864789549452009871167913871254877074264992495978587857279072287014107278931219597662255840031886745064648957225133452431060022363704840288777738336120516429025302562518491228719120602133591610684851781864896096397898223635997200351688795446381654081963169780454811115916059593832712007733057845747514865572342541163832667300631825258623910614732354124686236559410094831203761597804180844097837770503318530801894316919913525699688002391683300251190207632770433822051172529770662017174333906159136717777457199329467604502968514054033729574365193143865175911299661318263824107798548510612159053140312896851564985943179687998756095221944920461338217543740909741637851557795240762702489757610676027529149399826120234648897603988398762354805596005425435341292627951262276851154451677320361336246797369883858249281133720905575564484269511298248556261299655972845227783067920782207524863128262088410234827363784423534266450351394892284256779266919881665551792082154760359765646706651326986210298868288030760495076142782936236636193716667200536534937689810053040975041991487321991007667457893649246047219216915872302836845366941957269901676223621171335820368039796984112884838752577292472024568366839456409439035416898553115853166272004468277443443995316958443105836038690661698460405364567790331334597627467032594786053660482929677217995693297079152923847193778940051318089765388511624575236041926162953951135036328507661995723405853840261902562590680867027154808444783067881867661551910078224905661828989899419285663970436045333889132581922405229319118607764177118838534413577156878052348976945324592204763780007342175942015609730895966789667969553869692455754777357010696469334778505193135967342278585103314975116720853922016741103725616420240487032029406114742216695675361825711892620465586802163198133227375732297300541760550632373123272190847284767457111237938133900299972526503838744881647162880846823209180923621305321836170014707076085789134208438722916234250261631119784132155247047495520011048952406582737665545578945047997649990637333538611424780120217791405650617170009752393971254181075459293476902602581318940741440585966153469103701759043378722021224210324365253131253138591948568340692060076084396581316763233368460292888468587059461201057358279026738391499253050153249086430855132939488964657459448213899340167005375026296411039028400879682961737376450871414174334445809415966525219596830843479657620405087426561350198296196034643176161034043987032584966194710068118260193443942950332658872678126550508610196948317992724022001433101799097175183160780023429931475803023377255603103764383268844673705603832389616019232612125131056192721543765425048338148368287578790931817222932216738481296248349676226199270426045175420763755820856173707571918880005055492655822711292595381739632695896371500638702950576228525693804609027267569558882581384872163266000321229098673189261748321663432937825757443351693745300048568609127560421283778807095663575417093006563753279545122827297024938679209888602816720299398742351902556936709041021959554599671804260712129903815143173324981577023480372035538705597130279195875138154753392787264926230790662493533258683226675644268375962434343150978598721909329621616076517530017990775869413461889210033996753503155442903605584930589095302460688990755758258178977699187179314703355209418935347048801954694941710877820729447299021766477259536877845356293744584789611770037308202243170382738717004865024268809211292807796765459102044883189473063165380461037205085735719390373292740464819386194864991250900925454725759970686501836755137020657108282887398711479236889149571267412138834702440689109791585165870767431602363758196425690516863848306631502031983813249975747525569214001904701499636324833607569740908856191270765693493499822601800864088245869471318686538052914184851455582219157854611947169671000237591517814909533407891690925138195245669147856036412340782897070326750184541603367076942297130203648221598650022120992186993136931573180470234637216358385840427682509192602552832229039255558466081283611154774610313672887373819268725111198604550263286685548203256921209501940845162997172116890873932338937759929414221086299275789207801610369348695841276066456126730897386502824955096836047885717044540004962640296364173026450983376803204462719120581021791029414105237690405900956853421990702177583635272692792529266656108833053456539990138736308938097672233293228822151814876224908905258549284346920861086535251300068884035615229787426998803973007267389907312576986506178540294030838664019685250807252228013826569534966907285017560341962097443916899639682558933014843143536671104679243686435294971236063527936832915965586301961819429793913840536068797926941076717389090310900123678083445172365994369197701881055624461021136904650292081414238907313315184166562673248014488065723127326587238810046437476865848690120091557954357295419086631449968191505272294502293074312480967829503038653437116409329235660441183815977995391012547400705716856834889027303380054467116625674263534171570655449383599874233546309043211404145916590315929740777160998971518691657534600366873554569360928303286943265804410279774654408271155953025889381282624362099543509272495614786982443729190933512148093482116057459487950919459762489552957126359553002277336559506885813785315512485541222134944158607282196172093942672357131227241108997208660777471803580312271881182960302308443531709144996312810753108286118605223727321430346475577790572752552860723788047699131903717914337277599024866342146284297714726172252731689477597320660483175787870299843786284838933641497811277839963280852317024526721431176232599115293606142948600757048733701222872595081436581815314174371587966781554638550278307685535752649963046307501703196399977694335807138544413262687486837129182895871715600775625471756247403443116615962217257617519327059570050891087460334424161120920486476446291432073889192030498957328871306448809583492927419413357663218321807217110498085244978621961692819664323854283080267368101965687709397131140672542070787973479233096105119664088270929101071235489216344287803951750955491184595713972912816312739593033111112659476826611783775119976968818959902444730516990705541927544845967793510709992433447149702470769457330312022154920937697252579799881477564360740284844367811606683486162356366477902404551428037690695702404493993393848307870563940200106639823987290322677048036556204264366562676018822335811359211412024353276103313738355916870352172226229714043777832877760357091226255999764761772717855447884816429681791280353820843324558266110001718217779993262649279038804299049928455487591408119809001101063033874664639095948805719534947550657237390210091167669517536262471334835138921014546417037061211238455827810173746994882039082064582962410487206910716380247020164757077664870405029262381644035469792007329304975859502456627077089081709236558517449286607356536034641273229961649213679288479309723549549377398213169690068197185983897742683004138369409460209527059235709551338463049967514866941266547458103411490014381953045937318729362296422270350795782711572635760924166350993526477718583424432678946629964197660072575078942856724095596509867891032937851867541203527806545745428395691320400563600701402189004428782748791530592165590079973785542515126935105192573491428117769461476054190153502704057662623268558189193853760599432903934519820623205410744067343049624141443567832945835631116463118406466081417651370657996486030317897725135472447858748178200611210157565215242373316615279237136587380850328509896678199102471178349602574097509146863690688699818793126185562165072713487736288173007966546139641273483974743719146805959575683555885079728506320723739333469742101386049226661630046535640973577750107816377578792143837200749453816101203225745373818630128201313494483060216093476250598748774870310012285940733911446232756422837925072948301499562063888898337668923469691738989644761109251958089779590943878113116900708727316044983275517273041979992364468658286147637781739388240417461264616681541060945130321033840089403670437052679324702486222414821154892052703132360283441507386438230625526992199153340296502783840010468159498960723451452078795080767165292541329115708609938824815190844291059967140674868062111507154945726000867351140321313491066782536942875848010323545142494906153674071193426068928566761819598024115381604654583231001733030519951718674522183861703157394004239076387235343963536534704999365541456893364550730788963365375941171579518500308150965540748533085932025296508095976685240395102086717496170851180143749965532473833157051997641568248161414710677794218272675125604204174741664491709048177718389064960182051809066748388530596132481253866024827701943011255306553423169873500948070017191728667282785340079120661235503885445131612453654542953123504753092796572112151656144634088921941179208001570417489853429413658595398500691890290468070044024596757928469094185265056685066961644957600000354252079634999974466369074474377650972072769001451703722455289422628612511241197890146369444249518766232563956155891689511054676797514045174904709555876043383974548759232708587088659231613753568379504676866498071102781397020061737796935164568924642167278898141715007187994845429526340601150009892763996388617405294161243932162465105877681466730254734873996492819303893034262369982887956993185613864338843062670374647527103605791693318789003809251096389560242389530384574115478914118257387429607381483992735456235307993352074192707049687446012078370976273461629208046764636326959867146224671259107091981161643325996330968184749832379916878651492696692558639192003769475083309282557496417038392478126253330098428364128276602410261526529292318296243179808212880740713984722694809431926374590686127022451686633621409830281515221824944547992418619269143096895263591977011771657840855902453691771977013174576184179599036574337155092840990837547017617976955129865868427232249070221044822026984666984245050787856947037644116810268903968608361514519657517787839242794260710003284001996048038791213060419383220070700881169516003060544009850598313578681284873550953715390463826085885243593727159841986770931253119516240570034195146483981206555183368873792581343022951170666480353208228414541512162730267558950635174894879412177490936386941434503020070568732567854482880667226062540257252575594686566935545142145963227976894689266486303063587127398244143974157177694242685223589101043234246345945788343624144594842502800862272325698631538905237619119560333600160009941110819289353985916732727782385452832273574070813914945933874718336513136047999139676911717608662038626374541332292123291263262736883462186049374559595056892217742306292222697171002794475726217660156672425657679250172211530856393499789132215362546959955630889673216715649622878813722478883740308531577462301487038949770111823503832123298535065428885245717686167860442987558125981264992888368923597128383376611005337861429155763080399577417142311369284096558364195593011151530015534883895982675712333757426318135527802568203185469026578028440480986437697095815033694064316373692466556878814515188299322085507541155660765959150997782997021883522183033664038962926404686432079609955500284170331044483365026744048324824403442155068118973242033822033430296917457380536901967488806677868380659432341578819631414067788074028812609731432591047888408300664255881522328028799629033778186415267285540788843966299914038925192371287727252276954042277128559351205865636825746326794299854938620172677390391058268171373183875367339407932282875681215614398260407256018005122431056624797258714686648498453995447686986405808704164838942901246138824802017876317250167752033516848730233914533510771401889756614812640812446879026215836498710465614814971020927321700342045937212641323466881335847423257851071270351910854035768062484926681589688391620420877005548522543217666611816355615043332620758805023871229649246763382959610196939730890891412074584574781203888070242534285346254789607117561776386692967585941542218360034906992434816261111099388738906055550701417623189109490712886079829888769187874610063176674684956633764887527861035236581701188912339288220458372045919202752191628129913583903496604450410062696152533844959102848451081297934236860402402422490598001296888973848233009704618154342659203202228988879736818676455816220667593158977374993363041434042433202867245456184609446453251626400047973199818685697121318222307759589366172208720901436385344013267433812546909150681480617333557793283449712470868791996817657069026228178592701337632794973035576412235230939600469681803850991506058538750204754850231429678571633664950871554664229781082037438425666740195295092909366903064367465604925528843842096431240802125496883935375287399512865825910488550644447067777699407948623001559556985780617078216584947134214094910549966795696636417058031448616276539996807238692573060495262486277783180185343456039493702283876011296194045255690084524128826481636681116950785774483222261861557787383736809600727965756677280110596680295756169489936924648722227410008920112932827565873477196388053301419973385313525014450744665190949999759074339074203309410528446332634224266459061739985775794246673819283889951607209348698879546078315721585878654498267646784827856045894019001427241722788931532013890040053071811144804557018386318939312760690763626199173602574349446981901920872987871274694459532885362337322006949160022940298330299256525980917479389738914313600916339693780777395923832628320491398564077257714175523985232112093937786969813126880928275163180762306758456801830687737399726821133865847429979497802245546853759191742750705248653067419130038765791871795487052219756311559244923478903044400141853030890762054917740833220602952378218537133508250253802300050378118554260748521271913414777014392569447043590737320300848288086591038503455704049202906321931209660163272820868091528328630870684514899367724845938179268140481448947565127797854756521418996309829892853527478278919657840666094124627398896294166128475535707753881639859021531161113983719032939890159343911928852184647535501931826148581196507746512265290526750499514003881076842821363065612630329283272371732490323740306935240203895106053337350251809361069260003039650264102787215381882263714628316175442110521101792751387182799849147450555592449454723962683893762526620895223866865819287427438299108026897402087592165884074076800456975788523456760054819014518743683754250491111116615060883514751542146481627739690867089705293734558418966874732296722305333580033189030350676768311988733041814744096458239342448254404204480743888353444620345680690859843028175200900243178286493769496111907403544814656986891026697445983926081484103581776828630374424568640016869055516592008894043560396362424338977840235312885544315170430997829748027008656070265022587495608940203274895816186390971598894625567234277170299912160065702039941493802153725309170452477857680522602187204102295464234690199763174724998091823083973695886932580247276410307013169761717817687065366910385349259841660939211966118282595479898738746185326300482876910524417073641579497296426170544522158366995315001947877316017309786134145783133472355248094211184664202556873965394294279730612173337431687659521766173614162231296624430362490626923014853871843058630266404581971053678774718457055905973931906212461132870993791201370547411067657401783688588001982062166797916668386735085181870851539845709100714196216009957993601399944110144443661711396082305151393874603630876374635565159277933443123047465108817328518737138830081694713091999777965986810702020921131318961299232485138270110564424617254078118278711865576920229489336208993230743770526021156949521033795875468986307280503604005228546431247820472329484002693043774234253042352118521350594514192349897333962823319324951630389832041661412857104613692019076933604184566964961619157427482167613375781040623135217984861255119155706356678010109156081002242206319654664162257694664939747136157979406669174223259388570820971392363702062434535487208364176851982199146204337635836349012645759364583423725822493184619850970519522843178177720908009550987206920142109134475695607196824120749516230495603597005956835134731204606748606465496319173487286167430376675046141910267305119231788339990522645195332483640665041690755931595176781309333744586329196877960774377446193392202409035347985379879855754424300388479179078330261421869037234867605888033312130556701590381478237300078607679159989880293146928772688064860883236802191721590448650045728125712783573156561800592673670309759757353057806200992270069186544912046686241444143607165112967562248377681808141003794228305719970311702010437808828154134613505345017418986421040776547755934223774224891975242144933348096780574169257623234202317694892707755881645562023175277504882741477360005119452576395031432181705121671595535292522800188784258395981572376758506903440496906617401856536316832117326870188534373747457918373014821282449524088153841848144686153499942271067942630232812138722145070827906023679876761242747912016450712996013117966525389754928850968495873977045557442230030244107248408610729353472007683242826888873643556601653293869831244784587302415129190627746716020263395376337052633274228258824997854563304912132531167491349094963138934821845632305702483855021111709582083868677928302893857886125754960059177561661714852859088576665794593608360808265695682730719356161363238621287573231249940356274455751084203528475660448444555205957852743199862627022634054620130784177400778273424209282937186205104263477596798279309665143145330682844157915124849306505915174804906792904604460175532955979426938807483348319981969353835527528012417083276407791687044180740198893138499311785503293966334972780924530703384274908205007612568886687475882416824575008536188768286616934430605662464361802947984928853205142303590208499788821161247829454376547171855118194109933810497531802991639793502503238030695115000056658611830187553635394910344423054796906295034687128129695092009507700012569539351437303510470560162322839039899230526279119867382640572738032521965348074962473494701828850407440695327801606186229570946906164745292128364825147425333374906169150387678062621547342414216499978889497905828374260924816326495145731210767332757663919681297641389753115088124403279253804554301476367885785404693798618176953063322178836279480375625673605851917978141238922746141595571826869762658047601487900126032268728462715068673706898062681857449797699770033334040672216717556371277859956523416891469033439451893270677757176393631505457304352433852356312670735589851414662811994149897662763315905615657729025550225118463700834259862606315683610224195852819040166125268110121330353237174242599688622821995212539262817860815417299653935131630221962694981571410575824550986074505724532975445801511260605348482336693272250310443869184582220684429166275887743040032548235137904969621568053730811311015779455835781382515405217697939063520095043759922967805301135934346670559237377320705938673731800642740087367414143709489853243342319486354804540168737957323068042936826883144875768211383292420415058831372607370017526496147654697832499111510821944463964920836677518576485964595700346850124723739387495119295382204454888027223506268117992234141844109461284456947015030542461187482077917465887062887688583662487665706287669602828018335656964612468924105667447270647675058648290298849320462010036057768160679491822047534008501594599054032967915799600486209355503946381570521706318365932197742859609159593575457149847081159908415471510263686570174422317832877702725235726621606928331060226025058497041563688535806380293477003595509010851920609159942222541103464895041427211674203302555609652082303466736386791167392599055559536148195630923011739458824689552386990359526177494375347047445485588722852955798460546145682546419849167912503949151918987376656976010780179083391559442748365334365063665243935220635111637051874631672549441274170827068111643654652047038296752109730970239992248561019221763097364965212090424819958582970467442610366354290279867206859127488219083707919033288237420357664213099659943843243280029125347220809461477010735654278719767210364594340329845219456796866878531987874636107150278010628856809140895554759565820230438359394081164817502430275856233071919996073962321270100061395468532630019838722523370800521934894250168752351786054990991662724434081275135838055808527984261087621472440323711610895127292574647508626329220559097327184635872385094993020086125063501918075619982673629547215959683250761125781814071192266003368449647587930870511856606383692903673588559911573072303056588309190914211593933066227541883472404292093919828759192388834153829850955725265327243357861922409790984525416402511659561908592450752128552475134602361064516058691917833629677267844885664286388326267834458755559774288692850686562130111210670417094382189366169354831122278520130681830423100613082112542419965854413078410688733251938670609863713455531908892922402299767686366459481776551939132330330412522485557911735838604235552067874227356803650814267284079500190082614956629706498270327601662874313790361513512692825522273718115831671325509870845872124026481609939834874734852078235021129232190016217945665597437883232475515000703373579380328980043054199360163855931028181001257340531593896432157624808884706220067231627603251205456103421850054031641977081641025807722937127840099500666734556162810676444381477059553953248302782571922271136840083259530640820702886639378709126376394580782003944903893186790850691879788712404624597236614373340128286848523770618927671139524251676546708283652969634787095265387987631053984780382121221672439733235610384485844973213948596530422130361182177400250601340581087729441201857608835524237435021235098421746500895436254128644122058411991478723454812874982239409921452029379668962703574041779022700873302407425174630336780065804821697226300283968326610167962450668995471049933185954167137069819969388787067135425367784861275423264080830633500182216818331499127774522627029652680732221090843711374031795668501921471062717676527477517738483317287916552774426669652066659640199715530668297825593493497649609421652454379454616894520290401249718600077420732363271180658902910749660226937653786171684908232477670958564420640364751794020569141750985845669356844042386060319421436076706150006615834309392342683507744656542047662251629295030185270711676218794762275137045383846829731353195481536462877173907719160055068847589011042313274877709233355290409395537296042063523835951393130858803476458453508610359916196058156202846362569944140714436009609485658792092016799069170048443455001696259579038377070132557692321938076948200188678834646468391339806182781431127254499859560144128310867228534330950682315414462159793178287366947307310706522062961149773396291896940753374426517928767026347483802811964665664820746616817796139380396955469230195502998868532997999456904987439859346105061872671737597685733075213526200829079744175656652027361199653798501923073193228862242453019604464013743699425578065183105483436635139187365530399404622157962407152836268128345261752546345245965863842208625572621168888115057337717862821189347915927382688846151603028754211859559985592499912852784768311084002980713400762066831369896438891729466851062944799184216281481072782049334738722005677075960362487723615917895406900467731817375204618716135369387094841330990368677222664810066122555482302513635303069759521725170614233042799478797448885082751517543044538782292489383092148457575000663012516182517131949759650364280616016693234039772614944960514175869807356912783321598628160555951487993575301410877876706622282902742585227189538260640218157110752622632089218812494753352504516551387881085021518072195620122085946828084264819552592396561910982183826111903087348612501681386889327699434545645672903723171197401250718277624142217491131900194989165471980812532785726600946040278929132770049768526417554762256284858189674353166099848300274306512669347314760977753335493193754899635143954713088079477211665675882311503252754452560909955271280591754821925218197774671138371576079513435346829255518783717520034175047102589540903672158819649967991987457499116877440592802479338075350749464202984471892837590440991570029970488948468132845589508443077198920574902575635644692053261843033542921476942211499425962373010494674060903899845458521441811970735753348644323417986253078168134709739065185426894596357842672971026278263098567046109434645118673687856327292449343395787746579832541034797922835476110894320597488380433877728083364666066130635278511848049612800542705200301407857844673839328442820829836393478488740657809356042240214735249082628877119213180945625106987356159272914542716479199886893035640065393894321383470355917861356740287997245128737949113359222894094293038295128921394571416073613012222694856157928129043266598242530647994873212257133085803425674396363717642021894305935351606959416209157865443978648231024161076080553071108031079260027762103638155425733374777142706540803920425850737914420580595453635961973706311599300648480191294472992243645119433803141694233549628292245892407307480426572856685325447255337094078212415696505365604157416555697778272437784071688864975036278113104471491944896505350509198764347113919613212438971861719388698498847697077074339335022976158063252467149367867427215012988125223045822437014295628493655936221224033646134022856351544552729000626931822464988732069477447431430785254837783224042800122553619703797202757137497643090215036366271799034732129122120736609265929596663465991190838398551489178303303590319101175407702170302863652679034789838538682289793777546163824991345210184937146409072332202054623053367800082909115507630532902242279978287091540045910847835373213799150305554525935201745266861161840030207297074965341945293247090490245651363055488770133582172716667853753634932049350318620566743773643303415764325142090466738630016259509302134834121365572145613934008037953750558423027479962001232829598665097671299986075746866886801894225342630928226577919633566569536839105941436678361868179971140738240362187274500830775616668042466152682480566792767296878615754885656614521251863256676679600441809809100547383918462929664178181788638291756036208964812363309114087836398693224438115714301770935848745245494126386444106843582673527568254732936031734597246662958485598559198423814973989085502086906531492895396150901236830003865126191097104376379148828529065919982881703821600269207372992972415289365083829235731675569665237767642594388140611988396867817682575024479757899887157166502054922194373070188906517361051638811457173649630012217689593879886075750880574471526376955386067227825068243573252918089100142866466837229153284327317851192095584040668942138266761316395207313654001494680211547403593069286525769341036411377401482298940546258872531974325738512142856613765952641546249385756539544682734869562053811442198691296708814010141282934806644740496631568438262921734816059065214000914328707030039512561115340405163500876000095862103632262126719349085518432291052910442159858211016080206599700749142205009356324242542922082452942148377428832054931484500810932477629886165166409208901780374990605740342745390911297163715492466217962346207700542312572295546944055505159633386435166858176934601523355849750938487150436605710845937679004843314694341016543249055780278485323152567743048514049358186436252741553809965595202551467919928503364142149550809904497434849804651513909491507691814201872299163848928500827527960561949434760921680706177412297974755356218318036139604045103048188575145985996302642268457105670847676181691353682717497947628285750096051796190922811625828691423739190907484006454302048129014544180948755952861544063841407976672998928848951017609234199918181858042582666810919315120206153974531489357778184127901602233962172821748183151706719835726523266112191946923914029192410962919536221922969429555982164933845458349094725512964185882466935949938314865376872708774667020307811328930019144869155685086478405794740747400512823256687338266828741789386460926090240151651553832399969548099799036536697405555018899219676045506603126067756479237293809798726276037170286124020575228326206301726655758932002738914256864628892099513184461670552686437116090492373782996057497960102632140555180972277459498674944482591798976597270976764012899785504386275001986309690540217649774648393735819462288860310146871539864884965274273701715551776838950922090925980742550034462480062990288304801396998254287523264529028358696331504930664062317129033074573358754507214403912266612968719569176396256091829865499619991346202527173356562739958359082895677628757263775257354525008407689440424053412368115593537672953632510677806572505813869024073277571211929070466686625474832748410085993016868429957775876711428513991238222079425143867767684898181430761078995932198612532241088597581381357997255455625560213595191841352787748035377005368152907964952502123425701964626065743984921058821847972663097018951599048946653658641106883186535306324250061165217941943623277313054778730777510412371986463480021073919697981959566042471930955526701521020775739051919848946297125349708499756077188829715067966443831804657006956580453750669252816035088623128140443001957742618460458995926900424227821289907705477358970214908887370758140009421301254396548158706522942074502390704356150771035113318249114065502452244302537246419219709050196505012001411658717380454057440280588303849344259892247978947981422244311063000164605062177560043240649928912307968462482498735448811540370953297496944785722323326733673887623448408692721231313352794028953662121680761761992027423008297959932771261864334869090770027518255545624457425695375424758032885341860119569782230467031684568358201413035657392243382834138497606011648175196018436330863775488626007052743239492089365942587375508686343504137664998770681912651676281084366938627774720369553969156752807478250315132565986085895523753519026511529982174471364563538649254130438005225658649849763806284959136104122472227869452283344613655594457667986646242578827532775467828270281556569003566423451952474450824116716969517226516313348849058381240901904281120556130404675358607808590266166441599876274187868882608909553963734758134245978092951315602404679652995155581079684581383729700309070987844664943100358574842745145019462414789453978656790648027070840716007023995762663182430211930478682958643479736560170725400659574792838224642193365395535419444223212623014498480795146350991938109512673275102513887221877439654289132875604499109534147190396590862058405057655615144728124049302542758126903971428969875234152945441196623749039027064854697776313340630063611346497150703630775188059638385901066297010959156091026782846298321210679405890284098870453292396939766067106626779337582953331919006296907392909860619030195690510015462399165836127234535509232874828527667316043061580572909484665754704278796420634965312536455166066575356692839956527396712480960362466251404222240543315540241405276623897566172051476574841253612970807940752538313419309415009980365348672274920778779953026394171835106217250106609736444518977434626718669274757225127997023964118920948582392545637793334061938933063583871633606259574424383095828476349300541656508192979920962970894674512127266662496382651415931216117484403463453895658428293878029336004539936396351896600881542698253849305266355802010573472085583871134785811739106037561102815376939613724617426625085803269170588058852015042075920629964062719538947177823174092674727967791556092460754491367373411316537238083625233904749131493151446478045856942706895773803454994039197990542960056467058980492660913414289496297171454322429418993426319321185220777328622294650337976555798463712090510895742739368888785065499098661633620245686842997380489497992209355084597917388015170175448142101604696865597192346975927463768126104343498015780740306527418702679757068220646745410928632290508592898945654702032787353357352885972483980300994974565153303045104935667899564208408977197793486941809536926009189678887654733842348247082991465773439353493422214567920448767776405834174737748326592737728866930440313000607834418053044674938234114285036211945956067328266551792537004502916723053332485325571266559353906736568597475158014272300738236409929482980465819773558113144661599911240155406033031607883110877152785761525349115310903099240420419471369545441512896426161643257920458228330846413366623527766332500945198408112395757625902271050304073880580960857497204364825207712257705469199620596627274958651591892172761050888534207419606932541850667209100458958074808117710759721444160585485574337904608802944311200671636976083474611523194810309813788187280811966170296535346783947690405032766178108418720533287958776413387196436569394112344318714794793947192061976035043035754218654396185074176458737857007362310171202628133588452851148615898398747114048307888181629104406964906537845692578965976084562397305076467552710706557502976062993792776030126490478184484899233482066577848942699029561271760694190091459258074746091703051017191914830085650127260865876711693977210561546010848375694377407777650893832397863615444168168577041763642199105585954929025541352847553379223580418951544627500363574035865590308475312365149551476607834890644640102644107276159609825689085326425846083269732789741914297481750222569758706385484696220636535115800207808883632610055919033033514630715277574259509067466165800163012212772785642165209557583143923906439286778411037774987603784679961613951982599385397651968742086856217592879401460877982023798659459911122417152718031736380634901811295126228619841875675235589350838686224202960940454947368640010139038329906262206573381940562431177240301677027846595144138256383465623137225454968107523048020211092634419103305802021299079968464558587379162826670333632236078997356252611949193096552475281561976412315983142396474821982228397753887260557229642173019536234389795322894036708851931708474228652831359380172735874231916524635678207378440850578102064749914002193053262270256497196284040021131388383117024512750545672829633534032750476973678567900662503190918558598495201140341444859025523769304568538373950428322857515829417760690560970495763161851816842734588615611293447786559734905959675478224666301951365272911000166927906490113303965623209274570122428384435338485787376259367173180023347091219471872043997793570220141154884575330035313421508365468132487966342690802715748545833958883710169792699630257486552347078590006494063065151887405981940617337375341510549742561879561897698666286549796911945831645684349359419949759148951143695268765567753652948914980324062040739081192989673834610818652541679275108320720353204285139671340185649871477581502303136488446512545800606508385820304184695055491225671238821520967037464258511212859294327595610651211558346275719434656678070053479989770015249603585512790517376030170528984968460520817655493844451900596200755948822392813078744537214501025481441409866154186230687284293688924946413930258390300343673668059914620764199522299887406426298692773549258398786317066189238340527015579545650316074350993755596959907192009693346909768292988893132833541397396190757738959533357244083296876841887878420447223963914986101368104945118128794617344805244991329633127388877585583645210575125721125002538268414446100901454528387361494257914680516015087539632297392900393092094953596293905729809537364265044214249472611472390700721140797256415477170494923222611135905618172191504116016903765431613799173935988655269594738476986046458745371250574754517338005501980886385928219223634070578125793334424966497208243499059538124427594222871868595086416815753368635597820633009714393278117633687592880365763137141974981318329559695388534641489031697039816471576177086876579253372691614662663793093145569929544763358753321834801450884545330277565489877102541203144129784627345937739699702268736695410817139470293890101765471821089446381158496948571473173908625759708514531170119034998457232809618909766439609500682506130082333579030566915520406147193054761962234690662539560835856833007478113697195276002963278518484087426195505329014258589532863675254911854351367037892427838129705020582455795516046169745748389671788702028377654345942260862662018006274121413355519326206853647185447651476902463827805568681557644836629736403121986473018943811226326649788266654835866611181223416792340901236462292315441108072351503923242441723799687056358581962018649692641649349040428639654404356591333315902060401918512377975506710530233974739704733394366576473106814073450739552176950458626767183088941597458980941931530632982211047086922741096613430646503130940280223867451092164397384191686707889368346935775349492289482761711132816576783967709944058188206178801407343544075931124880911151615777677979472494090415602529460004336853693380145544733731986955416007628838319869406598478798038106773164795879542059236845625513243849928867296336340529316794050101536157975504336536522619779201355231842335334284153282402915931972610068816054362087138692925768271423452770453963832170057283774091053184434374071578663102566857895133908206865095702761062476413560177215427851086834027242822822026863693003948632376796778464305448393095513241577871480559496998710175640613552927787855750539381871568403516181142995704674111783966735609435779208111064573429068999788923201205187195471113090920632079390957889201108889171284560420480185697934305741636507893350848240568059681412571233984169333770148798943490877385844090538544396809048098642004583186672307634126519354564310348362445365974902852362071164091328548609064580028013071431515561439850694740765763468806939734259704162558065659342846324556844483572386089973513172760533033284681756352405374508788647190862674181319484818213525280018688060064282647023091075100959755452259923685261225599224554107876443436153581955367511491031231531944357601735180909647204927899949039429508771271163473617938918926189385803071121516651267961694397946515268484441554609771023700175479995350398204080025819320704827114561935575413773748684601995408978876247744566010427347613458311409449122828926358229262111476128699938319257731406089875611859204390852691238062150938534620890352499846094410425104895071902317902556698547385294709696199749844246216098142787469799156883654456833533876225183501965232332903870492137789071270683178581245309347413976761172184395054585692460744181682636771206441257070350089703074418453883485316822472682157378849949053701949921256468104263342825400548872697062474784247150898468737955087720462133908898186311429209977527977562531682930213422302860746791464106525740932399992295882651544694087190283216779675798072369297892077922508220586925323520996413453391718810592192264324306266654092216231948269427027294094810338757103089763260385181493214083328414389097110001251532873364407341981643845418597666878680815217912804531731669064944935369220769075141639321014510501807241117073506469679709919748158254196336930895412059303458162152996978898391206319229224579905915373354526419067082664859395122024273591220889199349673494456915375593837121930168664506698881293361992263290284551505933592275088624514750450754945879274956619799240930989646496392953212415864174284728819959296124512127314652028051969161589283815862787993624630739469383438631508818335684322793512422716110360395712780456007278125966690366917873319169149420275416235631002370473607577935814619322230158371369843247924659267000849526293418637643192145995261412808364364965145719242148061907914299717826409368731612493824144562211197120133668329730581961843561702625718295519567663015432791730084939541637052467216489920310915566523622813608833689051463947466661683109737454913600541885236107561060747234823462429693892840899405745182442905903098912638506141469624898546782994452274089507646840637719010186262778571817668121049072445493527799847739462649595151551720273047118563809202030146379744908182788258181960250144869241945539190062236732565339945859991458309403289488832677574451917475229455779521361685512518181064280791080437742873953467887448925256465112245369887241464175804504282558622775610660193878175198453302079080827094252703225817047429140226572035695145853811390890124323016030630373900446921091957617483205306425241958214982320535688058291442996093337914937902461946950870689192986717839676973759689612152088403348338457414829726406072656020007375493662200995507480180535344507820157711180305640245812877285054361482585408070024012574054628451812943511876201590860955723084482104818163666686344924149749599514801657730215459108359284306834901519513343298153486355836540091213127536326003019765662665383283421282590825551488099184277739035231269719930537230374850098983641355509240002877871542865309573932657070274831538064796258870493052862561464768432487990287485318997673075964828329598258101580891447960648834308838674014704588318974793560778224006378662951703112403209568481796250385676935439237396719831667068444325283255233497415458564859012220482673262697015252887633595203541165151886985223058421476892252964004512812865936988484487615292453141944796039965156164657028258463982002136069549432436496512521200069701804994133538548406912955244555336919701909172345040202477827899086834176009264680518728585425904312272747216607150110120166707198074884281969502068930201919689396199389366057810263967680721873831897521810347234589799309257837600896160729441664262529375763492024248664015694751668016345890539649040159307514564073239580922916891695317424200126413587299022495875006666598582238200172162694225000201558716750111114031739262721621626791938894861169504985329022862251822435891644192002773214175241172937444223787411797622431202600137899333742883393930678157626745457714586443213072660535063004544825266669452985571289607225300040479380423051673663346548236516744488224662661079118459258404105045010565655447377609415439915967964962865494040173238954073910661255332924040358269273181760008787206908940612481006358050433232117271886011877485133457888762255920232413337627173626139303493506629562227719956247463780965898842625695330895364150533325046025625496035037316263522310571654024878630787296291145032363255654267962804587506052748563598897503193870765671035971651001183285223526350106552589871944980678156752557206686744466511632200657930794354473760941797107875087316593697348328930924014891683634944621163220123319201146605495881885397292077974685482298864822037772682977871520461499240171573655853254188219227681109003359767234870196694928758317129896261128624489337941287968656777612361494223827012589858953337623352725986924328067859669438982800331301178055518699511247212181412126764057311621565334131422023216810880965301032711222491772039493988524964164832953278995051410196552282490482056039323218812596756915187185063915487542874874532164476071702603628657149105967098313618084808007276774737249164099653076876281010610049331557735036583501122532048817777092344400231793257513946392885254147172686234721576517657215367065122476994710985787155433327372796342268139214603197613260700819318792687268704535153734628633464353981212759424180543880986329499029687762801642249413729933918029230975927077392540392482404997686575240888608794051885815736545676193274881610756282028215347288436429848694233725653394973518208234122763986414950484420305638657989786563836387368300815232404475477624021035212732522324597130160477518517814211202082511312580674319114975469140799491563782182625132853319254138679356722067843904106463844927203552302642487223262123796535105507480728641369265717920938594420276088053940262002937511121558050148061994909404191777911803291273833731638769339202054337431782438380127830803672030090699595394000457044448414982275192342537062527320782772629855520474247926889933960337289727060696354440056805522887173508168167640551180199053646377738889127882838427181267390873353631120214922431766257716339192002755078789859834520740244525899371010696022050550223686866676566917001324780476868558432460359931439590399874382365263295854267958499539894780391129941614812977412518556912045675639003018005436273455695763759575390460690084072609111167382470462976732756496363862501551463649122782665913788291865911952417458514959523846826973452038228673481620754935149667928035608003788940658963493561738713585755590745138399077669402719237376972778689858432823434866809531997484569994548470555533764755663815052079920436656008008065138432355612259764764405115764459781306628050025546184747063024770241199362082160808498783693208021244808155256339305356531164854143807131880224913148721728828329686605602402354379296079739456457706007487508827343669790245022452349174405086840759745416766831106464942107068508896980797259897055243419831611428693085817784738280992545443028734982532036792909940936179141528036037929837152290594940400856296110203651964565164696628180178190938417822875176533867617079750989005357514066592634585486611771095861851097444716971838803048165688103916828309650926286048227521312767030511986803523341745179372217089620768769856663256681095021122170892399228273185658208195540385072255160379334002966919749944555228602190128421815675327553316580183569923409631544756779122021682794657417464333654085597009309028707558019930959246371827842772933514964036357371512984674765488351707758296785778814193335404618527761844862424084562761348350571084969012690481762889300942877017414839470870034377011550827962573605380383984762240002324306836056957893005478263401006398124849941545286502996903678452297276520392479169675927453333044996777168598522488197009005446621564869106153410314097591788937027455656483341287186795223401115085985745382739319028648882391836478697700495410542600866350084163859561020622633573516769883033453859634828630838328504277120801534337792843634961044985622545639139888142452856665850618430379129546580583142112041251223756517966574624027949149785165716591548510938167189547634497469803293857827624144991681997309740522129270807912497433115254645783403555741443361222306684114512973125453254255174762688782962886436949717834622694461229576382668951531367764502644942184866001226093970789636085343827815005843669257619251082383553865450424446283140974642698149460025108969636213454983190806001850513409795749220669654288804189828263620686428403500152411819881734598665806714470488033716809841838294009186098233264299942104285254594104441462133686637862908714864293559953620222562597174011469271776385086740229098754055209814940318480589884352595996909480477889416434759972637553659454199368623375100593620249064766889611710823433585945888536432623181246518802800585033007350553859281894634410253547289811498666247862274803375465424846707100263868152709515979387230097983969852764153218460622717009302758272641809503253489678646155012188959833736207945497966458229939604532337615587499621439187678080111077247529042924012833086765642516698104010947612046666537353404774711594342934392785614760171813224872966534723741791336787290425863423446198612451995747984071194549037408301252492849419706910940901495954602258372992770644349438329419546002886146820566846932944567256213771016089820196583163645089753940325928803600444823908581748126243275622846962497913307249788483199296718132621885167770205145425230308801189698940431794418361814472636685578600066654257280877755574630398260946960273426822251731825771316695408166127211194582739067375239651917448118994461435228649333333968183711483929340857468901141474741748839033674632208058514512523796506741866585337705319767471323996035610427931405293674097735925121302188728967013047755016074258029569099015959959303967549407313697021044692999762236130224318713133532179025362835744937670027458740803776412967015147608342716262222772016102514590015012084929463072247302400212599405145159410462567757386808342565554052399245768455355265324921124221828512561121040838483619233558660547222332565231715115934904655460872906606369185015023699825534107342997223353213979248581805728785882282664238427975360299436539864297840654235692316027445015625893051592668595793232710672003050107047978330327970197199077073829467769252488532518695178509044596233866688909601021967656993949649086367205169498655769568675530668839129892891968404231328469261030612799900643117109595911328382439101017440960265162517246449961406694511190997816895476571824041925935594420630909030948819333156010108440502605463052808402268152075255940410632014369135640884559636663429898473991595290549795007238240983669917398757706015119313625465421931013820515306325028710679270653318858604120273943562645480125409855215672923355077288756024371955943257475598351353849202942827005750270774108599067052631590234004843637922018483941510815090903170253840482147342786104654561475378129022983939081910422531501949924484942694545151470232136397947299092983023262688553423289003858020116139568860523677749283862199011789827733614968907836016748034320672653915073948110184438122560265980193537759074241398670308220511367803340256435302085430106096555593824949459468369635882883756556453147600946601942094228204011817549592966687287233449684092263682338746505539783678107842765762347382228228879533865002876741006527147132739365576949256635945774121869151402882457364172657803399811644645224877842570913527207901033806659852890020769392931902275687055355299731985836837688144931147276758942886237498671710441529486902613957654136331313225756494720728649222447930619733013054606585743529454646775134904534157617363025460743091725433600310353494599238786309950774493145585453282660116665867498856372042597903720995690069126536806709056377112991145695218392195679008441667724216439580904400802366828013493287916033300902653354153678136025310767843324363993167405141355605992109150068237646738470022873505620684468161026818870494730366713014447843549391733035750433012992585776997469013933644931888247556616469782609064026508635544647115515659339638538566481208225537075832322580706496539824142385341768284347215372690796094295733631425211052117911254172952931907114707538143017486917614510802003737476030506484183399851697886662503760003877105289338254912621242162455517422213510916075390102500692669703965441609831904416613727783607650367815015369111556634226945893574315177969114359859375799231774254352195625081666747842001132009525016279107775069671979460657935101421436163783251886142162322925223844626223721834278831897807216196236550729844141894319121267921047165116582663383611949911891059962102719133486921741117581838891264214502890731071092105877852948215228578939621733361877246865081135530354725787971069245479591831731708911715080364702771204242974213764151493620730888490349664068286362269328338986380518810821627822647451657499410970234248298930196741980923580939408591386027569910052283019987582941223070045290469481406127830712652269605640069737188737095712799261836060215198903742582793625042053171652148062382153997491183932529726119341375107751400512812696753013100103158074297502453786490734000520121981215314245146719320908478311594582165423759093457587768012532278895786678219386198482531440231727184390084848081422663864383736592517274014960761478125537794744255310274721720660263006672313057260129339106236884602538768304631566947589102866754376886346340530988085653972936293646744299491399927528604066602366551282013144067421478798742999640127213097932106723786023626523158208147725373890240521775460167639808545069732691530369949836965157162183502880324563915125640230207577547206368964541205121253651368593366460940055570263020780387268114454021942830667614333534098847864344623639993742398102642640575681627735102229803515344511632951793334644695788056526262036159024903736792286449301135399686339264231694963547108645479564452983079365951158680182062139709766802941794708449233707603234466765392822175292915532648191521356607054642791654529921657387218383053189401049840774984327641957974815961365669805705978351308801474178542954402014703485718169655868468476832247761794125464255971174834435735665578050693838406030533896866048993316761384125720561998769971084056482777708680158388347527246351303256555584201452890877819742757092800547105735896801586884525800823383842638764819371281154857580636109891735059085994875152423352388151330446359302050258612408118979087650611378793794025411895453808435465689255427085167154134136196667785392317768275768261540613115418795809569948125790569067980135945469020304004334385792144419623597475697039427526276023059694033633021816421039227694530131956100933506336507986775879718725692561885650803044690746248559333234112796151845487189578392807944623940105855118170574003185755379871745314472464148471976839155488053807733753866491087391025836453599430838827098384841082154505906546841991069428672082497895512669128580179952680746165854100547976199170099041663686777262262584211588316457701061033420878755732088039929429655906903075997587266473439709192948391270345449250962806071935158008343119505192280554520009280880313649438909944234909960674286743590693983738714495278218078316852826236697200655328959284193976575300925539544449662172314647384976140027420696351259799664270277047752386931525527075126481238279789573046038174220002879619814365106291039698171514891490179582857102169682738757118867135387723281856137101224262537056392621669871248697048936579849769926339216228003898663502282964768447675357311246733319579379398577975041073577974585333057887805318670271848429661783116424191662539890034084500996427420504354308142777282564416090270753382177120114535059104492492111501764526741400036021222375433928653751339525851581260291450732145164947052754754372919531192065696283528080515939569972579066162609870645145104636867111365642003816717179351162168253545089452667018796331295189229352561096414069305864413131673914495558262943501355546620865300533554721472014211081517686339822095512765404197711704715554444304349830157724062387031908211677554497010409725296924309228119292144668029312992988963336848966415254497146241695445396670692242696795812782652491983123163521377020507823573766483451472430534797596135675216424995983823573414955792413591598338482441471490258450087188214282265843290633279917794607225627585039238359375300134048223788757068064400635872986117130023476381229493478882499176116398517073295756373787603093049896646357442681030078871791400452016270812538854360517238408545035491121612306824793814487261947076397905913237427003042911495131261406810789361510098110902297644476124374685291477725715440894181842881472838938702693861495472975591952010053958586034050522862015947031529608503518835520709847766591426659386535406565851091230111418772711343779981137946427107389279943661263966983907769050079878856146654475922910441414655337864543926225709158088342172876921955891533417727634531417106212284343556926432375959380026278818962124861702315831508029288455617041576311567605434740439159489074880884422975921069120826293955304494314505758419564295873551679882424364248778569223039724495279922944398863949694702223577708380408542416409300495564850561528158637383615936031512934764536758047258793259440357264984625847126951281305058416787000287574834629620530675358321367136208815637288250511911232401879967631598363213592454536454512687783711649309863675083152746700143089755092374495142488460923109981041881743793611260126884203511490081865289867276110107961160050222829053045314596617473807816063465162710459345077239807023723083961073895121572466083550578569057779036709177980050163808599042599725277393140073115298670355639473836809120031238614923647169350102390585091012917442486662923503024017176808522317380615096879303373436115760084061245251510029411958212549438381484741935405529986458215243723650289852938612793672111224290383067564754177431859715800441627760096232342242549899147695763994812561002907076259711217896245157305549854845212397385390622824999417350009219917153805932381099455925907409856017674067758065940287843661364045574621255873254387028340710272647124170994595964826353350379352684062103864782753823397650354315451381968512889702862853986671970109947818291650000464413324246202871659884665706376220732437119733226468992525468850741264068190996283173201096548915875942559128318177828720448975804886219848692568947443434609382292435555067361587197346134470530824187509533420494679922618905307671145343934437018616495183745502478745603103923241000628212094633691399724725444088081597843466104785211812554215191565529263247738693414538813202480688439122606791168736059618687934798838957695311976031581028715445194533901984310120864238277493218654826367062737454652785174109866160123654089159551696309439985192962361029019061914855829765823531454105787529521183137746191145023825185934184383805357986404459050628051975091304581184194979844137198428007775635411800161966776990556674319014443250671348817682606744159107101787337152245865620566681601261718395711758952366881405806767588195658559830852869375537806416661657673232618187667029186618581457034452820802403668651502750643010424773036794863811797123010981420439869908621503468390412049943506778965018919169295199604434676367039865682343838076220852687776989259625895452972122718509494134049503586407787168673634070618076593843356007963939851059705818046043212560155390145459499452965136693609302735092994337981718230449079596083100133079350616333502377707790923755438135256011608420558551123227098306603456037607123500058201697254187729182092255680562601279001454462645242528318622103899180087372128751826833183210438313992548142197571415338178661850720187940216817060054246902905625940687908108003587706794109043930893109214149525330504981341735582023451861734677782324423481782971644861857383425538876993407924514406870473527865401765049638286474108416362492294580979447285208365172935196674824841553922350827195438699894560089411851049620390739350540791709521605849113968622396592560164880202426106352308711622117882788677316678026724932384750598152120925259137282510037715830689538552948509866020910694749915186806058912471803353900280869334567326815512290822614912936510472834233239921789458736830824266561383658090987009992495127997176419843784571242109732320556128697465034914427958385931444199414687611598137638152077442942675389289734685031045773303575831474009250665989869624531153522999349443996469920437076915165521097949003032837995062996311403421255693547366886463369173098477793873273351084011696175025152491660749018022990852407807740419945768779183290127113359251508307844136400477775990864894635872221614644182618589579362577365752736447806022777303648426088817098178519866412185635934310176416481871782994585702817204005439584059825967639140916384078271173610987441712173827990964580240329474352511626457740846705725767289518160770849174342385439457418980224614417961666843178961890271580692966663796041495882507150588007662396532866673514949757848041053404941364450677124795096829160333921535093955784736693092159384350448320954311882068504579547986062670959831700728156543504328872978984732480933305976610231317185816264549282642527861797075514866250917874441247470092156459498392107227141108471005840911481605095948882003400103766625352658105744282465751684611078427686916752136779028199166994366162126060354242879719295260347404387475784955987190267249314083642094393670450486547989009001284397166298565328479021121032815113960293961528327426267513149923662596222834680401406756032642131008785883399967260900989757688852075492653458370605524550629184456158014774480290385811992567828877132211710672635202835437660209659290910172021323389955745066762525842980723254529235719161294614681291070180292282930852896294777783928847506357248970428252328304443310761908548387130667599817491287878672872934186331876059357436224848207549081110711786970314014158731919875094757699368930038041044669398698846636120498157608394244213882440266095710521791923047356505602771633180725413192193973175094445211188083510360535253698695851736033187430642787158449726897787096839229829218285589058222450264339212437621372966338348730711678691209245800535971046900733838922433310020350611324359479256393426416842083651021285584245956202005997151064910990170934122708307051299451808802107239201519971093253647057379097732145468105124839486986087266536133171839942438994114049770263212864426607264649156972226281586575509150447691408311125879268515926067167862639272260050336167222655376725440696261919070265554780442073364882961859526430094522383073068376262604998288768406262398837474103227755892670623678863379785399349337794180031798477536143856739476968729946058227535450485090764560604294557374368533312445450929294481089479190167653743037829823160245161238695032746799501328069458726515975581134815752264243112176721223112061278534600134800939202344030837163054254763618143166945484442060101437846018371674042240929603877665536057770700885931089729835900472416259546571934666824867539489423481341753299911050505235449917534858994746086457487391047320988797755528083653788635419076819292745316633259218149510124639157475731610931176123370767122017229200994623822435594511727803326833045935721157185149039279864251445579409529506109841459519470062704739400442184862973876463190314789439479571630286400954318807094022381891248780611420874800047123425087582789752418894189988926316170503061266646571136540536855785709987782504956332195903888361518183444035080903045729348210810874844934842893894319992140702335481684252620123310444239004702038944023722380668572745877159818199824861680150203920609171509676378851346875530911916707413764449488070292534199225174832374036215211698531099933100929499434942932485641388307604094880034864590385739444525716839953188642648952120568314810443668252677353687459354491354465549324481379531541961451089412479910362580871250302786615276249717511859073454276239064238994814950904196697863378902796817725773989375603841772765553015806280291578647289809990391441251723319837646018555808685122502164044533292875052474117374249983567433353492120784915651841700751779953867093807673678878074266791023881358085056617853156562490558411199078422185928513350078988568818073581122921527685153770810779966035639718809717225438602252523633098606974546398859651251692731705163003722883626741030568360056517334029671187283218220675978016112396745949189435389693652118192810718287088099011874976648497027021880098442870836614982787651623535501736186886993562637307215054773199797689301596892032971465356028400275952311166428597185608788798028433850866804707171456199893714335323375182918675786034916008203355562140328291197254365769624233468490630064186622698085279373587066786623173576984639730003598616215431569648251449118642312903840983381931031244504985214789056365547055682247159166165475431046189913457716821711673177047038901847579742600144770870171121524432569813759905554245519393222362075680810360902664603260734508840593365927024909258845620842119327603753958153124521367963430785968586483078634092483364469527195397757717358311023993118662986519118198735736864437829746208721842474807787930486820197793581632842263775334229313173439366733510337877898525537386837748773750593306313084486313274045519553456761054377151634784449609996110621395191288958888138341822816516418746240976371110009518595244008395156267975435832308376870105038483132505257368146599478797252856047554854007274173640007157003799303641512669685832979354384125812693101117688169737870719868440953384527829957455621979399678740385752249740800375810721698634060287797332157775199076287286030907687716965477681434504655386044993135134905619697704505764430969313222749021189399914496394183712732021845205081297679184917741977409011162962108935637408930608313601527673451654567008768097065504016575391163888020786116917250944116555914800332107305151422267714745108535404114471268424011456997538966553105658534302683200001675223466523141961085819711176398529853130499901156911303217833509890773532096625820929663583736581604719877306140555432907417241596546894433382103354386489184998892358592181245114735754155552360674535827409763324096396762109540686280124494295021368665169232830171239375968402463776462174357567090386104908076451180777936530128345372664379001748056343574896242547917435690732501431642963147842378558841750440538829534096602083138069166897351699183216434400796204166022611275196221574128826104790761754420932067574394572366285274110606509825353507506305823329427100107715017467774443991935704496068218208309690498375015104668092481877197410648893646766051696624569370256289995681965140101305637919362501975133240824988162690809090130580321738470143706707171460537987719709382531297340078151312382005445190768863659880287518657835858342465191984909541162130183478438719408875153430120485197644526888810725854962066330580997787040231525990493639745786279446557577630025946828502400850663915891517323575635935693267851049093513971614661842803290744159915685399130355346256479958622276347013044285892050347805202958367346292520921698025218546563379598576965840685210408312846671861345307010990394683604574713580407744658303455041197780847154480327541520877753000800538713500364856248341798836138902034221790658145913889888457559033007689235755513231962588195480934199200602648830972787802034077675871892504988838194447883715773387710324862591214251606629843738624690503816661341451066927308569357463585544630853420822432063279784547530947062917330296032512307340248756856091733459604638770988321822645553691256393085410439655360753029512491643138924240438766116883923728361800259610742272471582070212327779585909590236432938576970927347292936492775937166405253661797250022863282211658508630742440510464666167115569416340207002993944524137312940178762207754569382632050543787730419674234946065068768480729261907618072394475959984371775358929591349176368597892218450960398485360718189593642564758585947855419569226614489150600474337075914387455639381712454086058519100096758956757176231858605349230062855343521424904511229450499636715644932178395088940872978667490259640693657572219980124050131671815066326017700039474395444676402561774300804888866437677684714165445616940944133528812586582600278178349095171793458276893697419389156229842774552542728530401063698999454658920068776059638590865603449343988786406813207665648216564665396810340678160736302474788165566991262288845150706894010352652260218794779890738007521268689063472122795604554951378483944974938282307300866470931081803127950612811959641595678339689145130182479339444522999419680605168120265637257030922574315806134958895379836579368449332030444412508382330852627188376507870057871668073075029225372280382979399979362809353181753323018071211159470731526897867525666511294465332806582119511459537166891597943696479328333720652979569028082230081621831250176850064631508843236898143919060297571446687603623725916031820211324034591963506029932480883396657848918192511340056229270573612440089369987021973872932596839290799633461876490391187773341052207383370202674978213726979837591705774227661684467169773599778777683691973842315742467835879846929785989277030289079596559636502060546670852053221253050617418093906438053828761414480623571940405870034512051449861087091530932590966135101816122677806042717356587784862858802973972714106016025823061131291770686070909670997887913904093020714512196350374105417851233508560566776350125691903656448847664775687177160456156902459392279566868320500573260601160266224785632529953421251683017251623888825417785536252676837742562614932899626127547358228726287635563736272525531383261979660370968351425529091070818672615687168250185829053264348862399125620789794810460430670364125028684135062709025798040421127222447296079009516048703680197552756445637521190637001132563713800523779633102818867375814090774844064255606223006192156507339114878151887258708640146965129986669191447016249212287480853741573503777930092013569741407274109568990981942973677580084690937556963730560090393813027746881756539547762846002089045905162370776587637319421366086978542654428105042288768083704354975499359971632235080433478046342207930313631203925021231323437419524887066200344930805942370300734129582659959541466054778551294162227672854720279620769060394992501235457084228230893428068781541607151509596740945056000580829223827840155391272111739609735608295048251297702286203916479952481464181360540884492494761142521159935272784373408212596337729339701418891871699376693661931554840264237091328131756663300816362765313518350891899421806268053788200318864125477823189628657987762677250042292336446926997591480934030732060937323121133748380174902450883918127652280375724784159750828203895478397604629376372374148306655862629582701900759068880453494378676102924815685395470323905399417313568464338303318383925529629647514303960144362527914373282832493394728158975410950642907217930902770933759657729986838172276571636118754394747981819772621251992611989773999867940846686146268896935124047991518523527287101151021878238130832165344394098177206717690344513323624765388884846845152949418190896288946825198682397447849837371704629990815220575909736222069191294372250505903198974132750088362961625326846891841059233610348377730331059136506442529767705272203511130442099155905227989259675565027759364541563720775972618529475446735855154771441363026286238346696195135758396145231370766910972591473220427491357678794811070410614646680908675264578767211185642373420575194347500020014723995417828905974098754387253935734562066649491512177015203467090138348603048341548770119762308234925250615018519127538211385266248345635943565046512318776578731132317457282535546926127610463010144282403689529785646300480295493910926118652169311858334097755638831215778140512521440061064158663928173265301410190346041988134923932592207750218952655186906376680023542507177791414226657628894196243765685821958532755259773052091773419069284936680383487741538649047063757979354266850676171748132099632104905215793977971684555238224952007225661302937449348025923724673012516694299950864037385221333625985023482448115794658393245239818186588684217933540168446292731148968137947920166020400104655746967137765380797827483909445317571150822205685123633967136812712418915250435932639591929883951283878179581368403302216073948935731685590517480655048447786339271998046674752676116352407881521592374278062161298754777779135302764477185427406760489498951222164830356715159582934066435155463274134378390529855417331014888926182557218529539978336540760346775264613090649799996011009229565306725120508471209350391405091569032903341960477201509373174247515013782580536066782123711816273074158516776518169445250212404025777233384364129562663205306427313995801853464933129014769505519543465498836511941824504774505954907805639120267749705017107620832639786314856096212339201438332581851335886074594328859429365402791274065097502496175826144654049691667615444844842621786055472391204851021199107887301896756716444690490647269785119124303118562655184488022970122332524031616353299634475449590443587907486947261945267188244554232786435498812673658125604825472790691127643251800865921574312346130084585922121119000436271586589505186922991174932422382803493678369459594793767943289663959009660585663568403318239216727627453298731157692495475087823741392022183205737817591789438551055599872968450248342159108943849583316153717881585524067614998230366390108822712522345360718872063059672364456195025655759491016451592644609495396444367431163585660346048992446799445160973293568983496258176516645830859244381805090498440509719441269453489129377922695105502047283492716829180653719561371873958117642399423197121153487366129459332420597608894421222400868741454208585098977380696743759627066825745234720220072670921823080479057206811967602370761930455666390779871974075987664287750921023405367902462528183227454921592359139446654869772450675306873250197716846447088616678222773771495700592999723322531326885939731377564290639992660645283463429056206389025884817279342951147081380399863337539002428775866032743207537774917053316656382688683010431107553464808537841819394738471592140096385508048185763522986940210876410951583159771048337856568705076502392597027446510498822015226293864840743778358513248232914374859974580571342237694614186518632149799149629686596941465388309878466982948249407752049291468881634590897715274156990727594376324888708409749269487192427654337436812673677931448265960672552854543160807187799825108001831902726195654824941230143072841697213718828477476094612905682260902759942543336786123008064217920395512986920224292306828014860399884638464131420426885426733634371317697856100762258395680436952592011860670311746192434678875483830805452143498603241388005580698259501972980648235862311351969491981214310060907677625462187576931570256652883010113496357702312350966020023236419664846904927099733260492140047663148712277953509823541858535839845606639950201839402572322842185899867423887537887282126774225884945189012528600164165672816477129380121608907954637723307347789048060121986853154341133365945657268197370158210881697049250012154958667136513425476807908401441336531218682344693001488205630679400693539309816549074270652033906739202139092604012642182827456425445641487742202660082648204895052394505134276406014098871142343481171690621567386597620829992393632700935640126500936044379182585741477545725078718918678074719890460608111495131203303457749901472713535003848208787347260017820408983951405528607719838900034717572943120557351837644404335120372630689800332265712773730919579112124331828986484881216791598257846216241154098567414961116109278925792641315230474855379538850572226878676609692174104366970674199594460598718006223554626807530355905723766647704691190680567317761564280604513198639576353906699835652433928841105580667186569534585643796716452982416062186745592081584232712236745494228129215628653459187902336480891510411842213420124218434197528720242382837527119631409779720493489052225294072902522261826210699630515592174872813678347988517308424972954117703311892742767841799368666968542599524111592399974919967926812287904924254301891622762844001107064848056989258272789201600385052632700233049499430972873106398881643670687982792191190914199162667171752417742038247369410507853700754602435430666625813923336883039675905569989219719295310193592135963764803164282591152746411326805683524986075769992962202644349990046364251688652032948178810418169376176723255186273273433842977090790956055088384334346893922079044603154504113770684818670206968476289971370020510372886914960558916414356451107793138264694020162558868101814003212095896636694240901453096702006993621781308286331276361912680410711293021995458464934537681903648328886048979846537435727623847251997896924828387157870504119338658608266380667259339831917510045305681558094049427383800541811564985251429593008322923212774618122040957413857073276378490845989341604352255999421607041167561500854886435615288810374884014532271210006498090827971454537645170070850634398630661509808025292471613603997538617952190804668506267989999137650338432406742866087495710692707965087589518481724047700287734850422695965824500806084312075371332925368875251241668278878459531169495083623707964862222550388886305822021402413715440906303104439731614009904502879127287331157030950940369973730956164073533462229203720081494745661345568195602908483754690512358049245055010813056833513222974928008157222353331628195714187488836777784210567711923317535937045270945353788542257786324508560356908037106634851093368312164078486964014747395250288001348481059240367757130306389092011604465623105937359697496154923383939920827959902079219017763624280499115607305353270220844868287630379568060738338294924007208744966639438519795606005086105746912537140695360381116586742575560207190637377029552758128451604492343868306600795011164222938875065293573530482415786287781411194201494753186429647661512030178663120979560468610470706474842323779978296292777875303853841413078027734128807969597942165935291734705520086661419408661885439891801944979683405759080465411211369082861960168183978877974704909845676723625648635943883190280431740480624739748714673809723740673883528023206816808143501584559968893045412688623984108785203403009419118608835410638797407447782553214876957642744412638301268913290782723488968014332315694000376970534918308900840381102668905488742394405075516750819242859945338947923156916839667848882815713269477222789955230632171481901217965736457852927178611363564651212542072853207552915165539316500547305489464828006791424715227119923833572122085304304976840022129770205420222847112642608098593861207821197482880367514446785366505984397666956068045396339118009277286033023582441433381883877798173970536766035984119501055652147668782491643787614039822379278515457397100932570465948377870214304417197981156548014885419458901710536464291457953690930701110392717979687527489094809604289425718410980501097469584962667880322760901677028949997693244779530589517664377735839050735862037827516551332372657943659356076647220035490639111303205320328087819526227071641443570354531782084203188555796551384003020975104694908617746636864914419373472167247534934628471900719011802877465856283339794915341393343666772568804351877497792049910041724557352663066622954648354738194986893347096306325333733713109577197563181657184037056457872655072953183999783848409654937221221126943293794800104847694328188403687935725144206803414572021332385068589554216115971270563078600294279806921456228689474320548241799055719771840703513882839276009485951070025623542582049179373419446987329367051108508460928403361355616974353085429060478471582076009689452367903830793547340484833266342354242088908336968805676999453068834861411299997569227463571146046044090772811501251405460128689288909116114986729687949563881618417849230902480555332188021632006813316601020081109671935029122992262857070871284154843998967276672435433906167810394412118250897443906683201563997461924379701721676334158892318195211683661043992688395019753800164318063289804573645304137653429483494850025498377846476995884697297309094269962414986772690305517887902076540803273470668179267598740026281060800647915263016308698060133379732209783617734242926619134122004542142625626678663706256002488916334975175449811818638744967289410650241952017425278374502769013573252157186225356542220765750476157535168376401367800108152305401116758876774482940465587456286455767401524205894510666797540395960188851521732685459693925918401163365255871457874055418117038831452378861495146590345968633269772228912355669012537593398028785559299469477960622725419875620884113542545844186267896912888582325598163165348405018436689408321075606568593315181138845721308942766073300957148596806586828893627650163913868852361464860178038034730833798037703124753934822482340494620138916702808861327661545361638778063116600654877019094628948280984805743103946708178421574492508331084529453429625091087060062569590531515893115446524383833146385661079673118734937930398940620621029454970385604563810486756086394557604342428838063702719453930643070740509594865878385683337296087626460270493448563930947669006806239005446034714201734006484825065904500947852786891288849170853869207393256533407648330284414582466888026132697022471968246598226440890015299288019417767431111469350290898542017896179495219374426891515298252074287221113414740421269828395591368214739330104724589701023044379895036837867131003634293557305810961134605441761543837583962873892519033575711564743637306725293178658962342803718289741045906462523674467459698099401334704157713170147982354280928818750504293217495342293901346535016293830261564746330172705227364241855187586692554681145357652231261501615117988075608196411830218600262882647252427383239151587662028420502193674529300953003869948438753343432436990940016814563750283674995777137180001948359688742896140733022658945269798735942255759409213446193323655409023518177736590544168425318449616160128990830423464240954732821585587596028044443589288293856238200645167139361028007942523200252958799243475298150459022298527257245170928813515278999596230173976146928171637020292085676853801541790252372435881604925152906833252912673018900662972109974801161258636634066608347395633529217725347772315928601818438968280562123284417105106591725905769830099735752665475067021078004323250760702669220329523869801782644888342552427801519711575137033805414103244974522800002187478427229143027681379026581799123002535015642424470571697962242431699297860472198668878483164749410038964408600920827743023402399719222599230813289631519894777854598529673986144868732775290095616035404123224946558003460256702000766767723525903222874287174390656913337829619842409550976060092521955449575400168144900495708185689306739375870970978120265739945598234203501228241311474962638494585649366957128377104216981330071992205912503546585187756427808141900218060165449650622944751824292044630614623172906415245763086841526627274497437565477884111192416588439495552674327040780442876956443921716309495720675188279359571250106680138375444998707795044085314043510947335365668447646579113129676821372305684130039317698415460942950041022230443543496730754650475435631420619833166233286331851537596427475387291821331446239945204995029837373670974534804510230017822061710942213466001254932749427168032400781052007013794980241221741087381896273146496627471420408670546683385643118659882540165101184802937615126108319695413475088273579606710192630394065952613396471737990147964754505999900031442349307700966227099254752717444374094001814007238085339190600913585742942737869269752110664571988679310299363345876845866906106157186679494106472650917650110587901191353999712406388702602663960698517821726074095358303412441099035359501779684769058517068488499119428695837470147033239627042175999687815123522075373598104120434940730255770259269991490109555780340402497934941767875624664744272375934125922129169145108285239413866680306170717828335839318233760797334191054419461144737861141386176082569800552670055326321809163219263187101890882260601068527316317110664531845885406915354295808681003094132929513316062235563336477699822970775215416386525809975853559155195143309204768548023014470899030632782384459783194159844780849235906245640622840664568592925955446653148876081343723553429049046785171278653835615658084466989243900951151647202198325450835867164146416346239920896886915651671767897120125412343079028404815434279889173817368773062510809558734076672075322981266418387283649822331839838135421181842282361753875020961665548547261094262834560434519341783494741946784932039614636963271154954710557088554833199935175982072268995755537481436779301778453817069642774856595526602043173374461667851021894229757849415738663284850245981322334095609774507426816603805981627350318553666717925256632722001638540255494324692011847765936808112252544475686553178784474664858119623769575739391269544695204679988212389276251033756324356508007092704057893013555579091548211128911656390166652606644170516691241657145575761604850685181876799399095367371704593053980825046099629497007765928572617458603190832782420206637587509173290569902458990665668416054866214626105799753414405366116824864125262084742295501711750159758814971675379590780325007282158342033619904828487122519360793447665521230453681122316487841642118318280371317348450302935135989700983112293582564473508701717884526824346684810010103696585249575851961420769230445253418743454887636342011856114141112443948746965636294303435345401507763937211519811077397733164601758978063970942673290586936139397840455398818258627973837126975116105239509319171895364279505102227854244062667874082468617894453600213731538202231084267665896136533419332557268885767857969348749240142657921246971854038469701752868603196993024809408896573770387851082388827064633399474550107596112884347232203025100286910237385737102286144946076999513230045683626048109676113191096714298038486699990964050502847179488904222162267447252499340431830778966757150693996049412458284826341680009478669991830648794177349248638374788229292812188572116802682308209564567400964479578765099456807527974016075345599314493689936422200076101716418733254804403150116768326103280749039278702361939621667578306447372280210011783945549156468738887637178054244522464035594041474496046643537458821943195059208397812937006374047753525925976213762996990427658287328281976139214273008135333872126207388562778808231136489113544662298637633898480177610947815623042869981861082664702244827611945376395398912748484212087041727473860418823352583655400055015804430203233766588427447114607331417553415844880407491926343375655806469795623628965401037473223819825590988372063978974341064187009029601498448394551789585503813319604077525400076939310981230388230394797637420942807373090804824884604865432909099862715667347247080166227558739280345345905032910423507381107725666525855416066101233883757239213910079073514600181394781748221600817912699544753284584483279793315465671824822781569453463087978613857466887464716966298628421166641830587776491476126292965406218167831928611459788404441767769920831155465669940439911485967439505828430870414707390536014288471663163767901163108664641344904897976454617708898666630009490358653181745246540832599133117264410300218563825831998906928655634093030397012682070807153274687761864203665196161587125981450525634851984854142146520515527218904112964620020438666573310034350751174460170298527772378731829604966570401643741992212946610424883394943080632640245081605582643062604260820456044857774118418089552510884945444463846204821402673008510286466656548901364869063182410754269479607029616066973948721081031705435595534190423104556170888667927345239662673385253943632729316397693370980013789540106001586712334792566371362771154998826947213093600823397312860259848184099946980277646351900581934419882814260095463910663348264149863525678439981983225984529935993093520745565903175743482766521857033001407316328558943406486409214311002503671129973087880008971892745510437938751262334178461343086678463967120594581357668995586951581244474913025194314689074729057040356860996333621845670232157348203465444726959493819668831063133353843848631454029837525672014232708299980301001430212110446483582909380852368041980521185206405701558324788470429955886553064325223923500612171432144359109980805418832076797703415941958135434426749476777828356815589501259930902210079127730382396258560717231563703555864354323049814966776303322180674311218175458374468747560426170959855924112192624626349570567991358872700159838139466565198750668920724004103769947153581083677338901607086342781640766900137136922886768359873796115342275109063364677281802436799093259905650610255349213309452087582263530961103077244213557594716817345975593269113167831061928796227436274682690961552148317488714666081695237714697971725036056602329059705512755960625106384044535898857088862817812379519766364639215839893980036379961613503547335930763664911616134556677588926985267036440973958684495207291387920480085659408982696919309213158171619187960483638329321613016831213180162115084712478481862225298504675461153850710687392875220297942286761962978441513397696730956352465478373594957197802928505385734879338618659284199483848075852003338932391214017816985787967000768738883737976825632155495548394797080885633078170155196095285405994926798520170759009258126023379177134703763222035066828534766974879706057823050676705992794157791239927310975421868926097505294187896225054881854766825985935970874228585887051520746805091867080943214058766798691282038086175295597513362473823086074724494569972986306830755013406867047072020803166359268786623782538251800399314156007922033769935043969924633081100653625700420361559358030240001984703085310077166574213982930882035773723250527459880978819469432385932529001380814977452896960919486137121050281137363544784706124665882708848429276008641597261697630863568264794007102524159787596190572032713363322537253267605590206932842969864272800302043820995906723703543311820412979437065276922922067145763428616450455426194999712865191641207600587621027201420129097747144657442195482085740747394520242566823112330688257768087791348918127744422313827829970976533473605056745886113013658253654016358585686359215512276850697478939150890782157826574569115813054078864271218151754829681331247476647210376038786757825418604716311371743264349021039711205184344911187523932818947821493994806098568326151455076371023349450630704702994219118495269883128622312319418750720199215284555654776676999873003696219079023036931819066014014569983983552979944676849211056266159935538696346780887408897924153639556982189030335470956780182027826086725110323686163481030619262254209417147904126175591881962982787296150642603720638507777355190257909907293216510474389019291900507211235094895431407466960430163030755067825343777354448033859797602250463543426006751262990608871501213246131338905097150919881069227088004357385712998280624409704672024170306361041353444519850287921720326740267185312805924341772249968401480404857806264219415388537246791591444364554520451593107602739807245495544087865032828273252313683831601738685365625221967057350310023596061738838160379781371885800956511123277601896091304929743970742327863893229566711724498385869942208936357460704213753291095429062040447153595263616884134569940961328442353376843208272745442009665479440002937246152288892288028081286375642727279229253383524808493481526815135149177561939587842109193256513334553227895323987656448278284770449572872269876258084141404573400841866808919433114991809456439138029082122909954219153584984695259223922897879021287086626943370681366016002881840622001132458954315314717282830279515702873640077428899991555199929230206075652363783853343453060956379176781314363888566678336764588018161146660970886997583823014915071952851353074546756420429181545936322924838018592297853297560296377956189306697742236536183821908297711323896042917910867719610050137337613387330737336557192025615654593531971873781829745406974755051232920287376553556969265006819283879091925460674341351290495341460450623489369373746426521741254981016154280418005181933441674103437172865602527392370010594566154459843464618780566018252734408084095540535107137954737982086572889377268644103582069721497352605736520608001428382690442131744522848045681575467018423236928222656368329316920475570053375508407857830719123181329860602686346664470593302893136418720516109795510799089391092092704933084266153448433654662305521643994882199666297539250498790861414357840068840831996328706453975828533489204094106091698493097756252192659078611222726096455687105252861442370517796476444589003454218824589260491450080404641596000513240761487030973250802544242981893349784061649005008789615644458558465141736603493332907632598079280218053332555444082304919317622069475697934150383496720185330495697516500042695337098851973990842672430530681692433241345478641228712281304601279431846482083234695730344214618082653676903615810515231499807206112535389468521089723829816989846034683103180042353752072111129619419903945789836289365255313784196927008402545246719468813019773632794388259183008109494934298355930161631590704068191709259790864310059675073708693532963700839501208843600395436866272556445426308848712228239542582516863390855341477789544181320359500101314003871343346469760879261604356152222208841386220237770742525026684050337793573756274510577966198342671209107877514704819931354653781098508844256846701124171095153167641241097979184973473066748206137004388770875883931321497703612743697737130624102321961029957386771730343205832549196998727657361841350208804732808797148594081853349882045842824569989410612613322108767571418928297619895795213530721717672389689285717987479192490802014771274783558318145447172102108790299714772244706966447181649438954074032968248972744650072188509724403711794983143156541226447960583341589429099091476059283597044469368831173383899780676352043607466522403164161071193741918975718307677391944967110129521908495830687240627247303408953329515974075199018134685875330284686541978003238183673488251225609590257577782831322566056626684704427198588561004148294671164996183025349467703809013067138919045354625495047293702770147820759625681568083038070670277662624586244735800117448869166584042228667177080314410084172334096551864271094474045301349308252994274476076351029003146416458745458925258134563245701787636326202926566906437436380594582284862783036987227214207000468022066247352072258594515506416216854948446973094642725210216787366139621670263621599446236919448190383650054046623419508195974488807766038547943981092243003403240327959189634568473121242821459243608257260944022160709232323171840290155538569270530771487837044378410028515289469998686379492385106236692756393438183131146227814443435159192350746177120760957154607138067427377800598860792955986962780014846710512693794126467079861914725378417745843603803961172009600816299861064213375183756649176156418846146369128936065443645668004818192806693547886338179374961660533149600930415628852994490682450881775945333695261950208416557384528773887510549398689451953569648971047031578108014653694869796060475064085712219191649192839912820980555849220699133014242642809062518302902706820445034675429355660610504106479711978127908496663238509853144407808549678131885372517977603718853821929108534795639252552029794321865403217127955863832568630347335279564885720737516889775901868186489554732251934031184295440058845164312030210503656401690961698979745277692445972978688905920643573184415167248416374493035715191083337052994334920484974218451919261092393229532201111672047996231599649580092614159405725160404260711417849892794344245830147384394590567078186492293466678632348833723440574846042911226860185466675916846732985711453587255219285710746218571802067547276911353980325074655791479078874279986928905874392888420372310513549857611864848105231638834306846482546304422482028113453497022058595766781110894985961236103896924663126469579823531075453986818780082777320886537535603514649346696552221606598085497111270155248293201559714525023602336718713892923945051425416386446686468037201802213078245904676334007946939588815786282535337777211895705121726574792615860165800136889145165891326289605478641299856870808214560651237986926292641668292460865852758254529128541114116185475799543535002095855773021560786745090046619207714464791930077747689525929963706062128020905125906995027754652362022970084187296038315316011609830404645858337906527594562882632188950864261095356187910398339563709635871677176917050850989811829352576839064701822641201348838190787673401907865301618486938023508474881961740248045575123205622272940753234288806909198865273010098752798489247824583827472488656190406009554915205549761096157471126033610160229695618876570566706095179042912808553655423435059146951773966142434146614108831340596345940810140342203403821034146258744214354594194576687081515438876460940864703132570168609402652038269336254656878447279516945072131511930253946256155254890232317720025663914786469255405182638273560316025835024528143830958953429592967672651396757634740110520315595406844765409186002541189482383642095722994614027779699751597516006689638834743209323247229170119500220375449793621381422602550989046509268258752202938076922531344519425864748084787603456780211325591962572607967332790176099551680000200205578523413788645781187926147988989253856380684119318864843737228191327579760354439502165576766237359715830266541490961930898474800045322674771056386126143766863918410294596669098432717466712993927134691249842073483919745097193822152801042495735058073267186427669298351115739441482246564273998682393818865571271153492373690456250142080271639370847393896665331420871095641928569113999614037613681453136525226124157488690670384672965047113585911981383337151772023144320336140933302400740813624992302647950061384980567014504372678752533715188892213957143222069760917144159526673446606059043423345357052389540237121821967646971861699176526807401185874593901242741828720223108845104260861247437718495179176242695621811612367441879540193230043373398002315778521793438043067917452449984681410685803909492683632841030238571751141837728723076915180085419233478284920597457163677281009612968238930587144483709639857967793125728781581607526559319094138675106757753593344141789673593087694281076754802699156254696374947819100123652835314127702420080204852181215606492550749125343314625943537514552687424243772641619052570690574446565258476042690866465174253413555143814226757504257414212521932178057714334557956163351276888830714570843512607171471070511717106287796309935746891436630975082981999521430898409319031959364728521670534353471954483993294098979202627550222834917750858778182833069224170016543209090013868457939016441878924656605315879216603531288847873641280403953585740517446051738957391049629335409703630566284048344730088089463896327438963161397026359430118783968502956896469026805237814179766199567648929784292562236342799057870224559790840213885707990106594306467290523495368923357752965529003380429740818321184149624223280061621871252212251618872538370322730418172467448206040721061851548761596075010063272938297576881500805788816435505968092220337238825442126207583386372410199696013675299052053482716344484521692350149693874398781521427803129984969719245174985008587386573098953009584512728035771758660498993912134433630260944177151694892970323229946788592966148201646749518629746316276002488037669374074565463774694010165205398427550058890891440216277928473446614437452037739335513752937143578611293569851685016131869006674444846950992493219117727292691059360386029028512248532627535382053156382572452686987800542794678881222217906428307297314252612237246585399328279021865627898084898761447181158069416774473166374846435772492278305922537600554659516276596767302911425613534317467550461389196370190780401917169970364161748794648509373008239387506641779805217419190399347401342469781470403803414318406945657853554300160827374727104298724079229933843328735882062408966597449918061304770996637134960586412484668686595616771895822058746236460116879977833484549108264316437410355838041792446410877550947483054883994348595783806569948523406899359503233643833135218771900603140634635061163758803679552191196609819743345112825338205472882156391112472169028029044106452949797560848951501692410118530952801263225391399238931126513239450850207826799133963465512512663843722308844089580050235707266549669101601270434144676687697249099472067215594597732048245511491902295643359177224240403969283858280051550202183440126588676174122375931828600543827181292630977422565646953118381119251273368176440912659340146494808791597905622111616655641210222015297052806966074696533430230012131448170952322845654074009906609157123302577734433960891982537991960320258955966821318362649921838187512271519799999579778334900397885771047782626331986166309519311528153980448480017238921782253255504485618263313803099210108935995148888458513578733301801769930907010661897129233177710951205858537344640783956165422660551461096747645932560541871418649838226491906856139648145250037438919121971074761403208558623584942929592840640842596193917784623569931207882937728291227352238517056779955163062069820040994504151247957928045006350117482799940325321398699069719460131854298541458863948446272426671131740990095109387913303349680245325741246621407923906336915092490871170856498838647746160872671585773490482602143973069731994143108633490041937637578160921875920948161894323501556085075516754245696412820877503092169537494266086918600435368994603948515434678306624051497663978992731383715953989289197176477265582867775615714494265116560698301891967382799210684213637669014971711105995622273588044159083519525022016422914557762246765797247664015309237804031706069541855994850745386601110595065991837759273670655211731000977913611029423658835546837418624682071184854165900574683176353660063366860674810721495993917402332654894933363655733282518495743971074004849224143228864292806715430155546534086137303143398453226569967344332484399276099043854120231547433784123316420300341871029684332872393945586209348294772512827928200096405067712549914616405378741930344543773527614175235572715354591334242259957255658217905880492637788065740336468625426537278181475064014246312175127976175425626570394921428352637476509917676679128927676167786054346244462300372959102426799838789186692700509600002831347083183078041281638408996208043556786835586825332220781025301729756396985475785965674878983667386449569114248490473291970063254351710850397600460798009380393514844927882359440860160418321370178190881397043931393196312788145961806522249904814149346310250014605724135439131346093436379801002530064896607786348409547691932555469612054851063992423126899567409614556661336668609506321889098830354922423395961718785819220403255394981310672137922664098837748841149075852278722279011874294324009504328225687446557473060804393225135337459267834371864087597704089400303954720619094480058903710518723267630145219835932934110373964707078895313958742795018933982363408216423498876305552519468029146412342710014960867345435307077072845119238266064854021097795045564323801201047438371743440819111704525900139759248714323706911513313644682239481143699184292732094603709844401693423269399658095394891424763343386472120150109857420023366455791174358087237511762611660552823108562768779072443855069796920944449262329549238404098250078001451234350216152045188477186350636638925124709205267125759726422970053097844459397499782640151889645599992047016207014643293255628087346309006225637871916851980360490447255618498187371208078735825085310208234622928358621963137184358277400630396837113575827993279645873778092944029031881714520290284688739023117374070007219183385685756102101716684278333487754567531891893874710840543768130268909652900566752581519438142740217677387175224225790977316655293818046353669753591016924529756860484526077478716797184004004010266296308383810138774468265265343763204533049793376301584421206460068610638180380239810976651036976483823310751793050239679582275142229818915639615839407553620948172064379453590628083186181291220806349330049938306333195727294356097742024554108199330989571747043226642848930821249489494289429601960603564774381989647195884342170548599301268529902223988517814817597976425980005491569553747848228891314174141138627356579256718111760310512686764892917337461875171724626052082714904019364435316110334649610286558044134612118361340469544772621612621171861281415864414180877319672465384178821487995279077195379879566680121654803248606771942256209680952306603978129025082693449759011275150344651102175859375026354719253979811694133885473778896169681154816732975509198709847757375547132673833229502082452172389926582330703270915915690273691883201789618048720814631063096306313295473459033310560455295772278898915339036568416831979542966148434492465048799313757763332612600006924717545706493621190134231516280229338348871624521194632529638529891077180390544335291956088808840367338908623637507627792995770439284668923531578463526475941358528198672769107201294969665119489993281543746323603222951674282747017274696435019635189382097910333607814565454981119222051859222675891506081591583818333804142450270552417901802035829104394101153882200109911850845421543957961964132204610086655944152629465094689248664830038423456024401941409303244009562193705511293333624619461856758557982219735828442001573453912047347519737291910930412416098815444649101339953366249133842823298734089776200950947477504714743705447881385559052873602952425116580140385744410613015842033675769019642108772794734671187893265386709528983172186409192410534320691848376036542103934008433988826378018709261651470251875631426177701946650126446849405944587366815762480580893224996561098778646144705045237778880346449886236117883126872814089021473904800246572943229258068095367212579115572338302209473704818971642584272973816855729509888819624811566424416234438470064387745894481301121548779759473003503818904391754692557437770699534214829729197086264259101787056578097411526868098128598718814096083363130791441476979306035585469027243789415436005522513525331591587288614466511150282485188945810021981248667075734159461760895643801533232888324487468553399777751223242218125636630140817132927862393242828087963175184445527789420639520996811522006397100790856390053428735793714786779065207805218710659370114026457332434773712667469409018947829144357558457904683534400286122143806150645584218134907790065446269899224461602097147144591018797564069461725666051621823843240153003127659829378983882356599171942976795308557493917047463600562459075876035273555820377028871274503862724321237528359836362832208501276932044641962967868701253838916443989798249010623085774702813378378534313896812618918349659368252153615615630458106722662932822165702747466623228631141576878626887590590069557984658607595551629932991425769874861200844324279025281191740187621322467313101676888981952313494729096105775244178306554767100687238646181260201789004244894092729236218556024644599453213612859533207960959577733331966180313515696769294574711834953570316651712225390962738779679954052607534251803960967746846749681994336443940935524249475039806839573539348862796948312604490334774764831457396810729309796317113566220394510495830176266042195086452872406704636733334339743454115220194419512290292439522179216557882837068999578263969358831815936658604921150040085647523449147566324326241349696953655761453605929166635505947956022374324631003530060336786089104739119779033115391150843113176659622614280135861428826818534656590685958131862329960478483930693730777493360727294060027876852277883196298800269976628811796118172124458932629878431085561777979052162891549376900454535783203881299268440881791475709493288914574851055677355712568755796350781214259131162802715205302300793100072360343572151898195502183016780672156383182308779060163977801151843659052620445015665222932188800170952243730265603373039325662254411391757749376722755832879937053688205159193408108603119323108843486963634164185904875963518795503247066942621113012307256070106708272143044093339037265203096653020961309966697700136855521010362129456592445539087540627055689223534938369779815317088837609229417134833188100018135354853637445221311601128662096000939182681036485496324505916944858586554016742733075799889068124374931798365708339457171692624619822748364630134569694416469149995635133671597727999265423906626234295984974532356620037937834090372830257458739813446267805730095133618325650205377192233867147218245654880382652137797420779877583159498641884965637553422796521873800494371154646196141867074584744113816028260893652334906406870506094867101093964966244696593457685168049579390539699212686985242822126110615501462314684077644720235793474310649367627142809119941485303993333368172853630008594315981768865328655056437580810565170210894840425194798240977871073135162355106864586498199725329156019005923804126361736631659962614508789954983906673048318782683475615115091819185208434575272107677277245888108752710282653819632713277898977491329209371539509930462618089905314237666219938992968432241800534990690494707505919877423442302512549346602120820069221879530083943715842423335819780169920930540810205178753438081546498897035300749760515450671765987895718810336818077412803445625585748416335350708002186042644162489503358844919044777328451613774395208304564116304028900758388642221037857241038815620361449406134062663402572525631949607712425462982341668313410996580397206748598234924258101145637493935892279717396539187880155128124048443035532086023874051248109637291096708467833641492589987757065409944951472658105267057122824104470060831044060334280198074390438708956288893998079083197694974763213151491186963700801445894870246376776059779251591610852476947335952057120606900692550999815315859402156180207325095346195647729784556022734176161956244695803841032814517807455760581427206269919637367645767833229947067793401718265319849909630638826226352248366467096021486906751386113531841676541637440733133952014789626080786476161143365639127952333725516176776073068213371099169240224676297092125691191144416472104728859628977837225091695495228678083813054147349634185786207303334884635264420915147200412629156568219000790855687970257573582667880261071165040900477163038451454846835975840922628918811452690249198328965437053506745012231261305756520344919019475650631914298560630474382989725857816499995482409187954179563665269009107376855554708059093186985820684440755752658848607709779833220502845584358041174710310127242922336151327829509085810359281956896356901072255996182041521168421958278970731791741305407816367962607331712957644649462803608836885086733604732459294900478295754527820337430293469510165570920496524499177146294053904106941787999609927173978683584031276139731819792336170195946707312064368033693558741670165486074068084819856189862553233717377145904632743633162013492402701069890835334065226221145409176852796634080901093735776221178061743574772188512087371997353761014122819143227329558202747944914836637115478838370310428238562878336319497344330745994645008708664104485971937385949930447356208417575608630948030123955757460655694870363310427192665410786464423601344512795057211481928229322998772402017591970122628962421694734013916979768380589009708930682839209204580064102815562561876808159330413651915834359861476617885656673489836252221298938872711155922814981787133834790722430392366282336755929078497755961342033435975904353217563009906807846653505876897459775012152212399040792698786130583371950313447937203698425140739374332229140855737662748407273621256847019179835685506911938754870585806440110904799794567145868675697412233722104235409326264938992492483725914118280968852769966289647975573767076232981400136563546363093591649458374476720349720760915581299495467627477756954342969908801604409656674855309288563645477959267260497832386394161075480041548782418737618503507737349890695590611510171678350430549448622422642076666800485881014043705867942349711804319770677429176242897548356562485957064161250175632882251315084348066850085902708871923994395934863006599365891005880024418921386215265304107900547529550900731277888789713188638984325189537365083515516283967084369777969485774834424407028920234580608063411091219740587075244957794705144437918908575065670007941852843245050488794833605709953112746493781817540064343938500358784753915565914547923140904835809793030631577790333907272875203105050604183272877387021942311805985179656035404850969146476338366536806956964866192797221558408774067319256550974332173722764755710940692502640440658435049391326281973935923792033571675383285705350573282558433304847861286173463672347504197340404765599639358466187499445721567767722020081203193639943086101982812031700153692446927263080523718916151860423089874831037934812264930733888643598377681182067436669804218243336524181155454029858211956760033435119064688496149976392369966816823390930041597680694973201548098992996934622971460187886023213891438470467368186283173817799037273540524850383057083853322400650956428568943784134995128915685055690219020562468010640234177839519924528128362212151187679090309156371549104802789873695556956336072825214643126833124212255428215737000219966924749935688158016812030089669573098848940496885433608847338576061157482365448366811406763093144010007541295855695482075514225994671872011924068597345522021247520947004491455127789030393201332137475625399570458191013282787161389512259957296758683088738777511933396822737007002637741713353622406277125397085836357410056789364610041710597641364643549906121051253596341284502026658510315888479192125697614566786878505156062264160145392959697379159526635552487280466252291679829442043345521167231168889827280688692236545112058073257710065033425834330970193200498271418657200918660221164437891651725825832099701949838119475541780301732032212796075470897819441407772469199211623156447692484388683868664675938828503521464589133633053930236100863049452387577071629583206883216129803151419376215107525306939418897224100765955669109559974307202335018951221186967229079907135911904570343256056127296498239962049404634830507453053982311174737200617051345081402789472378849937891448920912935855909462720050904377168391240197535654383978478540250752528424958503039938337036460923085908723961154542626764834757155717216655874029055298373099130369598291171493158527501282760927875433077584092356396869071813749128185698836463469228527431807172364719876024867522792411520177866702809512167648294127945735696533498416727189583519092257894013906821619662128899153439602325287439480785487623950035929623806780707076742459639962932040785834433979008628058636184936965427229533715475154637224545927438185989904548563087735313347954105304647822059849871574743523320084131559498074503601466236717269054334392380605442036283399934126609787730726623209656050932412153042368694040229130225105917398029283840431905318566218589072382843627695487720228682788805474882078554668402799210788058038580788587075475888286709284811310719981536992901454319534424980290131425215628478086994290846127572840484047027043609005533697897610047924177220088069554435191324116656925463305742014613917600885823146235042774062303933753449596570138385868466158791539649229110175401879692835736428108955725909927580221260462992591200057806239526082559815200662373043477242536393701527690115784176361963269077510940383783268752512922721934643096838363785819791895841475165438096692487670045569816672609611072749133040504497000903861593863810085927833292102731970020913951573643414722060175246845024436957427887492772835408737108122465161081897491387089891377281686887898455293210593321695994431831155660985450920285344686938707647238245620526441915125141834552656639742076911136370430814626584269256700250844372722748377886368333964512748383646933429398234825675241885591041570287177729095054381868619070544468345001175553193513088679005716630916284854782675070998618412858790962039419586309541531538587242472361090036916632231731459740772655253603352239050081743529436735612507437519464500138874149045961817604285629847362197237070718466328862485378593303670645604416546017888628096370767696961895583475836882887775007146290806059561322220968690376609248120208129166977919772591362470077711416345975038829597826318196472788348332052164539489229323795609659789544433279158664251369076454210794452262986825536761973716748715995154293202867038162199973209063573546224484584090886673509273318438543696109934306358569821485047807286492189425866772435692912676615914269128206928408951979823579250637566213929716806313037037346366759996114882667635683235462822061797510358449620375372567237421478066951523323214185108981926602045511231804568737084129549779243759023318516249961229299683690180124763429722849246814576724794046149208124628167182048569856047018578317993078645968977199252661622390157988178473686055752908173044956483710492764055954030481407808746530817184188610653180257762358757936277198801999849202514304924201898123564727798804669319937825994890519596317253927722980906127631316452819565829589523353346179294883099686242227692715885103241633683401551808050093267175758024185920370386163486880673112053907027663423010008452231158000163656049021860155591212112771124547919494412997832118174470996796413331579846336812447073132943043199422735687791000966613708781465025653561953871422227296586432389932067973040484288600420658606795498677207452402001429054052495798025363358044920461952176158339819410446376160152299974436262178854804637351541149563736480320684288378462977332666147945252590670142720753416538899172416466035920271052211335351735917599798369460034871242339661875582048856757400987561152340501849304586857641890318604093536621851358978499943264350557028621921878624556604565268900594053863026903922554289500407930648729035361440649052111647368849764403756071745119527633259099674626260454192299223931751602905885750754793473377919270492007199933250759968662175705938830605594715168053725327479231247503435423334448596851894976502423604470574191021128490408525797841604976240245702029549747355158016493506300869202371745053877188425601425925264247296824786847227107454522809376324211379012571940180394279506744720197132709046926816293465430245159276656083893649543666653919634349634374672672131080561701863297253582716889235532790877151709167366214800900252538328852849838424110614919316567494257026193870975224199514706775356585796623995708901046917591694962469610890278152450812917527255245948534451068284439564602988516372233686562397705101316990377471215842409502298897405604353132207632976978389878058078416236089314192422759822934497374056884538680470579553898987034095397559249148145208248386242915063014744898326856798228569171826164152729189975315657045734811910370466657912739719858574831675130073609422225407391873404455722528849230777598450128648676650954162142319162219708535349457776202189655615577415241507917647480747365921203368845043916559725147644934097775656923324808424905700405713553489241780974396595981833946401431899827197375027665751101959742173255543422820092056572052166952577646191834829759802317089316401509296483135504333640699523071465502731767859956800848399980665703216157142687108405698195940785830642520283820744107588494262303181060255121377061009159174642126416358009898828953375782074851923139691280258611814914519729216959531436828719058236262347566396729581905733924758276566040699577451678095872788409732019195110432902661488553720848581044945288562071137037566304658569293897999954905839162661855832347823210278358237644367425717801988630555655261273958219444256070363564955198001697835902712394778872077318751298265867924528356366640410698647209208911293764071839727402291839307274960404459123607398160856129164076387381075288247167192786625823855278576734416346860087074883563189323306207601214075627469880462094609517735131301507226238317991363167055812273847643297704115268679375638720815337437852117269696692177810400686864009835187702781660684003985904307199882827041316246462817736449711048244773121646960033601664389341882167373914266655542892335962291403460883750223704142882718665970164948837308090994556719620978268034300599178254193717227144040859050394175402956273636769048401135314636153385967729834222837980361485834351109939028917368244157805570961510223112223388620927842704284340266273055631008159328684170015570752149517035910901346261222119758453163723970733978313394775427828759585996873606194942932098272041839023361165143774965845935774157681167763711359008063790238588039967788396528382703752058919690484863171408052787475840266826074152717578730680796223803127570283002876693901170476192082069165235662181050426176021122252320821283946670850226361334796148180458886270916202635463798099565413623392257145711114429052671875425099827541025381342460472234437284431626035304844240930415264238405241986712792593712547757483103664415114055815698643027857928512404404997778571998530544223019304337700693323115518436938517154618670429120978189353787538698962693453564992919388852939999699580716362163168414994965836027894741648387362757455423808360721417074285484007876043123197567346296070983774536513929650042032592564247309615142528016721188796503933759948239483483306437385817628527938465394394476661192007212978144964942811894183824202412027313045215321579792829643888990256161600932890276141365679729639803355742745040418969988592795853874642426133577013547661844763374102159712590424501603110837306346659652039729661338921259541659996126399150224975779334575503288172998832622532488808856337082171031922033615539294922880375954508659700047232198039572651564552616437232018869396219387709343605064367450596182928168268097752266977423306496237369476615572848800704832708483270242159717108615291893570575841513983340556211288862393420331598159831102261639620654299617213037904831397947587812247971433334501229468271382944427258632639692730014690172623183172654965327044508889326962435583229344476242319143494732280219643823620742904147398036343076767458208480249015162902493324710039270563975411022764388573695082310284275487502321888231854757720707065428027871540454610043898108541327181967475434905853744911242226590245431436519712823123262050568355983217881915337382420325693553846806675282783633687678897093721007236619092959930347504513037374222569782151330808701728970609340247964052505233685048975681541070833794677528430068496667176625131784673439112200342959768626677881552101053341596350196350330884948736458767975785458069215915310321419421093738838981759885783055536989981787293333347738922970031864208804621041373908046549848403363222772744768416381480745477187448095946822938508589009843927120002406379480138436697321369543587946272009674394294066032734606190439825439725940996631065788747423186115248764350415106143028682537779345895952892139734878455706753035964639858730084494108966928736735209881022986084321542292884315714491487073266851279161897884463837807343566213724636334722195014428893253316842469862716935169399400562077819967816267189236468637392614887898925014360655979838801010733959101995975804280562311683819581926747402183667950265582605961834535769442144643575365980023735786055733609672878914291437660137541381247283424488687813209559706268985101429185526867394068712291738588376213325680959503571822957489342747782038718043077820426810456068670348851205799974524392125634341371386619849212919111018270305777916162407562760681192908345163361292241560342926161870614810660476795411528269920582097188274033719757041017114946031326132380600203652343038934373593647098592846419402565994860921266436685250715223752867213121947907407372586317924715318787424453909780520027571891480535390756195972382236671913535493295472959391861532396020722903017871535785712779926774943909609650097261117531267908301979504784106792303548133908942178394667610710192233832535770661523479834199168869892754871646366828892310299085105345783174008124456917455522943877644531480872909506155495731053360898575322790282662196193709603228422946124213062920047153496903602762301463070397248551284057082948792452556202275795595472063641093474236908655673498151717063479913170817362283523278078834211013644772534326661691110988491946619739439427867429406026004907960669866536745469028789704643343356219456300682246755112148629552172598622092603344340008781170319624784123491404395779086039985228891128470327485060310410765574568223157113297670361046094666322852375277628492000910122741986058168318259532314054168885374922895103591553237939589043037777793687421302148434340063607753981097044619528300919120725725731443336543320649638395795799268298558993020889299760053489500038902872986363498504614805909032030125947339157177629541876229915355893994932642891430122610215140979423230730423642358675136511360977559412889349669447049622303939622702771922538071310263074112093866332916128314282839995465069466533406622933523461143779820160209854776538690184598785568582138531147848755245098442697753402233331985578683574097179899615949763463321232193934000711044151024379201382288594864876158413189383765050610936730360956238964315330900818274974156324213231894793345579101550384276557405093379549906159150398648535875079099835917774620089734117070851188806156983130421879933642286082682423794997521539418389573171420495110116040931943619233150734567934807179786605802886634413280102495291941946173907232754904952277273708050610460811226685991448056557338660032386074888967072263180863551067903121890686121695413022930173314289333594699730645680553188866040012526134756938726954145617799656165961066520864215810041046607456372337189000730229912414238910504770811978904507637381779976839826875402744108671113620278021719935824374027823426089085503072805721226695665074876786332133954732489359999580866983665993778176867414031131744347104076429712436354113660789303062930514923769477119968141895519184152379833028771034459480741206002642072536089913715937752864518642005021688773518186805841595003465386610870574295996509814327270589139649488490180362663619696196695170429404060095387578785826594562438155053536115303905786973774031429249304348077431994320658395171224830404248847135510842022589331977081349593111293874357059399645369219520875062873485316126638278151616589634881717965759715703466857511643903935710297460570709487808650013118022930882890611717508552665034222534653959562856257497085268431702438153467365529772996685530328068740539337803891916706041983485595370148304641300988172551640793630961725099236274243087169851375225670645953432037053542983620137964965403855346785980945700690197348806742438021799373174706371549941293974306980127498405378152879408925561209673601894435189824124794518901662307652816397767093639380388099430498977165006342312077112715373672765781970526314929054462887775063471569472400612812982997975074581831654503888009754812196266298415785124788762200622367565191748420804084572622063661328119253929471003975224943871253575843837830577788447425638487452460449803629029188564783177358352877791837955046554090688930475788864936916193340707828182309297570857993950222155039288237904193475747998351644613866904113217536064608177908011501587410184265184599217645716907442917793638330005165558455798085898476634178246338007659911093449065730496924950060809303233086553012302125443154177182845799894688745500368323918664578541760011872571543891876985089241839865176152011155492090325468047289229434747431594220213015326494737481019293808672507171809315441913050424261409101574506607365966316879387635237732220233845113751592589931972156437454207153938381779613981162243721252130546201870512378989032796087707467622757265130139273879494998896095229915077552510574454715210738391550324645708800642049568629241845139153019997921411497692631673787717011543970864561362975487962812623203211624329266005905317525629328736772449904317485780604134585186891142356996878043115087155043934398131181187487512415392904935901718491658200286942352397935159208335026534226326472796970647447855011171771983085701880583986748902311372061138350987942936079253218707800082478135578017048405965067190642094534545711865015028890055739516555085206559323004848463930922036149171030889255508022683692571194044508470930626422020498086594629899810324973023710489144641309577543324404410310863568217900908682194521381664401786247184654266341630922849610810389803146261521870439695691776223366743854387039803846957183474547163823958405827856695628277414672738986934204898733031606371392235411233323704712287454989635164496538153030477481609298320058796909049094700699389888451127114194803242759474982782381362275322695572623262439329556528053602171371303667959704685998067125829049479942348522317023271132404654177068017483461213256490835716124721699993605433664094401446863749014701407210942706846649735550081535330840518845382752742677993914304910358332989666973500227739085220553944851240554951915402394787116440263881399504346229036106318549457526407226718731055273727921992048465772081785857015942775684532424248091422081368048908681707095170817028514802047377722330212235702660219369788541654947230782960589402976801942585251815021155248545378304358848738653752968815640497723813207681122706999021661496542695841700777107636056188375499728779687434490817455833726014717374412252851306005742350379901963069272752750014407234732526786098079873636214551639296285886479387903108178586547950661232091693951542244191605929612509500141981683378757982322843103364462170193010046043149568392756412652936250956709522064997340736544816355783461786850549184991701879068716456735626874924442442075294122629989176160574389761970229705630153790247970179879455511209905358089465791391211549709988531690213797049050458693850484870309286558252051544130636788386028368852978901537232383742232375032456876094406958383107343535924114802980009544081388417590379581255305165676872129258235321196283547308731958763964067549954335750393985980541301313142094836893687436962069085006345734533496674662246640221100318778902651440199182264374346714788937559200085727937897737669391730639867431784009157526564445401833529101087023325660769080875224623208044907923014942420668697136595813850193085140772044286640528037686781359721404841837816316192722611449461562206722582538281394348414778203841567718215513064185124672862944809600234589747579441675892335243962266581875564915248245877914550245022686588545031530124253966462861406320480623842454607805420764189644040558640630574105444657792763569599765283460138725463592322826222007363005004003082892418792727715191655431960187328918271484454537645385217672498611111118588348857154803423783814483058215571956593975580999543735935834078675454497358060054409280477925493599734918804553641992681436848221342926849023934916305290619749935416487914973702476724269977394502515362948709043291812874838218841250704836771955601058612751229047167344681780077122551459410923594499802134877913318498609286796092401642607717463447412739201564729937483455385009605198758585025651776878472678545724276353930564269051837701225375292765562145529656316647935073515395998626094962697270157868914776868044560743541439226162128530267645540401042809236058708973733667950562399664093314446089378729401201197020385885722106523175800604510205098833783012186974026948956610298132803752966660996967502482314748296728725575978945691452125603435126469642163795077596001727191840860034713765600829772934157699142840154510405413227688682600435779999989490672222856363525766422336072507578471075756683208278538400627722763502711182098371027050881844249026711739084165062229223435660913029795935503272764681934525087079423188825144901107526206294792876094460445324312780807870292289129045067789107423125448991751424353274837306549944525093597454709466570129050650726281135302689892867276875329476067026820893527633584497354733279894112884993043240567902962193359471225898310482509726684716214319770069582155587629728321581267307381925861914637212329852243054652852863318240576126065002525554718219952856087276549644128812010546558177975583660377187905791751513026416577684885083173522217993185909148031348245966518739745483257683169997550386744796917958477585708325307901383951071981129968279336077836422859593435973227292095832590446564279733232593675068019205197392690040234011146642058490316391874012506339203543549083598043787731759789245947560786721458179065718146108590540922482276183841848890837974498030050098490401273969881462407052235279418399272231359491099007827163683716269668946141568695218800522248633498431412664687108715742802773189675555574026701941557932605352321426896459832502152923875017290360037382972131145588347299746769646907852344542899875829940730044603088229104029559662813305127040537254693529297189470218043140001825338894692361137898747710448285932936917688475631443977767492334406016308198306355612239206373342105731127007452763908667236515894033357662066324787660755628206299364774278315743894477617449389652165905816151445348405946644542355928962277827433609227636578110349255056086499565573992349626986161481853575613595703948640689473329214384172213194126554890048238862290166637569695436833918281305977781947672125330853582401259524158617921661511710691496409014781378505787539106764427031933847669046843609894164545029151183638438825984533555760432016065462964181663752806639349770012634858617729519696074456201247192741721259768020586348026431272586068809196196010181505134323278845044295753038082325380960424746048990063820702841120700951386280785985792686118321873637510018648358668484380803748293082556294782550315817930133924409208978339302997436760065701055284645795862851733361737488695762159064785623984632776911035255758808479964486756111899321288929853107283762854242589061505931525749345847218782446263449676301397487819495446603998922261126259547210174603092775531986383853638201959478675444622522005919896880938513190334036800599044998291340635934596055560063250988723245403777647651900850161629063443304758313804423574691109294680798668931001418207146810285718847953493606611022656492572477044143312789528001891299306339137202785394034161754204905146767452881434323297409840971440907831160591173860249728189595841229972870610473308200625711970119026887541284367942460502082544202585088955312320572983585409488455955285970548723642989002073151617117673226874166593796939229250893014509478700933854290922830791824862208059982061525845883086798900858980429876720152824783783186236094697176723797456388103877683258075013944098636207156517673271650576083429378306103649230601715597953558671550605704201480902906604751470202421314605820017243383731020358493827896493753314771457616157535715678175208799860327758459683458709815109878242771835119163253975622056692521789911357075533751834839808737730612448305835974753441138392526375419947370446671181483847804189053969496236074245961989008922360035619995090727784247234858089141717572376906379292288911407218605991767535236469078277046685568169654145948078622204079793830907098701407902697291740554634630244050578517717051328353239541316517271766562961959203713968911495862760100436180266331340066486543862976216749663925318297794307755951366434794254318211429986530350848451894640407423956537147352403400272399676250045748227553921716992678275841758099518182566869946752528360425543876382101745070248206313715104381103023560406822449071262658977519390826528763722842066217099992115233450062479268269726841820549891908152596728214945481604948361845997219280145949678489344850048434704874909106692306532702683168736767917355561480498582307886294358264126019596813555647714755296799527976514828677158383496391202589226314230082934658054827958322073456620048525089268868584863143966036071976100851688244171815115292145655334845212171182244589477162247606253480258873043695291388587899383082917458871374994054859184498334602811642101822418862173690819180347474066851321795608788029263586440798285125029590530679410670988022066153098965672227303453841358747579552400925616025567074388854368595864952049668354849980047903228212223927194495426272523754214342410393393597157918407709539455767076136540696593582526894636614792251298624809586475705200035507972256297253237433686539441592671273987053944962719062326240872506156118760642116142314815472029255402097907991464611585705410273871056682363773212921632637686734594277891387064379041362094673922811812631632895020713600098417574496175135961073225850708334441199245225238728789818537152164773678593095303915868327764615653589137612267205261728961962449107010228114880899350974771530988176569000693478410823101990341943122273497938086986950597002721798748380173736880324485671410869326831652015642087840599805781573059555068229761473602489764420381078186598049165484694164073723079321640072026165416938574708647375929632569458152233909021460377195678977190396172557063700315611915495335586088398528693745494287861865101089188005983536849514680391593211920845204654171962044607783208043463734101872274451570483605130134049200371656836935490831516028487199473505187488634064740435867052136183037823017790017090713806449850827297802635030576590323967792449272198059927606030739255646231687972381143507309621354304106977165638479768104154328664841287184486286538782259243408232549794269528150875380872620601385881139142069663011899741041506663488585715538853993124793815373593387322471501208527886050527144058462476395980347408648747482127022892416516522360326817380240926941387469912231579562204613660527560918595033518932586235393136867423242498158461803655663379559577498768549349744345038619491468491574115220893705193055452511118106029720959390958021188238023024188949691625542075451791561284523822496340349452568504246620467385853240777542913476643387550060069709502648828255581957553699225486295277889518703680493668288417760286476549800975785977296683049606566216266557984142612286646743663632257078153370033134691828309223223850166207387039342439600901302147201888491304581245717072378107158280961778866405935690008352574555371865197992675230027258585917781517729625275760959575789348566068766905157972531844422622086720734384931541633484362162207140361202773343354379185270971766478516097183003445263137122023237574869464841618576454250902898745547388484284743193610918971073289087115389132085265061675599803701848683168619692024680503402070134177262887911895527715911257764930907366539166843614541639282674736825017900507504218123927821177939284863998186639296467776334874938541393354130511944170492274418115253159435171338875745393379992419882473286025361519774083095230688333470137489793373603704271198870405928224977172766252321906546508163170484484912742478201765895934966015032766556185049655652630090635852709167173457140149469872464847902804704770795359390539059151659856556067730027777540738896804010742635118609498913366872561719582057926716945411234034244322420150773778321051024891508180061742905227971722116770686654917405917596313127993157003320740743746027029854942736475442405470340669901035056273787265396591171966086368337057289594837993951531281362815639696004310024982428928761314527417603131768934639165982917726694652702682588041954611792089679754122322252714172118979381852124263571896351935081963422350777874444457870840891428155532466024161712971843091647190190179465451680478042357641850398308326628752794219329465821210329836244789769033851935467224739971776467756901399319044008532482750354861637334800255695582861194958478558232478261754175576858695463781516719964563415462855262762536822218016213771061299062154110413981885448520040074946421190041376163750934760984588231484217570762379437246147918804871492307174164558466724349524701541265119935299864190611926991927638855232486587410866527424546907674465646298236275714414342318971607662090873824702922983680536391549192090747959491225631152995590817478150250515406079844484519068731082249714339435941576871436841770298130126759377651857680768133743113774705160584147097377288177793988645959196253897289561481148633503332731639742237489483074232615875784472450574810322309412658149779851415731846236673635923607094443235075750914922835197717180241575888778871490165629345631664775227169282923869859553545997907350395499292487367725156003440615293894931040631526754257003538728079481165853456702047093287742067546908373558521659461113215093084345387723980401751871318139839594828575905465175598861476789621864746963580622121735031675985561078048971299363118032098270472987895091880452611363554364754156239611149964796593217384587210854868469758992454643021299511550689061846827990887789264350249830429020693516729495086899383893097583252238962302673884704594041796832336463888309418305490763675082259904976410267221159838093039016309213452962379728369510652512481706698558549489053002757091645634727823924196967244523584577885375401265415906816745424728004221423447783528037534880401107059323808951979157169555910145814870545771974116531487153841606343137031834916302551066299665109624975654537326448011697509794604026668017266927921968442908290500457813224770543003321738342218481611382472797651915794263352576732718268597602835268849354112132636066566942840011138323778670362176212726569265310263563853068940858866111529602250733952661653090440237054654298869065636085560375188440345333280509968429980099251093631122156319567999256552837003154934326361356457071478094259506913306899305192016169579770858936048196307302015557140791575650112759575109324683547096206020077118976955771310424511639786553253446491928589277457902869093436602907653708325174636545375146691819888692689863619836200547773499861650845716483333654028696850045479900555029674271220924373186611650430267242956820888036053739560932079454384037847623221813112465164730430077557115753824673864850407735066839599327335929207452132915616969099622786604072835468128657148882820644295048500604440101898192819372253179096772974304553280598177685653581946513801109369092475063274777805675463210238760026502156102886785983711851910809638068439856318531821115651596937144074988909515023427258827660945737340606970685947633475914854026444102670039892176629896707538913897566632991230672796030875063807594675286481231423144070263021315525177548125586009249374822493189595468321635286368842442046223652959070525825572313686872929974162281121056921080282563017320623116590353344292177717146241078278662264379276875937467312567862618558043492373587538782874618445646426886357533097186479885060251688901261939659229972918021684149338344740518901099051350269200535486884816402409470516498007287865136273079430421855540875023708622233071129824105606584828131577642161757968153001139031581633808493938382506952571577696497223381069881060317327077413071060326918233788012122304107439600974738315810288843862740420395997029980251051156012023765833878525284394342192411033044917965784428109556450289599128898299224023885155761789086769965919174531676965060761597527123199246752544425898777352937645359367891160378812098899064242620303052773101803127480174145595005148655620321356490453706038528749928996310804336258770774993068134420651781309670531931495096165602042754547772896745885370205750663084611741783712224371696744724124007103412755499706034068383506945415560090924349438812991085606481869985143919495625720749509933324214293485477071832442377853780790089822512549612820744623263851886501451726574066635950353936798730760068858163417661294302987831957283107567683040716472702319150139305468149984431555311480925736169493228609394411255201257834957779920623464768156166949530746203626199615563735398147991851926849894255411842106574582189644814647808081185691301878110503049532261972503724235739415789214651492593705063752805315357432134635715023908087681712830472981081210539360713076306421549211802219313191652333271073893876113149399135586011048808463635063517869578159114592113217409541973057836773012588033593165974300439038659096606813497287899621236206386956511207646755966480964283463000855940460642939431415393902911364272540932740655401602436021846647833072391923738502086692728581509634509503674901634304274686489517300941942900223134968643816673897629365967714548082832161589991059005400638521338333857763468658184232231164338375994019481068091900482115221110373693179635777090030185996041011358382480256018957907700464417508625069629674850638899430473684420563681957222443392066274766830965490415859239609418841505837490100781390574412622145962822203168122073546366837737559860380542612362468345833709453341775414181935202128743368270523995171090517630457882611284475366914054261618819693689909537941335471132182621252545806102726153704376922449587522170368018099818328000008298099191380949730983668002168782732061321017109010538095551298280948248729708102618076129092231040576773870452773916302632943932632945800996365666296357203127968830024205072185445431126788273953906595391810217357803199682037527015029839088453027223411152476214383919771971126383954587554975771256404190299299158882707037703849204151222772908021286028235548244943124632095805004266889097951731501294523580196511892960254350222288905809347967362203692728340740549254843853703877581252069521452838695554797088065034455193316631639393359048786293206675837968298309642896451990461932194216859677551352009004070057791880110837557210511616024461313946074447036529530545489816941016956513282985487654349463217077549930993559677735686912033973400466429887748448060086416598519382784587787785252371189422622654900457055592454565772156256921722631643823771190053077983790581505514730137846765387525428720567561075619125700596222068868361171281272035806175963912454358460899860697978648982361884990720945083704620890229642729368331844011118933897533008404955238294167554781993306708426011985497173813496775054614081972385065814177803834656618186912284400171089606016727840049288713692450072912291911609763536371659495324374993520267483280192430221021149971404418113948210464591940826543532530124729678796263093086249867537834699681836113754807581262094891734950579472932407744503224348080953409522509173231917639554150518488354498654001985245961586888046612458663242193674205339067234613167563065204087983285606821704288116411951282125517701033101012944306758133029028227854642251506627565873569082947141919647018183198994941657917270806155521154945201466153848553795022521360770392424551048867016313986133410312204368011241726069917996954431666731478890717871218492927227562882737706056927519063485317828214278019987056273557272078813303779695948553747888043909797127460033155741720175266894502691846879759340440149271689908724134073948182321412575678221851212059625390504500436528648961308328128916270242121898804045598925721188689060183011030532144404689875957492967216191422800125329643602032459503614569602023316915554391026830303048119462227250814593336670737272842216753355278085337416792561002718354184065995090902904618877170373235672447078260210700135700682584763209517887960502046552257553589670289549880819323464229102121546286057190095577412805404271699115598323331511624473038958431949877149834315891960679091828329216868600112976736504706431090227539751019108472250405372485033772963422431739293817548122866722664395979708993911099929532064591485359242073163768601135179939944561155830097569105272636187002533966150856710358096105867921435002289163391132924082621027899565543811879178487005916331218048544641705369319158908674429812942643538014018179203980900230262455232437406767438452069971915075234906221970916402599175760830069936377361158668912480993610496010044823875202181628851744477098776604608116693904982197290985671123981231605084858727211434084711540350471144924200043388906742662577075963530811097883413004844354207200928916126045072995507153180125124389907187020813689245759561493044192809430449778084249024935649400578070071308809401738971585784707065160335712518773170412897572634539717076156813787013524125658985371527375007972462182711256972923496294702925909925144355281098694470553812891527907750534288905131847531441969926102053619255477225837127430554987575424027178275605247993719848496990749570127913249022023059271699252172168493610759082593309722302076004558631803585596498745298633205247807984736106480779485726956129735667944103205342510352835844080456047488500600628320101920191905336031090726977479346294483825684474245026795596340689819479268562827000240505135174969742680506451450405326879846793971011717342592093686480861736203370976021193595283782939259344232503305385126277085970308308349244082919276264339819704814225583254809280807985401502764275100379745074913823034860935706157828527176064885503262254181777051542258577801400339924359177615384126381714631139733510057669768633562475170587626317627558526186173400495992857506858256191823798120752569655065955879705581309680599230326676661411336149704717984188677029308392351023218168596710423518649979625262126448849940230975217519304702740930386039138260101433461252646885064741078637521237092333135865965811949792954202172814459506157465357018711003874868078836282587413122935843694496563992900329464983093700724476124455149370438477239069377174070523665502247275282411827564456538862947044754056266759010671415714844204983319783830578205108760194153957961714652245111512256322047521378522938404291726571395116576844023815494776030353759695627533311021785804728338594641296665625450139891298850598652546546098754704358121273539738606925035898066137431870045123815935414589765019973938839297497253460544786472906843879510843827249984952178902499916817144616530071166271465379740603465946708310884168628232160287967581174815183985442604266545427434861597454786127622214026656016160318480394099081860761494024624882143507301058740794963243956721226783909816724241729464449109821945103478363195886470620606555724609529566397226741691591718257020910745320517677617144867482392471308665814725335904228112309658686318903982678490782331013445246281520127681581797404840813719259658477676068521365526805536041424488527407443639368443758243202776471327594584369843468033460838269662903869092455287016308726925198366416706148059705654655805880360815725147447799552410481830772568173432441169525904441685018015683078731270127390220190432540196933912982250340701952544978295180047408501383506398463998167942261756460264696041243492778054215172017821326165159683272757413807778854222188770636531712581097786480285087774105851394965846511247490050084718116510637204861024858842779480978359260060931660322623847532128828886302624846455567793945291359819177312044152329603817670247559207648769785379956570723606189167998279372183255180362768479943206222211586892790201850522996093591859318547431177901702812571446268147608330971378578802923988628996573603219111680196952910647749715991395587793500980971523350302516659679161082195032978224285919034359799787788719131781011966319942669463719265264003626902477981839915533332447361188499242458261539132608643099387202055747750944471065148980924111510922452937388240177632037924829472285545065854528893324882866162883901311669395594382769071794224353531670417924461239036564713372856767953952662735416803369489512886266055795615638822702259137389422596776467409360467972545670206020541681749733439138545094776676070099630457483810650878224673295451802531403841958527996360867117099855630782077431559242835497976801334151749733301577933931529114435111826841065821356944429650630263267677669832434894221804350966681568332660153760969370657937170558782363522544710025625856802058641888978434207764080974024386065738939194447553278428258468446883309504842673361300181559548040941324717086328086738680710440801687938797212390566898779238867470536521399103813868524427850617970407184361116088916286059318352177151372726337838075045566433979327469169917256363679545131267058174661294736043227258799733948021848945516508443603311886737038336189266700790011966402506373003358458716541028064421439044486627015099321709253730209967464472461716243214671568750061733627868663205928686242159732631977515208981052089495869957888633524950576886773289398212180465009182992248984291654426857677254623035142324157117466805899789327539381670978654342174916008958457725458812212029182342670561332325571313681418153811466864035106026506040292795120150368312048115215796273429433695658029547908657041668533859683961017297526352897768923629585321513981254646309445816557140876783751027525228214281310901059513247842446944929831497040862971079431829384418428952271113120909464084727261043765109929975208717341043445445960617850565261861032065827521412215588193443217697146620694263033078179607214124658315897589687604203202563325328009559519151875642967833476132109067228226391560522948274182720671638182268081907204341449882589799160907398100255997025755861690592625720523712940968366682332132057078670312770121380392287156596419051894117135412861099323120382473961198664613527334983791856666798110399460339542550398233175710941842230735101364776653465296378715683142041860291029556424650249645432806772971483213228302229257041476648460383497048552205447335352842219811070127655337053378317573717232054685222045244416981480249331670479784081363902942754395510187764545345555768247332953414953585199144520664523516821307169591479653853867322481448857896230495614573959872874312763012617813888596766149567966636026764284013323386268520454947302080831930200234457104251239699993610939544448294285977028631964350960077901434287153472232746414588671704690548439872919321068291686761315115912996646129762910893748325905871271405127078188834525563740286489837206643002225506964423624713049793067543504139218623618847378556396252522929287976022480880617520058852462808695421625939069766820304583890297886378212892923740945682191855711174377399762695083397107855048847791096633312570923941433600782439508297057729814746782292201143588054197556150017516788971142877377366422644624407797273616393433646795630128380323311566828202263117092289785373196691335346905029495659810910454673941658944149191689679794948275886122931878294063538415455672373995292688829236907291827868006013556379400908777013122954620037878638894119590246481707365804147093338783307580360660625762363933774519190936756409004940104911039135343363940125571203778095087464213794918524621867527242399129873623654648964455052054562828470636861802440269695453177897715577566744508165842002023853365212275947865890543826365485806443871870837501749370130061626370499431922595434126806109758093368543799927562552483696864918043641552126753822479757636296949954233946664702137229756600029717224374668759868784962788719673525523557182148109672666562252152424517638995777070504022872626096341615106083842355576280629466530678415275207796351716738798277271380046147978011982644908882561125402230675740881515616822576916432243772360837995676290042520356413720460705441576652551272050135568625855359065570899466626729582649464178538799322184339412575872471264757821012844583497673317916551751129626473053577420297016594629124999964652282229931743881549883200273421363188307480517041805410827411465744834637338153318001714571306772005232995359215216927446497035958182571715382174723904478204756630364543500764760721934649496252423514106373900660261744868487872965963215443884398700820776406757773633676090028807594996403379669364356311139336362407137179610978833098916121469671109409598685683599054904683172971402661348614497529889773211551552202029783962075026308164377296945776484459034236887505141065217335208283078539863411223197104685330709271990579688715922581107357425616292169951739080304682720139400929743721949320659713221906541535785116479122898065337405744940603774700879860967834393217434654308381932401492066741125976265087601298210497302608081669302583149988220085202174433712605456477490131432944091154705665662779722004321261123035605551736563678364570348559221513755903522535998656412417186689979273330451132661376167724414235932378368600034106572892494846226801658318211655191078545906126683300238969454034785644807126956440252244607406457415613215094163299091300823300765740402414967787127661770842069966707621592892251076926861980391419489066750674710519810856808006250642341110014482760526340627603309583462419256342630790235929243024773048276450378410952056817471986741513686126816144072815861064238984902183051093383097050376223441696016409740786017841998681807746801788407112038855467331265694797898574532211129585354893007999151133941492197663463836407587679985379234780696959066283575920542508456529143535764345746544923421878187974458517105410787215281634142227010892037858946791844640005223969000318714588417385361247768392112877952507986436054340727619635808028140916114403188182156638173321823038693010328028792553616898490760498806976963491638873484089243868211319819149647421785532400898468612758325404822586184578528884694329443566140800620458182497889156207717087173124486146145033286565680939758920708004788208832502929328074572235912538094849016655586173032848434400623041473289948658666777400377542300967286251570841475927801059989418979400987510176419649568972366008695287997756678426867675458537887453452334597989813857416835190762039876813127864284729512592203976091214068643016157651264537816262331120406143196021976912320732912450761825521511537432253489648848327085138657733590407136630745512201486376199847363139691457418056758260310798629066739162838813652039190510068310615930311559548444571248700058254814459801371133495277344125819420626355675690392120593887985028690996339066190360002220015163585394241720843353521334330426463190310881574871887756846975376477464613109044605214300996063067694947336545131739913294879452885602868018245826616098324323507493449899037467776606688835005724972602989078181289351056776620802352802227895276720410936844258804696755617684654252774940590860091542970436199763962156298605341523349862888240367231079173268707111084988184357882919596541581217559336363417625981898928906555365414853115618768806526027873232856076880945931304750896447586467677691818211642198402055301930682136568655518150984976941692514942197086368016742499161582047607256904887061904229325109184894218051997195388203659703167098867761117217894940148843507977978935459218594366367622987697563232910604029000109544145726303714117375555168469667095396727777938226482025484171569990149488907470872258622003731852628888620744173400540848968689562840109090652297995033906590842749519881854584395722902981136075756668489026936298145775800251798424187952974826522237065703406998327101938322311200008544252478054151723504247014544214833802942763367641307207186628051397980379030538279479321942440734343860449039250473713213174048329699177386405853230789759829909070107189462634267403907747466326569248899567137036940373756979603139700970965248181296691253505196987169236840337206005663837600195099991509806462613205658298704158430352588110356921587532201808366459934756451048452401596257778954162128275136249900414619883969136172659758835394196605815011377654795540677895375704395898453484683071218251533391883258635208966109981393387467932167882892557907923962311064085682674947817099407092923905566631366279388652345622440241976149425777600776913837485533970435008241300582263630831722401717433186879308065431518545105251686835614262110750080072573613891609144352066197081756818439622472982117509678602503246764102378857635218796991150403470837699978336862738910881799421098543615124669234170702943585111050317346133898241003533817682140139497430145108550398772317587297166436891502727986109764233952567676486611726252399626010871807107005295719467682670703686210892159242564126544427140433453085044522897269970431997453226935144286326046460513511484940212778015706510853373676409844635150218442695117653554061575333414830858299939275026674762202556226782385890807903741741510884080574366876555677398124205983851565290774707855332851226118032549536918167999122422139612004849996146131373506925694839691909642050562978697118345342963763356465702335196408375790906723687684599215631894780045068312283410111752013286392390208184443963963972669549536530420192514844256451939208426897814506013901845060838087335528377836182562813815662409367261557314832328835568617415996172204944392790345890160064433504875429484816539380085134507526346659503602443189154748172442222508096903490930778907523138085039475382723610875173832401655542624023109967138118548786600860479819597481307610862861571655689754710257177258836936585958709872138215406775080017925534168511857539318507195284957551071855683494074978025784034187519091263700961065538545861627401192137618221910572469997721299529468576243262979215726261048744170985627402077616867196539415919586099266493171029225076900094994604607577441474196574219786036278580699207771821303968285070453708223475684384568619416135353144555607875632441764278996478334816854119842934772170342973538639209672195430813148801557702472159129799792818158626684754395085937420507973867467783240497066982741704126390880105035704885146507455410546879042887651816106684853383468585498018029950161566331086957636255513859787888813403458439826753699419748035935340996687082761270866474926403545336054245238464127565287902686459889119339339406963021387736277552924563183884723757828844592133384115190148819592958356464484748825160721726244060718301338007132959087895332764641341911085918359673745365159575212651562941767925009798363089577003099700854611904170991790351951677819651055759213765899786588266172010643584981062905818237612556125289107687129922069674620731914670486928425320661966334806687324795724234750840205523007373734988705570424877773955155192597245502040104050095483830496228237640638450782860314233324723362517738523924522623783922809235829647988715423090453749710767639219391682865007676670132493984626109292752442037225013832463352248580201578212478572673454215649768671513316263299244094938105307028978032185043169361090202866793080275807803308936763039350875444095854313546637828722259979370533476501179707443878125855467056937961924716176961620333045801238476541625471661483057775757085767336904809306477613887119488279180478018244703534095114047819011230525670888473839119821309866840930739563304281828854899539072950610187851324169954215927856723831944528330554888911761704183386890313156825628265298956600558141363394895824469410782335644887569091347076455405306428508803200454838225254832018365111809486007719828010766958667246502747902468269096011357900286103651652212556677890665824578254347951507074550617778398964871597225719535963240747131421167121402596442977521975249861986579132002897054659774828555851438265930549235379694244341662897435043354502565484108194033702867312282636114425659158930764054707161299947843320325459180021328796567795957414939483992354208236276345902072592806583034129046017544845932605006962541168028730944835447246698823161016169212569968154116935915519858072127195444820254524910296807284199264796206325509620846672282100296243336680039694162328236345620137448339184122124919264021218947620822656248382867326580893630336409953739435448647408726233305972307272046496104612440204064931130435635604984643618903513441222204278360813596824385091113198068139337153344800623448799658180666446122458417753300709995910679194736336142409948138746574980137301782545765733634296541067061627331572210070995454821553249898890769871408639703886914252127508252403086581298727893440187336108764809239833109249451727341982133928738974969540310390702560683813203029546463226535487424127871080957135618819529588572971047242960124694055376841713210655204596570801291471184412709469252112564171948263667254313297994323409220337523958363326802073822493762002558391549171579406713511920555346660235299328483983011604326360190281433625457163469242091898973629106413529823487119319628398178083728505739330739880672203488954202916541667824151234649730158035687816127735441384807746781351353216739490156361089277934804155645894661580943216564763070821528201664268879305970590122359487009669773608848317223695066620145404578191601745870938853121210742622850513305746881249992493945647520780567900221867379510984416114552606442953991800598016189574384568364086321426437463656227731856381385111432740863261203611023685222319778419306242461062866029015413031633553975055803278621845564621701084236494077377516875418045507186187799170333642440073498517585606997722705416343739375746869210386770181256533739556843765674326850541173193483224102496588208417439092059546761182634812464878303041686970595120417644478921635693877356542604884740540188658792445545638922381343451720860341765245561508736469160468726246568480467217623847397604063127773862714029859519975106438446604196219857980240442687132971408564427746936429250521944181120980942256294074003689655070992127778979543227170065125365006947332773090361008050182703110626351553238529195656142704342775687911191462904527144334115537031163771924053449320749510217307335789849267126589884047330237569249135750190225606356291762319925253844007089972985954408672041792940246943855951473897198778574739969654391112011883848337398651343139572031842795872743354280584186798224573151956790556430107776224234133295840229343528732700150793045932206879704946959077388277837425324009302953873462203861522848674281862116544022303620454467220198625612477242762336925315809496831760025142437054531922903091634624319627717501509416744911120269919479411160625393458103065309701830928038774369403524741705579848949503240540746704081080580759910526908293832433875773594256700309219545773548694826379058944445540425935089679610987393019596792373584329068081781397307194615186893949883638590597213688543807793939237186943039516535711578289750581292522837344709968114662485785390880973964638271211558385075124274949126717803209598749682995221233880025748560139161272353482658067137232429667731776898851458293348440200071323085647758659072939834077334651273058004426486892211531641529654388147857285846831660398333509820762441349469023866681272107738644978308839630929737027616730419329324037473683247909584515307515728598115315471509664312344849855468167744212084468627081216376363532681996952773961846966773052793741264197177472756683882132718318403684620192320763013780705927749443266687571149451855979336307632332611283688532944970518425120213778802520461423694974230820693756453227393115560115123287587746085451775166861431381489095795415659159171916380415477569392541180772254075863396573686959600052279452590153643165305826771921027494443367820163336173952832747948113282993640834761277248636307796391599278623069920458412869623488531565188335986397524189201982246933985622233272565513694601671725644193282099361567635081440279825728029134986161623260036725092618858382896197736276360486371045631844115075026015977197446987033903343998281208427565929778607214414917975482373062714810860317612112659488796376715822565997607920120210342140258297909793546557662916211738347380304870809207684231333862306359647341327804403874122686586577706216129090080117000995742954309607581243012054308664050626093503839593820552292523335073699365291270133756413213788641665292674868381729647979768625465577574141745625620792520271847261158903509427785115121641843248501504194634138555541496577681233304764441589898425722352721722072656976015313999331743969612936802121800829617647498315871733048664170823133807041148582683546792907778703357708108199869614302853741299306911483388516958605210119409161360102642421182248612451886488177046798912061120323463641874820188744513640604005883815346287953066958065226099039171305621486159422756551382154295001736315480902117406658863473813257733014492893321704469803418388734381403174613728534619121344228206741059873198137639527044025898993532571897759434704181835695391409065156199525557590235471284921956873399265628487970216611563088234762922986754251134750420150424367682466713007267230418359417587342604924888654226421197623795190393776573513343336620014071389935518685189538138706439732173979788814872655376188291016708196291387017487653540043780568315779270225698622973683255966686705995524244605630136266575199910482292818675818261349742939013219633851469549280684508957137386602251933041956971112981712852179244090555553609112079999613552878754379050293047059452664280552306371781615518525910104191858040780575484658622399043646436780678469239935984845240172222175730944859483115202927673323210857758020187740405947549173744201126271867213477694323893313271383720667268571890447741411948230740818704294982344064347365375381333602074900925940564285254237544877315931512916114434558447256665562395441352497723596355601369586811196300506233689710227679876098081706726630379252689280689233484572862303728501989505404726163631875785774218156611329029588035697526151375700350666834127161054716531699941110066976112769522909295769020099749806067627913459307292165440099881144440333354942888972014444095540770559637872039813470359320396247363860696175420561905851262255686470171044557187359453986375521770657146898084415138648254493221792274836011258446726790046259963508365037559378750682444286163967941472084895890645591557854608965419520956585572616239621908260973205181516022393895788828433067840076502943839935294390804877764306131691950099744704433323498956672541634114101012576811449945921601464268048714653672403157917313665077780554917904368906923681417967515607466813822114242419835645782017767836169227016968065601256378325018253438514867464853530733487937154422250735982691573763919527201574689623331747446151745155791335039457520815464281435815061803035018525112177453901279266970690248567824962555440510573219619688925093924895218834229226365322203478271985685752859633281925436811817643062285882545859071044620580500425709320543945631903555417238045101952682755116705653947772208165294148833623050956648211653551620771149910582352842209229098651715285572490521910388508139004385940578329399803139476674222967340717099175086257938075716997309990196814218117328559929446686929236253040698920934815425916544061226869211916033183142329457414951457397502056037057126243495888614757110450372626311859869708126190041095949900349890279658859919137597714114927933340589474702403754260495337255501192097407371787540305328770709157043439584680786491262966696361897535381338570586681292374968944853513353582355095848108044130119882063239796682095265150630530238415612266100807155214630802702090876459476757095047390991519015487827706223509707067015998482627750578506736050497431215646225032911271200365171436491549969555322418133316030696417545179297400805336515836212081481242304855220495762573875253368677726474654783435416624348008091958746297440675830112451186959511194942855456389638852027629341582374158716555153981887972094990676047329710343014973086831792867083703191207768195042884518720920324539336713545828284174586490464168891523522132546404569298145787576785610077158812504366187165538441873973208706943951542252709810510077217063534234178292307721348894060595663466261870998386274257090466809199628798963088131128877834335893297505572001582205735804174800514245583897918867235599782344640977845443405115794173004193753693314632727381438386166823670501467254315332732567265416636247984572917641845842271740801047455403548543037843873426697241790960621078685007257260728104179535702255125957418808644104247948979465572472622334655348673065277638528315085770457175992271717767236098250673044957422699711235095454518803571252824087400423586353747572106773603408141096437316071603599515162806215689434340086499219512792415066516538664767595382124209577172976251326468977273933441871247884522494401231907414181682465118371941024044447830075661202865358849521430227488242057017312534568210497166052764980859845903786438199471896123773179564325054027071971206159480041807569572634317667968702134203255004125175134388019266428621781169193824702919839589801761564375507131996185159933120742986701078064601953491516384966663261232825446794025638111131083901361310515925334087844841924684994481091071422463455642761463181971319617099086217927811952709504216380979774987404547199982337262828836725877402060308457561276437593156789835303537366984461442356647651172136395607195947815231331353240014195220272413256115727952018136201870719807728392086713611134810850182274747284383410391442882608666670425518309572738640715708783498229047439279732819141040791362846063399991336070238528152538408602724795714776199632787081429852974854674041182120476589221259840991461328252514990158612774078692891248718487868351336962116546789844959042467226539889790233623325029227076491955359056385964100470855614491482753090497541389796103707174548672663169108923767097711855933534181481108727645420213601680344622846510284105762741433035376043704747410992141188608544586151697601047890347642876263336221855156315863481839034357143379040765946794923401055518266444192430964966875612522435042894771373964598313878043423360199323913105046170929221018844642780695815425692465775110265088096317813813223622386248735808744336796281590264578288366760203581766996176237962982254898594551907819327919070105737293272096180404389436555369941060607923460742803053689246387404823246204054650040316330637496485514182419588891131182222981005830751841215114570845603574215669645138205775673406607173816902743685824557928154288826789681133439685578330483821086101030106588907130346733971751158390455744429812185459138022868843456283207704623861159711217572538148308078401014550659721017092473115375961659297682013526898235012488764158455832169773383038824159962165427406654373565822667099832908532211009505319103942713818339323967316723790640166071295065080429213810368654508516146641480574489596700074431994552264675244731441914352987322154984660329129251248774207619321496811580885048301432370990182475592232370287818842848454488389189855527489931726045967954837052302107572542507832373045151494760357528354096881851109286249024271977130302208766771379952625417312412674779824231847646047617255430235069455708484623517187461999167992480713347041867868108679610231408408718916919010505581534689000924662658002951073759536100146849657651448293019260496535747850191642837855403656117364709044334162264336865996176162120132002201851997977411330411334042260196150999906979038039198041010229363394098645202622097132228370879730563127841347311912971752256091776751857544967011912833210405507705606343271530621868667173789784032479411710831231916123605328482860460577772141560324822125302614421274555208572519893700753651385926602874544574477370273469065375877260463115035549814931481564281827412797525456735106325678327783973508168199314924187109314585597987951949960133548467183941922542659192523824815743285413318638928253274787295865588076523350074141079175205794676690481024357455081701071540865906916181677001486314966822792496324035616326335819125455108030152161156874855062065384515796837370186974796899533898703081191783530335420151876121492365898221230861992283236091805068104223149274094348127827352752743613506403179444231223829105983581732204779854475912328196128882622841516167810780532682553178903694656612640068953984454237134286883248128273425923191377875827349257465732543553929906312197538797492436567006957212645060136805688591401245365829781994320797471749936350330759753012080313449363106550083393357043619665163993613781362520667329606858552058381118435176101525077391194504711199262476946542503106460118000899343577964065355207309226314956397558005725546998051977502614554818100018805694182276323522420288496258624540632653643363437206191248874425859442413234980330638270887400545374765466564060043382050041928286025815525395936940350372045239822239873071127424691683054488689571283744688026865524466868102472052194313169757966294785619544655934855299285169643421172880917567169681491022171451950391538401941487633665672911745060204506160018514445245580266820317070436447016514992510773698879055716015267473334328806133622368409355144061071897912999788363239358563078859213010131322867283842987474921932196865774645749037919418235631181151329310248207754165647368657203414082538011007959034294659932172339669423153709167899280010196459723667586558796283001428464442037282254223986991187763842662541127772158815614068353453564367872560497099951133625571590508836108693411902444662014883426475779160860674766766246835802719672582325986313629490355606570134124838477327653176746728323590208054162497444705663410090708303970226214019910576680073102112263452123211932906457709790453285476973585161789003983526532774435181350474325523358584115144198871331269182603309811441986736272488718035751174645646021906408026792898765727643572602736816789926890178219123301813733542316382653046637451093035770516312437254876667398757618607620531527750977945402298496829008279566624182386841313594425655780810204270563945826528631654120272516253688868891480743493842308564324780593155484458477997709721482189559297237624337146333675599394349727329849601245591717384681862752927732764128883335761831845971520441317280832899066770829268718753354227611065024636196532932216475364130766988109357962913937693767847057348672095606815943158855386374076795798475146050775880280152105303208912245362683749511591776984676933241508355544611972012382732463331928592946914928324614287734583369396091642158113889553029969454483700464016487089868756220727665497949618193051785406716765448265172985655653916774220979331924613278412392613694717553602308170872867844040208219494418483537079630353393667142986000967503734331727066879543916721814806963502843062943726103981181716641245206959621489621116712978370542089995125231261805699413656326874026615687320974195008610336070193559289969448180979300460806327863550685886117332444061420920649324798362131633575431825069559508457047409756510128670740020288624255606170287013573121425403585694070216950924296892435012801637859122986495317412737753594861529414723168200367962212404821742653547314999204593663137204452423368237735582399772305372349498136910446429460034122805981859173311994071521940811029557943670410673634588184644264639709920375684051985091300420835812457173101015058483407178937680134995484967016096023186059082773433063915309837340117956561005192217702152633943288863636787159641750631814334523686554819637338923864342778944442009807160061579470915739445828236248192464754386591193989313965482236636704687858862665109753578415164191756396633347173085641562472130341080712849190945004357886089664548894694087583068009317001909679333378685417412253499416515478357561020318900312599649759828850931360247939370600186792223487538026632046811510493281113223433490523365527923950447332762696885652365935864042411675265933121319586126894752859380517758371360462939885664032769707833112186950693272405952854419049711215454318352734598467317831540349217994919012169372591014886253311715495094638201401014487758544227538837092624707415347056077862241035749803836834287368762472321577543475587816764278032953473246815010859065093006729666135003960607866748310099948204155497187392389727727980726107430282980720877092176776160031633704123663201739947008827256818262044090325004832874168058406014186418218735177536466567343470242271559293137643016854794222951146395589553386901434406412625380635961996060035677368792376882064070668321875350460116646138982701172060089983239725742668046045898356418365420949515187757933604986487178306669553065116676992187931757550325977233473554999731744369274188899630030209495232689306627702133314890508428185842542894340687730621605674600132184872804987072126377423571631078174536985525628782856035558695979108162270567166580585082066998992185262261162356198635052003817263107310129428304023880533411925344150589923578021093209825951981186268910361754765432722431054324852320588018328341221938297805982311920154056728766393147565376795451079381467791595446613737353928702698446110211917537720350053525071575866668321725456034857105761158693550109304993734596731881577487603744764719053541149793019712960306131392094384470610677823544714795099996134297100295992921182983277805784184792792307049832827498227204850258424089887919444527168634580754907253729237457921008639848839600221784525693293414628677345964272801682559235127173672474681475417164775463903553971532904452806675040269113441960114922541056378208339009632821550515879603420431726636389837354645712421258145270254268798468566002794315640929899800818389754010622860333105562065017617646596548953589676582763779915829044948333443148324271721743848750023248088225998864298625403666303374036127582979053530959583511843991800637318164793215096844369909613269708856038771329496101707291176611327415494403490871058480075135029273136805744229540693281346771356060430463273360152766767038460767385016979600877651095181209986170289946514182334090959652947220886366650624732479774167071269893098420470495848371797714093621189056038034710107350882707422078783169424927252298538504559198842357631959213049645509457588585387583045145540627117576407883907722764868409059327784658034937413339947916573014572173784866875901854425200731451022917888469512637045544309608371184242440649041880742169087792272518816112662895787559879840375215061447631507100005585215280469709246392470954904920290251032656305651832621661523607085896181350613036504973611498962626002972697550880523276767485394785901428526515522839301521640669460718724689628260986742644620762453840752925171869535828365233432194667423491422422929960387385747532144998954452504711449498394393718490131330170385925004927138464136253742726037597376436996573579867962600025089070829957814795320855273392712606192450934421322833480057884301142343147188197282140457349985122613425621131333928906394077445758935944557444371312021538982206329097059201572576646129189179784570426145807369196361297942048935147389858476024157299115873744885826208058560305023072157427609725144277874577640016687747325151948886153185680547169881024705611672317705943269964382153900364706091821286053201780709649824090580842736138875001102543644989496235125573725095893234233040273094895686404624646835132337280099121236059531681272253939360571535461505710929521340899740464142740293937753513531861804308401013275759365858797160023082455513399011852011595469190583538995728624051737035007617232069600847348122628335365743405570082297594917088677297806760717913653248593785123679683575462611318327745999706968084234594917211646986989701476408927299542900652617912189998094310572516748931345143942104814890433734249660365263584510874068379201312050077139920118463379254484336549684957993391329197599614954990984941592971655541766461212565280243939683156560297718754580652004846808358748305815867830138718206402857426154029523222409056597063894796202824811943808087151424462222059056059920679326432536027911910779048883779320760032938689696788750029065056890316221293885031403582480763113123585593367716176068627609774383795079454077164995398736654969182857106361775975789268029679424859752251244195581634770807042858999232997721139636618848923215399044213540166199840166218838008270253080214947046939916474500389817414005320874714382213906287588333958612479953924045873216368137394754626115145475292612897170128651219546242242976824056453833458609021042664877924861142820148800743786761972454986457325931167207970746049009729561654125026353632586060544490711161353319887596334118267965050527161845372807698882693409726485938698512304169927472938811814723639219036310228776910773783178292187464007165228850179449398164557230924785810373348113122768324270475176486105659496969254558017878648653666443037561270257101262074295788144402631445925856919655817704795719235323922684638334198408824350233466668445291477372881619206131562772375359953330132277272995996683668674504797597966462506116182064075962818685663602168985774667393732820217413923584782278375601500984640342471035149746448757578301750368349115525521514687423825752169231617231499841527098945345518092378387843478000151299889203100338373080058788245364275311634991127096721823569876287205336082443049502366326738997372058625585245019701243304178592395105406020149880136170555452163473227162551514695100739111115870272539476506887565688385662289350184399157718174683576992226743127084118603174625849575598949532950949609957203738492844994238579545298521911968547895228107169338405171974370903471139916329474022073175870432409452511442542309166196781092337753839198043963687797491620219266500378155764684783922849020912887937306436473235402390943710651228275747610145883922116733584684973220949463793585968611426229249524211408627211195674590564398963087580998113542739883132205931410007924018081402481874276700736381440801088849122410271738441431602330496892785537638082706075426111706106307452621586805121025214361658427604136868739219470683575889265631891264228155379511589422172274379543061302607030534068781112572387929523206528549390098841980708593103866203492769172753583526848928842104569728868148001684603662617687588737733390392126071288480816258850882433165640866482062967783739509020653198655814648967577854070646517047021356843799855967561500058811447545474691425329380861093407075736714361458971985691890492394305419359103224486390676988160203156932000791705765634955545830710010821430171944915910380863212534753819168881060980847880791657845196927420606044211919892030677343053077153294806320405345543178215674574484380602679895750505973831456054178217354285629452477379182289234610652536426786224753686621829576903704836112088771940368202214580647495940718562178538542545322144443775134703916388796440127437113878225883925526421363731691659049250546987434081764428638163036847247815517228003278540766775732308085140857426930668840251872467378309287970594685422583480875178367961543373309102576580097752056434436077077093291421935788276320033826773668098695607930413607419830152165770695359832644578215024782381142573067060927658862858455706078422920567289333549398396426956768801528181547659760735582986831466242817212372332059148968221447011970255604639488562328951337138206541210447841154102893679896804366830579520266628111203131374691236297478452227294802343982729256571114013302264683643495065915199867201771893551713446229555832612900673644427272343621649794839060152424293408717564987587129880711600863394788968672989610826834824173328658212573423135655234959198276479549176267406905253341004307190306607256959216813343714125555791841370804353224966869146913847484320746619484362074587433637794264491045460584911835952996294420327829154385760646636323654019296827500221940570717617054888889210941038160692249108651064405460772929375153128698905901993256134653144677275244295488689486817978239660984904626397288161286248593679388525674158708498889749307297897482153546252274526952030576100111281282838936523990500980463471656602262418797194690931644021201212328438749995575956590519820886485931130953951419385342854340911255725754681443674344662740766023499778425423482968480806014059758829981089986362365965486713863706683689588607573050664341004267704200456011077287577973786137867484597234023927899566173712130543970842035946804569896400624610934994325089026466914870788832585235865444480441730068582245620233304244702079751018287022861884556926233120066907027082095031850657408263702419905663287196715002750555627232433060276229105312146492104775005935169094038248830962016770030709589198348009705814881399103749091757680556783073580541258399756698707213035653190807462746649906180213844619848170947785074548801057089440886049354812158263690301409878501200234662535303708928661990383759901814242785436019236398884802510811476481513773425377760003455190781770959318608704692755615184404492322244162888669732093881645317299281090042341048119681155601183166956026263920325955810233539698873299694281639536907331950511135933476485116826954387895660039246113168248038722432730854148247633771567750512529790597124978523154689766521680214339179063719242969001677537290486699777637474202109167767780595652779413856487069045700434849657409498127896879956216154155222176375751312342097069753213445101272001801988870790677227957505838028475341530487455853876759311331712122730213753042048179281603009118628507783100143579383196145692876597543508832421791589418116214171290321599884834400975821070199072179132749039559380281643410185241738363846020447357889535078178745059757844812515861749495414066008689204411389075440221298441157224280614705040068896323432045967002870499487703028833367897391336878845695995469057189027345069557849858674726584361796893702376514860305796947199080766317678448114284929945890182459682740325137308670832920452797333497315596488974570254708863529691308399763385985401001451045931737651853359567632176368570986876929649671579822071216075336149089704957642642900001559099718935343675762275064692532381512383505282362383491596415217885983578318676376197137733394880185838356574633217712677410107653707905575158400960085671968522486291214778371220934894470860470030740749527495095215739953780189139504100877879775035909226382951910601319414233354429718415617178013919135451154614073990699499656465590036911476988530194626518886100150335439770642645418080254533354980723564452582795572458506903405374270824444606677108762592171151096301476196456349715330245419822088593914272681210130439780956042278734170437002334771285738645680390932479858826336080347960763636642082850195607357623370993638038480832959171403557450173354028057392941355971519413708770065789002776525820539843313243410937348227392736727507513643663971892357501443901171958668391532908033214637964616609525820360387768895856551303481237738250406422345085628526281745020490775589909907612242651474571950608706673222213449402980869579767502807662726281821809027622333087506342247777347519488361384171817307980513308831576252261440441341863522492696573074112814925459764595125864325054053215573221630352646957539884968349090090321481166929997222188317216005964115459031428680407658859649230044369859680935181037769814528871514706776002630008267094653985907830228790458048103528517452980815645146375026526359154502234438017521390575826878361604331111725505323067754435288514945945681833928720344855178655142777165251366850845721129422386519464188249454524431226862435654619831284615430440918546999728853976882507160070387003669069535505894973113414612265795296274319650864321000341186888758229005337216665852732424323469811412561527090394966330263300336036736810523120972594519615832912799232367388684698047768473780372391315177409871328604557494095739073251736772092818058739392605761821286263667681373129526718478885733163345887006108516365203701376988262721615781165046092113257260203132091666454808990501663217622584192874643650444763436990168438278211256130295589765245849353637576201494144560633652158070546990288824250245265866165313723321936788569015890675441125777358479116130566143788131118300507703499695532962358052593386783431335027822846921513881274721364494695445503628043905936495593158742178607323857413618808013555929973574045867067254441608168780488435416977594317737059397135639852197727245828829973890747288339943627117552141285239690043667002718449905998986102707639076778867893440463537920907311306395786925711917050758131839527422588806997009597632493548486389906172629893476141868544784313491243088869486861615913616286388964091723980630496776664369896951320552351261910130224563534609807595636479918911643933098908220483929264339926211536855301672427664847022820162217479779258477021778932841811790968168886923842544051626362479572815080138232892179281104408202916333343619279219839309975580162051383103495811448149378363772430095197861332271389257641223850586354565246671025710491641458317128194641244621271627673579952886922687388508723838472238030457599460922828921554751334254035707826454305247011509952236534925122139467237673799882009030289359854446592207048381193683170978735999717890416364895636043558876024693591084433332401735274341872248570198618456849213114504967183488964249484009762980552517265985012940964146474272932735123450064054372331805066209223505618803203576096588924417164447953869621384467503950435521152749127785367968842321009163509420453283408988820655982895081333158836230632643556222545047166987626155076455652126737623754571279309747782942413185564185316063333419752288094243481753153027274314047561616850606697786561066337496746176771357593657669855673510768245501817703151360942579373479661381210277084274837812578226911198722422679643485634349514500381664057738921354410537541730565612775824138640515594841251988548116452591018031511677140248700186640256351179055453038656090831199790147658243208312567083646984314982404824931462939625370205949652489129110210136057818844534142868907886426840571547670397212946127924221684957407299451663476677878652364976137521512965361867886234734597075550689016399086954868776770323593103205052344048260248006027139086859099393030903727354847423638029325742257682367175875587885626272724354838483534353716727370440521379458676052901181915792143863348618663457707791349519598197592581925667854115045838179057158373388112562823075247512225448363026334122053844849505249567069685292726117957262060107243609247080326100036948022445777246577722448195728306573334080827389861161956847413723231091867875186412062715190464674316864594977306457308707553375405028078288220964447199272052113618745461079851800124844781728695486218985392961301566578592414916062002118159105736204133667060613379141828856461585878618486838984670938820019478088718171392714555702758974840133456580721044254357429874643453743043355728686829567196859380811447423539341066234613059587052883573836871423625711910881176868975396622051996674980194861925887407528464208724745591007408784851909585598248005842111499075472674382924564126741904484864674228699895985043048062384551778168151665909671926699313588374121343440964865468395705066048026743017512667270975491792500278113605881149216674674219361385100228492938365133109679876317196025833475829374234607836850062161460434082872584059614442961796746232663745799872770105357544341614713376134107720261675121479474315019395192701790571269321737004689960718869705232267397458323546055422148033116039968046839772308643271812950871503741670534925922869309029997184349402246247654784483286390432387014877158589007052351425058061252502454745661810530161571682675278263751227182992153680353523616915806217680125976208318821077847957092662951599653692549164145928130145531115104704074975208321967927849902904056906376778384960119669007933962090339313718360044240191990502460788208859716476283453786252944879663427519204817553451344241337294123549621049183365057548847980783411252210254384329462893504680093833796287360810001643147881968669776190758549428743653642260035368642837706374926884332901179385713769988006742019852851821056644779867402396613279392587047254831940032513511039757518981829861128633614020010080600462416766758199295338673844100672801664786114883868790631738669269268248751971765133878024419409934914147391118642581828343476310745461265677419809462492232934715194332195342373491104929915422387877458768983283778496513238341580249402062740108198999186160396069966215241117492785132516345378958866241711688150727611482237638161764797404696628796770604655698279195285344994464512929098599661664946129932221824735268908101936759860043720702295557567501365212783311059000810718498179120787455993795842802198663731002780549833273510609620435891332151924597366141902472523416880392467277205741090065381937914144034858587784547811720814137217554999632324121495085392920408688200695626373153600814615113077335523917642138578547879261488848302984130734099338064158176953315184030830008820945460674530152112069470051000900526035366255027578979575092969041685311806082621854623890065753057870572367334319549799398762446885933125152934495160111246289088326293855874874369501132981968096837782125512695629227110740008616337669316805260284313924492032667374089804281400531274541909535502153946579278889193137163083912415067835367944027996732249129063707001371066028654754302571161599240098211975065717996195971423385439529493737266796490670386393614368553543306009598678543154141268668657974681241273422566480613674808098637655597708064115082200521976899525351000332528312863744479460024688479071316974327740451155891694390501729918134602899243481467204137699853157826595906708838739453259161024950980005797594589995143843158731217368806683288257156163835124350426928046008019923231829969397611482373469466477370487780337153262107382192267523650557767099317959489348344557011021335231477143077636138582634037638322623244899953586493050384258020999782709787222198791817836713633334964471080120308585500601175494374499703104962451705434313405149831252949195855723887026005673204630476007470874786428328004795268760042284465481643711773470266017703449038210540834136411497683229776830514218533375592687221393196083626803296075804886767894460078982472125354554963702028030114810702319843333410168345984470386453714094813628371569517475249172315973955061531828636258801287446049485607864935770592092512568090484583003285324240288039751115588154302681804190848390200623917293961013845875036198406851399499484758893391749915521519313558407916571392343860113829263837024823225608396114036953009448405319851315063069412534053114266011098961765909075118709297065413142980182476222052825665068696305768161332147278045592377470836585188343540496275187185208109083071220701462830385882103544001058732812114476621242538614487454962911893464074783260483466754686970882377998153922715018918984690847149277363490815610620140300044237156635397217985256277228215921383561461743627684355400100398628559452572359301529661230184574159464111694509280993494060903751816401662333596002131909029890000874139024858612646694107533031907765293488244361429455667921995251977762123021399203688638158994989900526604288582640574332854238042063042547564692480550932363047016085522058402996911931839062765158217807510506016476083539019221275234090346650541090498266349730348577518006116783641367798373937479927114373795188596819414693767959515094996859877637192312966411494812614808713780478416326358700240791666687414668786533099152946392249164157983853319491717595916797977351544888280477200158008387515600799080676480621665728367096723328578782601176981735173827145070594644316844289043933381204092800914362236561415121368144604217223547004560924766441167679628102821648080522855012632512074718920298227950319634848513852306601780310974895963350755281813746405593799921827724245041498075687499154624164736503246389276613635454669157146412578203621563387821036677121946156381194054801829987511139870229971127756529640820914915866540651217217365314942269309606655947649408939451950279677673611380829474784193736035222922558484677247204388850370752398037379507448071373333268036002692112391285188513830775760937509251837360803078730261308083431121851459619768552980014579006100714165907050230068425214176042003168628965285275121562503249380093248091828998407975224019324423168014600643741313475906648624346437878415018426982345682794384314926872371690995103681124237650428808305169332507613650763435907883786694332605865554037690971726609676347961111280506978644221143375951594446869011580594233602393004656230552295180639742062615327648803603047673055412464277996860252374943141563832980699642671556577702912513376058978357929816257571692215028702419232799611816573153820028721568629198843824273050648174466462994816132162710741788366895151832842171218891368963725849916890300352457340108279354873727052158457281102917385427895527312516649301906137284916201854251439468311596551396444740984240011998607025892349507192390540548503435729056609027761387411240465011210322475736217592725958585111476808824107581036073651273195852541571172586302567635495084544879811735592614950387194779057721579712898817801791467447159847912635009284670576717925213605666543054109323848177543903990746217319429958695344122507136359739112233511047404741133723188970218959768348876667690249875187609186314500827744920410664070089197041762468418343904361159536235622235854614226211723836046070053312041667003460344271514340951877918283520766791493500160277921288242376811466621890571518688479196316116422153256870099415312208622755065738787080327628521646876280932575869013063427133850376823783871834047804505175564568892905975544770911597321531506927611240319208332131707002678995625376468357773174030992762788760364651499070971118354983808800246144515471942200578122993699777098341920050993243598579036829052689086384663959594745404754265213951956445289708569949294114252034626613946700655355632888831234297025137588002063924043738813190035661772538975264673813168034077120003097580544294391521995616755577635512701364479318598665391777863914730093022375100616324660796870960557965422820921344341417516772871593642054315820576730855450427355878766625991240474212460959142346946374425297819662487539485582533277061478482801939431540326264476255959757386489963983129883438901896024351002503750249268273411917249854582005551397228833176873571916176565026549795016444630051679343473319426314666829185851493503720664305013832715960800579302160476165125183624713496353519460584481994233669530190806619319513802087711537625528947900036488186859309093728334293988996630925674142913515276269086793757511803379469239322501190983493210920492413513952368670360863263554101651469961312070883394705313397752237392906794210210643955153458404688839523538297743752995261715169250906365747155260613021500217147727790237622616240408984278532978849122889578053693732279794938971579166736034517760639940824573985881208055598065079168049807407082551444822132346908635890693116250543794558318192600728958013853914387254258763575833316690407040101646866844275233876429103453197218117035090319758456136872484999181466100155788526344006792859099043173314092282193778824189773127750197789732169249124481639640713023732792800993284326168259116141636366135348444801500420950358197266483598532505920108355300931919967550867791426783462637763975730150714638652949842984842960650341973298339090503412258332211646125839262286151653720899255756351621787125420344760097493517795847974941895183437815182349778323727433952652633407535288419707521660056527822959265237489069064873044220576345624469410346028690319069456955844629759460506630724051576004894237441685901905273471424894332411670604693078246775346872987694806147876169652428067129954877658771128252270407437781724170057801477389824127932844420929374958775896397727763462347635972456907750124846068390540365133940268650491470281081577152636851137081221903793775218851047385441125760289461730177359724602240555274885472398836252044801341314120668786532235260656392543538608329114010032405452375363402993635917377375875961648169190855076324337604982787686553944690742443059218706952980002078015271691732291718291789297106648754466241768452991743866918778359587159542406422611811439044995225629060665009955107583986489916472719740209717826304895508813797395132005994666821354796697213485350582638883267575463205926931908340059572423543169055212129486654569364563780404477907812825322327210347894317407526018917740673546999003246648211507390014490499497027577346724952130855363603340799407406577911132629734295860039686309228016012035972932120146768429956190091300988582372360554779723643531578750945034713078806399597585084593123760343372151832572156537639228580862783616254185348908696978697097504799034751638226606291596947448327310027965439078985867149891567518248839235656009041889310936694065694446963774117199935525005560563607693775638263367316864316744362875647553839802857519310235691805646113316792610423867637959712536141134223232999019678402467262656446009191745924187873263868032699320495024716305631599575645278146372645689889762709298351298014448997429555409490925102472856986878145329869102981674406624797529476415326931905164855041285747863522765518624723617803587342807743993670926781863150970785167109032045142755867070768916518703116385761394772817111425611486913449340272892341982208535481787222989523309590696967745382489245474767808365201157397884056219643748588757904804049954758219175545474060859558806501885043539759174955887966274262669867885286097961815654926425868982396362378826764665927609647481789464748135566418230679009792030804111576505616037442124094359731152986153246851054607043800626753155951411144074934306589706972968796511867676653324140845103229544039890922452971809185924738543461110651015832602163816088489063632938147768660781939544156178920404402770380907852053452004364068447473689645496366620266906624901389091365493872511048181264140261580117685993638698999866486870236612507304433009723035238054073157253740227066189296021540752755283737828120625576411119555106958859265406072790656368264124186982774778473503242534475365599846652854084460820373711652998195039865680361275896306811595470756163835557134439539241978255551190396838072919316374435951305629215451716205534127865600302944929557664891307943147086280059100121229261555709706978417288230345822851821034983269905275922705865962064008651600812469296344418964150255678149434701358602819328082358668452449388310617330862397441251565440385577469507547527254751598525720088778782085989740028295075703010603581515245917986734696056776509179403434137366161724325145449853355681034054625945488033003891835404298787696555999175269049633751840962020214692788130898455853530262864507973398766509054514640749674324077667428093559634392075303822307385608945025881127927433785852271908356561452239052947767014125694505601051637406183010575173245647047603965365163979415708399519116961296259176062037813357513591033994750365858302954690020005969201703273603091612404254124341848251668066469192871164698754093467611050458910772925021562530581298869891488837671406671280726883546080972908790156820186618548061663452486184499828268531374884706600859648092521218482346275188862906799393453921586365152109672707419289925010262406348747578610079454651673786138123969579074669233108094921322800803257537739811494196090951315856861762998350187886959033377150550796771727646345339954712181037250173664955709280051258087663631991590817633350503915961791816354080522570154825763898572448422884116261822033489200638051575664115273337152340752932885904925516316245549731915058580349645043024620656774381845486500865128017054598771590622950412896170261945659603186090984176652328871874799913453162420091260671726701108596795718559539877641299358792553298052019561336960629526569311026405401990611359108540813663209849781468114475677505532186637263503657183246099955022241960314134504345118219877486219113719406449133180295681159066369961841800073157007187247991618089386921032383704305048786159928479277505339180382640906688892687467384331601096408641195342953692137061634401923717283734035083058887090819015156943093742411092210993146875042739544612602253213028180207691995021014993349982199596268222047842450397555962222194596395560990172569444586238405952842834141586323626366813590520962253176733392841491683647576976389219379269241760885394216622438262449740583841931588598165220370550799905973204651394993794078193447895160899562595618488249726869416731757381390098842879055987349081102844824372511960970882298196148726972792196956117941279848750061519141873298017627164734106520634135601692595273388131747434119181665562276182735864368018900676775600895862801244120581104123611112457312885477289667003376673683843235981847954344479488351454206771423771093923064915941713580072195573708711987237524615587152579356303100472646116233609586183746662958701845151436558246111677578366781366784700171343688543148348873369494377202589621801611028680852375537220552252244243312284326711123122854471429955602968782343426230018724158952112204115649750498215639504822865191733347788642190352801316473766162007584324259272541857020936422320210629050114789016382728908324607617033914655408089535821206819107354083952236389482601238590657280949058688216785592694233839006373613785535412289343643938502745312364258026107080619767909790870712168592587863824592195540559273880818116923821827252860235322404013665551828998710346197115676161583249253917330076609102111577548586547933953455358499182669939798383824960874941386013344812764538255835026873768120323483304847457901916250746975332897376156873803770293868492842458169403829685582465928637530456653784547942150979224576274490927863149177368794851205338094814593631475133929913178329430732022283668616965127763159800432431433087301437948780772226456029825595189012676633412997327299332037326334993127937830102569090240425328678465886201305002545325919337098348000570392563443499778701263505460874263107643521424443367449931784983577697944196024495053896738545144045712260451460883757793124534253746977796417763000056124850306394799587853244497076977523320125691514388530240860206813876563706788358373816420177240139973322590520504136761712451572666436314655222175187859076086565442018289681080169478460655121467391785111253938543796429905639555922613757664520250662963895626275015855563143217296472606992667723279361054724915764369002878134867541292685030788593509111990656077203677790456597251442379379362106629481958238407816998869274557773892121340630859028556344569440229881464200985650751369244214203555324918132197727595715165753278367460358841960958182320371200201658219427344842556954628893072879381870869752446437708545200816211321961259463448451956989423668709682327889348016177331095892463081462480798214106568216197968473239425467382183366667822866775496549927025950091969034878581972409465448381462765747486458896349042319840242206071503314820289798916003350479686179272377331379849457634300025671052019104395738944894042507122251048398042137490380885491981956694359948371411944875960722435077825217434494604388792410664150987154153053536259276480485044732215815710567598190682954066513101918574417353216191682575424560246519690641704176811231726907667404472797287395698299771071729942045490316457119130391729948336451669093388808501494094266163162283522810099548504505458531235877290306875210872341664635369405148426565196880049178372779958677346610278497068854993263751057665334978846465134484807001438524739864253513746994128624963241082199442783119434935010241946536751747390248830818752177293415714803408870453830821647287792310067122823138822308990146210764014206304256740980487012364379636515145480217543290843264710848015036410133825739089648076491996519122653341609027453781926623246265209630317780712937562302508508761751647009436897556092345404085010179460889435641763439967547798013469253970513445979537599969676000981698295134533095862610738970061818911295623210609826665666122212292479329494969994844906638468289044284104056159236606581938032322936589981263862256790965675828219385938899362520455089761679894924646835587234848673363885050757228389925812327035029597521746987896708469912202517537476963281978688686475002991615065177842521549890193779755839260262993099026398897132405826044509012432329324569194259318582127326714492563915086342764081564469000469741949190334426440142278746797824674356209367392675734476729981432858522875905555381871398217755287973441285723299478341752427680279874992013257566721886633711964800698776348790405496185351319504839794639656283032561435161705118944226531178585066576528217866362297800516925122233585018075278482403848199632488391307976132384764123715272714567039346007214097835446335183665541573345972381433710260611654320242806373714828157787287670719450482966755948904682098489589136420996536826617472019091649643894238465781769499309170011882549776960459939024215667402081957482040078602405999868151726599400044032386245976295568923013621905371070226137104285361456739863286332145644459528039734399737471235510132523832432890952979122750835947886676861420098849265838235866473800245909925212318349357587878392103892311506925839647219569985581713114390510464325895068568578442509318960693407166768428040495214398828499685709966266063492000816430472709218713896454368405053699929397650600639876932488905498701241420999916183584090851217358613902450187301441376439107660678351358529911614853738376805253134307323725053495305930009419915882735066269547112122429861466665769688113965861985327677252445945919589809772501281166558632308800410209814412090652382143537231488352659573162201852924572829179942032149162632978236470762524546746778756495087203404014570341915471242440506324016999569483249069669575135248803732919287121076838144431207026036853847493103171891567162954918395820212966971903097731438703628827265503799521184339664747168020904559380413380527532509604304618021801608655182212018068545370631985026205203631164118893869293207666694986636974929502670879791188001409034927104351765636427706067367087408675384903240471720053297199876141069127924518639655049487681362968430409397953181508355512246544837916356386176416192956950804034325053068946831333303121952911135190504436051948191149494866441415139185448043135233503261080102537558523438793555168002658284781321534518234947969361687497163579097955561637294269351316751473450447865419932483315138828127583020169933480082980786618645358293693191386460404133235646299938603655367357996989786492713315419163343818382613027662000697043047139764108743125468207620829188510701208967259248939286111273726424556017140141085683671673116001981859790461184807911530722616744668491427704245050199339467751848359448197228684696661739429999474656118591149868042460862344005231758301394563502165845801588384050881256946524741909911685269116679679359029239024913183921150066497077124394342854473910558723752678399993398871862041827343821167420152608980667467685093384338594604726299750849596141475778988102794577193051276775484895202455459757552394047563980268415381695923251306665710595052266558580283285975814035608953937591327695325072080619170022125332509706023186154682605969982433507967012411135315493110553698787732024060866788169216868495430368213932649753542241349614511459009252618352298817866872319417746515406152967420426742214153358747005688360459741968049270045139590092855968342643823626688618929520230782080814502312587375974105990247571279339892745967476069838833206253882808012795164268719213152481013712273494594736033741923676867752946650581069942297737036992073842763839577999636269849836992119814294819926500909712661783728355431370593151806074887837800092790696610940997830330179913280922791037203836554580569892609898721232082007549011133247387584556265241353608394662512240774488842423472027042340956355928985361897339495516042800938716853356569326278686884101690273461656478387288763515639000526502527973468696817766506975797638798749752829495537609594406992711110456154721230361863594762881699400297533038873342125984555318853853290314762659035626305866808180347167371485088015503596013885551795910165823621698003787479783321143425065835568998108060855797006798041564032540376849292083826770439605298018272382046461669304733318589986426961807286890551751992980371266183793639468364341065731252090205386144448188965241575592202382415945332778163894636827159158673187260012990701991899631681153834958200449133871792058716236529365011567197911686452218205866541531341233920740755187451349005494386313694593467972521918714518716703578984588558493698456244461421280022167817203329656359888201944135625488299749456467092955285086892080642121858304016123727878780370338653826755520492700240496519911017239845798754269366360382607303482721339304997640256225035801907843880486349797556548125601839896058638083268291109767705891251763578816662125174427292501653190173196758415009525653307190794572291708399732011248728113179443732249183073039131682986979707334897657473280539046053123891518922175342294093983696154950542429965025141951682430489993989482894285301650526833370679400706599232522813834205529629731554884203857113996777694726937382122577811021467935173485940445142146224215954668272295439565298999454945762238263151647556161909889748222525188205839241339783354911139303366179625398298017042163385290918735596984657481330056118403705942756960761536879811072121984956346063614307285021993288429923447274276197285101394804185400957779869087682127241236692817589439646717485739084246668923410049240109692928049449040005563721676901608281847891252967302116623260047750882093809063582154240126269052499401993794065201978640329880054800455297232992904039594147371184428404823705448955211872386307957763204223724701022786863382165245850943187707776247253526978055509308366015120225977077733239576121283563367100312891076851223892674720935967562028980661875833474874972704152015128541262461012173473004989107182319286723246991275341403955740543271794346680846358373711028584587928847114025231790058733661667272210964895072454499394103555355525027341412672705341726362957924204114643196042900723921509483331398452305996904470235604563464828797493875388891392973134983913099425080190561847341551809699172153767443198045113877721194760559592158802558860822074631998103682213641333320171638251727700633390343050033802586866125930085094115031728553950403716793384473970185770704551442586397286017045370981392961454056994602263368544824177811824511924603370616323488958792659065704933857655649288268662161204642682968965138416756018369436192019516935758757614548093028443829887346740669069869024437003797727950627897125604517898359725258249640835431814699300776311534954482804990278077545307816525570182807950184748657869967249505950129048773475045825640177805241618223115903588309470227797000070820194093197714255472496726414687233573835350234494703865715117745360878245829391293984477839749249859302627563538574018852602265919115485181316787137384498839536008823656910308395968947222931424451416925301479468824955005670031225451970839472923487734263054231751998467641989094841451806415517331582394600891244669626772618899284989902436923934724403233070803048396778787805433235257844488988141120721267155916225144688762004421977799004113608254249631228380048032909102073966108145593459632720125271830486833679284015087592585702033493639377413212442866112593350623513104322117715049882291303343970885379634631866209287123500326607227106963106748863757602546446668633825788085695797281270067033281160116328914960017909791334936248022879858183955657348275203037997638951146475566785660702760229585701331192731153007316764571357836692274813067469314065852010100719242673215667797849620049024507498571590940854173735570939046565327126401760206120386189562354822744170749383950244529010864136398423869273205871079629137472025598277779289948961614194884890644908548271915688939345591316090408940857664226284798751133313593203020798580639036508138058386076138467498158261699549241608520531516867662337813790072165372899294916173104803511385746066740320766165019289175487451048652481285112083222862812660641651645830358484442017776408481156439283503778617081871497274574322070317595931536140412330059727012361490147382207186908431534554197794735456802372738883485629375833486028114922132873998114606661117594198738822391061201621631018902783936650433169882205927814260677200309160472417376741641971854252337524903735227458208277600780787979633568209510739760159939746336668521119014588427999049467113956797762283145238348642467167393694275207229250798477242979906027757480359743120532970509111063465553113511782517134471604449100575437329691135789144748981967849400439486128874241967530657130111857805466182560145461910106204412186780516909556698790145992480367361389421253969489676716399650022854209410869460669565301078140829185418605304518245554828096999526038741895473954382234863324920361615773613278154540131360222568044016489183059174760846176963321097396207102610507952757392967407893059803117344154394471344547481505196172549259524542604524578253473666604606629942241832240445088902458366284517938586116139366694174037850618590371992493826198676833799137171390298953455594346183835111600583681693068665733160767858288267481819045384694431272679567598213173663826285499986464970168309601783053274363351313461208794157718491875618564711251156502218651656218932575070799242286262041861449294472606681575031215160024524021299496185835706158155088309402035982460494493429203798067709812764954814536910569504466276523757463719094865526891075706093967429855017866980372143579635091531079111551743481407042857171494145520295595930999046543639208912717251436437561573789999812084956317131608012409498035031035157358404184764943234595462764895896847930925789793006566494622904526983074234371266414771013196748273107977574555970496594929694213772623342949711652609845572973685396873955272834778672576360993465631485164401932586197596306489546848809295856131818099708857979857546710482814618666834047752429772271252415736789393619606666723573256037719995378367024514549457678261492735773239796526542531995837920391040957475214012190082840492227383760425418146996609730434668462489559877621593570527604147030437204870415897374211205515843942145906983723665847954666008558839385476901778810439132335483572210324116916427219010975829749500204738234414139421431971984470049316975512905982636617466953107028455585934788610584450862088491413130104210870946653256923664916523428661811736238915881787726824433791403437224011122628286881360364606315266525836138035383153967047327252109347918350171626968822204273619570804795481558700951749613491362578259850738313933543385879552025132841409558665040575676760698663887613433490234071076678238359534120351639717789540383594587591585792923818592431598159413303661097940352192435571942537668183076552134803456280264234465167600346409587674475110965593206801627213601700076069613817519996298378298036655471691891085556947942122734268401414108847505115513938487806935955323234829915162760267011964508796082202177344395912359128426032720311970723207912580076150807139051757127734354283140530141362878247204941944545185004880023776305796495349076669664453289070281572286707694171066082425357129170277287151350435609600135350716587877172417579732940244365986561002224656518432805681080409712762302671769750302699311262524912890670566162012447256915166705855274831432554276810805893735182760709741023168695868506892337778627093475938425002625830587985701242183282423804990529615638760119219168815476081953151411981212568864911383921316183915739707699353602246491859158114918397345175712323002834308048133241787354190361512816549300132949225935709623114621674761878853416796150387628055569161964079397698806048836554997806305903260025988886427396140174667216689462717114248265927430702730241519017637801107355928076055676974790689980733049170091882871989163343974640802456494002062844327243460696910060131587254328814150756468385964942852948881308349320514413815699799049794244048390770084630373921624159788819547109051911580343171316794081653669729018798035764113973136908645777938390130203940436855630124565695154018325716416354047251881504771234991068146730239351473311460667512021674854524781304718270024215612194746074831084853601101023359341614418215664504839030301758262429739784167561588333917300462452746065894190558708074665685442435295201192380834671788260317199996466216214755607054017565038819697487209284369323472334867052911815340130872811682097195886425608774360482888451774232170707641670952227157840804788370784118055527872999242293687822147086835683255817206965757349761062763490043451298387758846681051470133023213248814151043507951889087789503447249497939704845831097871842854329214799682142272461571283943299549312616564812988550308911484015900902648486431739524728880663450857964762715565401778723966007444319054266620810672336858740151506341037544790620792209534769233332960272594776397339519642373380971410490414304707185128395240003225019977768466040274035389267912041823442139374481317625154695749253163078665718746722836760902641508801348729642600718322013396777856202957091784040659141895952207195078200860662536797417595288719689444789172277144217748934627855621120240831333580209719339944038414393152593325933928295809255632294048667939072400169154323360293628326380340900382054474069696642290298385324173979273166845351135100950157028462102341805339608872625421431216172066964784683810654749257946079530416245092731326089797010192905906294520097918105534772535931367797359093003750242625643574518624279090125388879186809604419104912868837974206526823304226611653181733596264795855639861561500150987712616782753792028589437947014841793630519742337533067844556929942229102167240176296243820287552586849054251972899399846589996612705907520025213327879640394096048014592470103161455992597819371360863950772300714960754250866804346526436335299045204272964066194413939835740908449714256721739555543947289252122110057990925116370748353049900149103157553227141177281102238115202821906881298332456325966471606532775921072437759922831512517481352091442257637447132860890972554982955884064650090010966038350024859204060506339339254985471634715711661561830977924002124689238183091449990847775827601067487614335966100227534943215807508800634899739229825718378165434898824271244273060621053359695374901609453068085305584409360699396964480313992065132941589945276832263637197863941056283532574087475359889132985733124918828812081156681738570009500628415354506749519142864460789326284164568033726941490663405894270664412489758382688256679220453933450748762694133295948286379330086417099005345318808737070363951658526342934082368875406272370804928607741036467274213225303868463021349122167132085007321148499462074205590932139385756535701107769103825183757510829598248404997328508672185102720552540015532510404686853117098678861211196831790846442399825711539618173720231016966549831826162018143791054031573416832125877730978520414776230940449907939627895953330054807368734107328686727761503176820069120437908412755976364374170229107768244234193389660280423201022877639834881412904811659567021426541261106278870684471638838438387089415056096063723243496982630862297882120314283725600574120032490426770530327352168868060294228135871454798434390328219692536818092726573796590266624431817520238480831699175176412491044353619755780589169583915406037704549773308872124361975933799228772139451367410051416133865533581590427387851925786582585772678936803004441538938489849530229780826001235187675342873848308990386791942092242828131382497389632045974107047106034135469648610912284528350542884773876819960067617579039256687860883286298242597896404253944705801115948393924876696811881411686856225871334764570492583922963425234425279280834501253264477581784306017297914921333326219407806937204288898504374305489331060950321907032808737580990441293673291443369181270259941514447015039748744351501667886836378348507626479547032347558728294434425561362000726632135427143665067167069511591995077934349122309736995716214883585159299331863295425107045123085939073384159402436048797304273910989550788573167400650622057486205371563039367433302606239147662040764798119485087320440365412870582515182416343872266791298506786908465120070998105967305183036667970754774071055987931449652344490456440406004901988642739295623518886640441575368815144195530569584186326751794189503880974524339943401012873800981157411165567234864907536428792094980660186249346632893776971151578209559223717953192358277803556865262124660744422951106706103143091008469128848664358969743589295228244806573744662906248694890800838226128926974629169785911347194446347464829286705527086199450453352793573776868059437140556280228687991142845861846160936509393822224569600609645106801195706239586730890841594040973600140742352844411948541124854281372933670376558737233366301801269894643082325209266427935196808566466358658960586747031066278597053398596008207055129939342856954262363191874309401592150414400437777909949119512108392956795917040047566048575363147052268529175982951186696455062026690649067947490840088143580390555967943340428325347091108003565646754704681351677047726696243735803298096008202825435017683700021267084815071413947802148180194413659319038510131148711598315705572680854730849209453726749213682498310415383125439256317230051828524453628124486986326304919012768793569885971156857746950532308753959545730436582407360371338039718634036483245387285760671670989728129524465829212292887625405933344806349322210469378848808759485414187181160413930883337192695649246432167383727966448349650567348289280548829885224494427401147282477668574258888548626678062232970569751667839261043290089790157057829758429782788684681000546842868984451774100038884369205253593547635048755047415574024673760371406999763090901162433660943272915874474583257366333246155463274174323553920584857519096527790641159492217947245871827925709873038387674329362256960522771404156463712117079563020331522465091417847509726929905204237241656819709107621933446119176394081419216479989173133465973921624515159504208833725302670949122054537238382331972971633268774806046027414121412871573374738828611645088149761983413761642170028475843830891907912276120276897750788098956233481843116618260423539061701253052170063579306296532606658606785712890012311652453755389518859735540142726475111847133222252333398659322374621559171837865380056585100452135667317921782123736176630324965204491702163196593918319434261664185357251102901238671411400224879498518999577834881249036504554655121699194287467654964307463298930939169600291624633746377047411355439400439287680646162080115963037467416043907597151021058618542522055319067749427182527549481891602593279959595997038293926977478406497958918813469013554628827043167973288514142812974353921339295240537099878167088179583752008017245864946907583759542773925956397330492528209558984248584666189687890958891878422572975181165319895189858412029913583203206333652606935682754854823362356356701015687179834777824625390118056939462767153953906939429513916286354041492082333127257186684023182473133231675292758893553611157149176864467769968447553697792010658374151557545374393387635710882175328340511807846345967010803928744725525096022168888486723945100835635356255697011114706937365828058081788298482441348764752525271489812391113920079951599386194947016272641592340274870346755617181193480438763361981599935799392695130271997613762530938879834823348902294316898506318866410993485770503983596239437323546994106714677519326889875404560161245312232469472244636394066700003551449372891952518621032473238897560613986443922208312671835445868469207811496273255833271286954945363111560312106910158241012444519888582887931090235399115147560953974839496478287309024048681841978058071677659829368883898936736090428533006017548418425947668750019973090344386736470976780894273399729235135027144488882367877478036159434038632804903656828035345323535977060548278672819807891565859517965396730328746806680561331163279865801473549065143112156641878156725741497543573435766345430652633361320624003830427365356465758695496641282368949473828803951796400443260934277906474189123605103663833271029461631559972734798483680970952538364497712527645623686310999516332449175699074160082695402881177451770477871023366835672808863664835724481483450627690497558015032267909243097666450694330367501547970774074119511269191183814000915814223642060618774973948558147462006722720424188852564443841146865610890003488628438561230868323135539482121227028329964672501963841978879648775775635509034213502107338775275264082093939906102726263430726491136559579978577004711363664998978521163084838167974787881918122318253310434070671805790281335887516588415515090914378545923130549377794507812135028836702428656055547876951698884773351790387669591328023730268177530790012236948032488128617213291373928499263327907445706958655765671572957623978058625236305936726766033179001275221805056406531940058263098502122879253614085022464495411839408818850592062863564165104153394457918992517538755434387237036490329862577805576341245357514685062198710717865664532636802818385547050975253798799177454778726441461143687802467665474400158790691110247652482469713273817656500000628716336336903696540345708825130761450596914920390193649042033422951038754356448904731731932909470825054107648111790213285592648424834403658820450698772001957337516800085665150425468009949560369548714301641819697988583569778995552653498320153873865226806469686190642672531503875029552196122025966688958910545654672845618663556225145301180077947552934684512911012453822160315987551643560145149615016172236913676376092236330537629522953451225219724055193198527188104606457715379161407048766617542954944189262836817770887895086349045048777819943897502252324432161502392979707342155937763409684704267310005673474924595787410881635673936880715091701930239828261028876266685922920584351495629419257821353141894135071951082603784444170428515506266602832222091976108849207755116439923454916795821130662381684455735195955065505066102427521941693662528573372762976036768386171619150055032381362430680837218486568449257864137738643720645353627380284579423929699641210738983594126199551095273459528857782941340400054334459947191720061471371413046853981393479864932550918401504357463457207220860665905441726762542393895704737882341507000314880214329392992096018504704833871334252208595752291110414566074089967769738874356975948915646154070229519316638906692980678067351968317065415250643192866312739673560394718355168987323349641359587960070644759032497361286685287985367994896679085577898463188630153965368645199179149428106848446342403874377844976918326371254024630180645795789315174651670466944743517733935685945880396460947929890562141564623021216753166606360080275981692920795466434478776667715438684955907105651760155990108891444726499889048823959072652599540908018049974312308183526865308453706874976278001173994458610727798605539592138019815166399614635701442052619716650673635625848971232264107832892774393014727378039974686460021934772135731949256898026617642791996758261159128658839723994208612705013758601534359606564008702917218698847038989281295459247453786568751761882636283529973241843325563653558129886069867872255402460324887268491011559032749619762931740895641746315769165053033323176277326339908815841325578900585995927158492028293825391352960093411029418438586495073391116961481169801143166776516318397470588032380834435625088433786704736489720131284184030564730406466178240751114791993245452248103890868124624215889495172850986482523943159616991534268981995420645186904620562311714123668221021344613522361566044158903701228995207893618438381354156366908872982398975119418854173837755839146197357295594393014748833102018402150868597685807723290656714150786452261856304655009370660854077206170514350333433962285642841902591051312313261697056001232660634060999792378289983639840406133502180899653991819138688884404294795991048989592139395696112863794380290422009995964944386558736226778112170420367002492461700741920311076374604784996843218745073618398639551123931578833771181586320289659195038541778150347127076663658393035631325771822779125738194146247205429121685637878078414507029359226654357566103689635349723165380302879741811413900901922072097475203090743264419110026958714894075270667516437640291312489158343273864546447719492100997115766364268554147056129138317459596588195993960015049560983675633738565220285675089917972185048495325191990139905189951820285632169193259237277883764269986853062437436257510764831890607740253663987945341136593188488344114138605968051404929042514666451321841315501634663556445912828999569044429808175457313778456156935302523347128559520211712234401239221322484043015671978566058304115665137355673688965215039393576974278932574525528464887594959542675412731108653325584367775965046023994624350665090394116706907929435234888162708266018614369664376971325413537215563980420621466569887539946189453653563226095530206601861759445568801673863260022962969678575220683368960877593681790264523983794802676571942382329526745651052950147856661971939072217341540689667579830248251119179651267406014339276683127591761004970843902696438001556401819310048716528793480606917250982438256551163324712945286817260783080645114669837052430052268658692958675917195051138845166338043102655395726003849655200423967950599094331962357689939628920487378062829937705922994319264919173372282647334944776423336387618206402473761634081164800651267611948318863833642705492552749436730155407482502534138403475194624912013630308735283209860686756383977171190038674510382412257860061662930244736040282805705147954459196814449609736266534097289478374260606194185910212512155909176225936644526945239918673517514181170166604684120387027795391741699884238036461961034221474605592814456995862896743122177824326246133544039353013538552890945936795809529452493719704885423019144863459411056177880223731279941878990693920794021173269414148870355864547761868582981507741882403477694871907253226945914604560600611796110410415348250371019899422528185358721142757969980316061438194672671178654566852474901832592598978924617714773526024381127702851841942275977579245710650520684852085846372447321195011062655613381373298754650950022531877494688811011708984953558463347702884611809441299728370340369990184837436476373440417738312577301267696054159718593431490150344433985403629341433603909578826505014229411327054585123877483366756457499911134937775014478326963423233507578336130498439869270169660587825855567935200822801066612517240987908231229577122026998650477863736044319235766504052087204331754383914062416516266554575888848063426624175942509035833175234072928396040847231056798087449116014895502156631833375330821296409726958499864197580151852235353360719314074116019374199770378285931661546247728177193407211644986553214330461223792833451102697365450754481166524770933445254121795982300321861666574131917878028398803148122841000660455199353732499407597074491138583070338464502222864314625696431922079854479565758597750884553527126348735588223123559768124770044980856636075726379895429412805670642420733856282988984701549918415874376917132310928827753088358617999424402370520548215114370838110583505774863798950382467545963017303972558673723953974215214785172017424690755510214872651303936681686917112537337559864479295515899756577036025540826422008070463866578291644601364799222145480414986823460719468217539290597373832627851719223843908507032364344725352613782282380939561682834106705075922026930767738334149665935512306437573176914035391782603653646155475760617507658999932396199001738347825623034614222748814623086133775548682536146132582311386120782384328845472164872887247907217406456260064128281395420625887627421508447599317741677995971290452785458898176024650672370960074311282099231916506473540650901603934373275020006812387030366342560803658363298676296892116399954853275483315730370630915878093512311848102038663056976172032122345340430082264638261615034535010573247440833937466981875696908228087285013183562143880480302139491604347014862917395452947371033474804457313937187971211332629667576423948657350117359402258394144734861417944330556081136257727759929405572279564974190328118173083835795389150650028126463136216948208355321547369554837563174189252015435336478172704704469872549921164221130404052932362704616481183481889143265002803863659456369569740163961125651563039596862362317946236812134093632571882867092658954964086955207543426347052062624340469005282922052749590826475053637680068566900678997345344889473316562982323598802723406636480419804845823927183807291694542756268999305629641232747282349428622482596800715772922611845544153977811109205610014585064793990136748163706560155636991090531767139263419169001690886130413490845129918677026961790083575641626829746955083136812345581167989655703004292278191297432562405673960615745144861819057818175236700450518804700869394456900718454208761329993026477331570324268798803597265873941981048523342920864038946578791667571057614517660846529448485012857438654334436652845136969673429730135539334089244246830091906184548715135224425457701771667672444181247121447190142897894812145010641160014241307661015199155760842434475574275770677762671291600674800712834761899727189043495890431485460111889172100920353513030465552668916430688002859698200413111337806616848076291616510000794659276942607795818430349106507159630694812534703962365300309336278508045916313090155214367578117838969465988184681497772039195765871754771273176786431256205681049346799977198938160332270531937692828074016259185260863044219202449149477947111094408776055848357349481777134998840345384230776799172590108131181870110620943483232456489959619878075754536386916989432824152350271346513132205765941826915643428426685411304973290160577963066424193607760054921141613845728947051264453378241807030788411965011747316845539103630771156013505324726420222183796873999536780864998247581937949741255526806993671449856944307908342879909286388016063579399404100595521347370988826433838726352488471266368610491998806904810470157062868489848083246995201653236926786227729152850614122743816846489102598743323314698410728432199478324499162549240889080642034662643874703921724232647103883451309375186914716104797050142492807365864814785156806584261078681942165068218608925183630909643336827653185710764463926282652867295324251471061026110434389766200760378413094464939767780621410510500126947342189180090556185282303364969989782919793400312694298778883425915703024085982793344974790870222426945440676903141158269712004748592757427441812652207477762251694381663040305612894298392712930582652762605306078594618780450581968672702201867701984063390406779906104996865031205289116351578349671887414868009617507283505720005046856856799573060291596155445045498265538534650450884876805731888497732435779852708494762086240771814453102271520032817620378565208228004649939839250637858813477825397896781189527912065814459226127228217175172367230047409954487989164989077140318039698687469628200019748919917289213256454631811111089029830633109317026017013818785901339955225769350446356821816148908870376995347096187872230781458714099053355451226004629573391556030841760297361279057139424778448877490349179056741841164114405260378514271478321443564426632358065944160368598883723149092581082769338530606280897166379389383174565841382785972727087885057014652434071504812497448451700906786464449366086717383832438898188604309578619603728494179474072276309216036117890736014899958486325444988594459010867535428081286092190209011017500908099970407376006427121557384965147172192687330006215284082847450826767846368714836661776615938193241606475540189240547499876760273005813396586685082713601000520154433352946140636403860866464871917809565223302435641938269569153473792789410524886761216041550323332031071685361190049503676220079083585210392134949493360977770171457762360218888756841417159339132993779454462797638658406507602597173893729389599487394876447493365014356772460239876535646165460396752820375392795018512182973674721699530133039644465225801053824363292756776418964582260155174539111908532460532768447005262044759021189407196958724802019520296001555383719865210490111023169714719730881758010979925742959103609929571468392504557382435234828099959133110657023377311262177094368406634704596214160559588038042579142273783937816650923841986982959674077718762878915273607087950757059184880196348181666744074580824534561671610564562859302911121498411589658623253935043681441996422497317633448741722686248363724474043396515615818570496451587368150929825222528600196653997900160673691262536019866977599772177077213803283476182123828334943287460577090949774017116164509603352665145909656520997605001979319587626099245568417090230788690377870044145542309056115567230997953678578388053485336640707495049553564337672006514617170266873563158167739128215754409292256609703166575460600621295112724906670547872630144883941994161072074336316788651780022400824304042503630501970405250660338069934292490815522428950104820959087066712627423414433425154798735342916429530405053639111217605421044835004735340932790823225681841658840663132730955129165856324089204290315844079207051093908547108473102684913420296346301356330699598426576355524539236944028247950361685304308119441156821129360389602071613103265546392586595325631888642418154341610000905014738553741050111902919982248392649372672856696182260009216286935447183930043325732922790288523790802139363489151699684013388256926818228513740888241373682801198825739503675387621058783082633757464316032162025311118534522261962666783900656095180803452597485427125839386899280685596624635536107144088894946544650362636139136062076060635211771717840275083046206424008610667005476140052354878354239458214655913919022801452058750892728217517705573299961077497533204741380146085081737915209974677764955055341492101149224220007136944852702837829722490616740171747129436878658605255570851018977923754421848722270421921637528749652362132718820178864588911077515521493480272214836462814924748196071908364083526011328703737062619275163964465481571921965070966182737429806241148800732051481233364150873389145155809422274026913364047372056636188234010337669140907769002701092416179738226692005565543327700470326642378919390665916699218743342057029587916816908449794672042720257793550698909710611888837132503879495373981513394865246567954468728001564613758872004712871501917466157687219792627306916154995942642583615762759242636851336678256086655609325256320040821402573978891656415451407778865152803681656615490992788150307937419169206668584299853366730306920157932041460143819879324158446889367201615361900218530084482334334610712775095179148950274783618011445269290386682777489195461853423312154035322650386070701963408796629311103946861299320596139241203762909977134392091499092910965967912501810484536045562844362092298628774903627785831623734862300839513448197677267542073811247655749522005002311279277549422097611530845600835539179848629953945490501828395346984479925023979236684074745886650189118458661482892224743000982907144258417205125822239076942932529464761600836050459366526008855875419780696123932787024815548125271924886479146147723458539038980586981424081050959891343535831075336847178417259025298283734380405150021735514358172495785892880454227546026414301291754796404589679363851632824115463533305730099946836307624864734053182332372076840777725687333007474865015203416774999346433468119262305797047439145340971408934919076650546930899656233813002817054745465496490159283963950406330009304138663086210485179852635555452690028324092786314449549582021388676572802025510073445387870163762296989946762937073394522201075550093608995268961640981058128951002257250188766144025472056009595564715116655149039426402072502834934793281251448980270236137481931912665036934092402831851241410071619480258321765199945124997782079121687458212499885163354759187028122334125097707031812842849974577039558984223899751392915171545019040507636447035189453952787707967142219812875361536650665705515072105261608316361980142902176878717095646664482555861842661716737230937632632573091097163604715228582595540407565341809103825874231815861419292377675566340153437106567142383623454846240399874824241730430767074050364448670835862030705110139850604356926981479272140100847804131521324563495824356314781527930171981639554945615401091765756578081794906740952457300137433287469605264299122167664214077874294618553730771705630880918936315464042420975741896091883395189671549384273323677558912919938252414475871449043405625856543207870655486188307401111736744598424488937051558289486897955102341806565158842819892115070561265179306087193706325118934831308340885823077309229783418068463969529265493608641677467700234137549065056405655326875009320053087713869981741886235862976616765143684550786116951536918943240360474763017203618196128305714911484011505544884285222877022456128398087339415901122204437718617878617195949639881109317934995934555651457884306567337176960294693200035514913443209520242019061037558818917961595397384561342882644149413515687006094929241284997268929186759620582029701876699587474998419093498616428595796723795568538561317214502167798829435959604938022000070774947368840383684297740464898853172449199674694441613164026298804431672436698162829554349694974044727489769643183982705338927960394487036855043131339096944783759435913034422205207349667129248046435093172195597505088153249569524511665427593371829682869380321795460373626568145255085489038475718641670959615068426352722981553012130773166217977317806017853617784459719010214020043739192524970323495195565334197182439852921657946043577456163153520402491672114603708265864372897505336355934357667479402991372837465069638376332252138518514853989746643788388748934157291509834605621208648632853752276084492891033933587778991469120176720363261783088543482346608659313824624323397194512349127826773474851406399842241794057224723482519338777584960069162210722918895602237132078955565040252534770401206801313733958993101663684362816507402205064717892540806136009579043217309190011275044396470884093057944026436480901453898278849374323494604427703195371195266416686133547107020582261047963370552325723092496957054518899270445105143575348771198841516769567591699979840653770051187565069602622271268658827902502812761835600100388963722101930123468658737392195475618298208531764392104315974231540393387577098097642663857684434890722245342767190533180378972323124251828355401357539868207953763638192928469052318562752429362067133907619903458650042783298830640109829367208873694530998155915461123088240907140219353926404420004957078865600826866027679816859791994231403485709211912002172463165565918892358053256024688675583341915863318485183509089712896654409598136591289919689959215529000054029542754322713015423481002663955305414419183542172365105197198439866600578000330529797639648755272335495908532382455093966435569726949296371079543746274445987432912509305991327809081728955259773446082815454830969119317819997902603779033304582314942372472734571687020082064711150189668499149875759165104526365444910895329762440593025083947071794366111928098262743868897587856597168610772094624402279993007294502044015566613632398337726581628272973128860347338934890661999727818540686695236412701030860000284945245836084379686890023397506734715938312014685699226119125479048884473986756706754858121634528559065224094398893644887352724559216948162491306288475095966173786894483103196450962230697928396517023841286762427790819813358717083434199456235392734572111038264342500601360694891341013520421544101877340776052785054006250797680624040952231111767481799649407512277989090886698947541389482468274318966476668611646749240600877133715150096817630893781855978445723751243930024283993358705607458789921941871920743523180194624936471962070286440799724016095020431928053643511123851718871255441432291474634378772779337413014697267799145731913333102207903821444789572081599054899198430566619077368759244401046142638950191353076886980195951391744495143785861781639105130558055653423260461478164604727037356457042311980417782507403532110356885245285582479644392890507250033855647003976352877889624855167130631598374576191919763790344004164806401572926501709414523173481982422852513852425567761570969678243506197103185810345485058718630968004511765191692973490282830023657560565854720809488439106709953890505746353017594704523989625391923196869303726403601326377284574050127992035264935277310790822189123512714764895090663140850148174518911745801621506872180140631401449393052010443520412843842563796994846245109188224041493224193371019313062289593361704378569163292747957683712085244263603187351566231049885018756888184320096578991034051497572458899451287315049038598151194491414337832763571107822812817568806591237974738755845228811654384329581096577008279077070968606131765703068507361627398679921042279623537577328884387118357952057758361520789700416068535406360047003926148630477347113035378087712474218966156128433299865666567733985802811654764616336800789622641534259744592658149860795797902281512968837030601270005095927204652276182180265476281034690746366377561572746667468596680009840732000515025837795123487677509540406513755530547200162831922827106559041643709926848711726037121113526723294632485279647660472646974335579519671493924969291083436681301433565328459001895987117440048491454711225804707245468766200633629636874294691865556800703341630483329635194819403829296912619547014883311326617282782914756111979003084289945405109481271641361293976020361645502636215329041593374390025890772204773692567546731066553364366024689476917333226783788400957129627699592956387746891615264060610862969146641702681273710596420656899071794260160074863983501947268405475382318313469759088331810558062084683080232319204242583757869764149525788544004580092618154731705296058134790151105992159904434692251173445127609634584614629346859692121070104726900193188150978618997230765574484227777301930469831110956290419604630555153743057011402457057023875575953503805169072357865450817095058164132022095524775815180049023953611770152744035155754065944633931961081592433847982635690758591139755875334153756407624272656309852562785775137278388132061334308221008981881182744151361978189227266480975989494494888455992807744505783093699825465082216967314737649633580981609871210879430754141352309031400729646830604006897590078329725850560149964910062083065352104879626681788421205752558031076254439524790618301880637422925202378493748672460582537075345597046984327484453088948980534778166460848093583377899980196991106977524781241543880698863536641459691376345727848684784926423728476033548583342254331459247112877814425045441723025361051102612594759879962511372774842343043594355317582175907558272495801541935958248946432287346391273057824745874440241510215358862830796536464819607925122013184554592389473152594151127154355130895583651880603935581441975759653580611103920679621389651923019524398963098532278502091663441933198154635074081445105959959601899175751977302367971166676420449127873303640150738703158369135113858452630783030225239235306103319361783521378104125283526649234350527686658941779282371046983869652363204980959226556179897171586543878343183590784631338376136871052264199980549919771715361005707331527391599922045306550078749708171532577442030925041432958026896596044198097890482541158153174821670329463098490136542566062190090966679212101563859597873651345857690709572750465759094466102605462696768457375316075316109582229630285421982393941484825403144872135565123027791730856620659983432747929945220008075074375641880362772189744348771261261082310538402028981431693973542479518205034598793927525647386733361072362381379493911536880306415745333900300677928675968316780362247243226970222446388200485322318318337774157685112202429856758308150963588809711720608076199915294987186821608212548052065515407050126911963418767914673647567036723484812607914585599127250611462721978029737477563107709359202265032071038861432960729132687918231037451083809064882102210707365533221070672765650821503103825739170088295363073486344571177669645341889361231979426047449564000838326482961074459001216557676360385976178776699935993563586658225030223770616500771647249424609199126992283094217348400675428963988226870823198551381068369087832002881805953485860046094516591725605732087322239349209149883888602400142229031600618733893144489729159531702894435937320523129248931709730481898445857876996668350107051212957312183150492631355976523258477016559858531710101709895631967761919105123640828268657629256763678805169729148279574599577428876404735849868168138479386560040890786457567637716418816262544432204254021991812429126803059033856740474206674567995657341708968600343254002051784914695246250262755065925918900256320473679914241668616613303655411493142264553109021965586476746211294089035939329657454296935769150942876916153266703890039021983010930670139678983610433144413871033550830825453965205162342691414107759938031870400962467233373198766690713849634785851905555231720887521312558686508800700141521823278213409698648553420835688671856420552935103347366031405102241128347004681589076463796105859176324079542939556738257299847252635666460808342177880571842492543533974716678964596605218707046834751995008368622626170520624726582781350764521206048658476217852090052494394657255982288672739533954479315955505693211725268062733539463437638089882345215917665509032730928651158185592676017403596195460347491952887339049853460782112064693208355214674568958137703766170629086067348020255689263810673262506863972835556043815127367760254691214642903383867194146628637628774071900143558838591006405804963786235475614913339085513374183825828492526835052220853036576018097643802559619219909806229244718523508677655200618967511592589593568628987477283002962477160912068704762753856140608454843604589623993200650703380185168448834180577384295909274285424695624792866058774711926667723895013703138688299724157525616159108255883045879521082262711863084088797463533756056987303691316013754802090757187580949126036536894650017892831356202971011928318757430613838012541879489428130513912496865042766388010937086720837565961354128323782877046208714228915053916230442538825861472005750571088297975794322263667234872941632998660956803863504143414266595502953374966647981580051256989511685038455972293285405269730690943983687150061856589641172326231862217194315826181961473392829095874833513827995796260465230942057211083330225735599506203202030401391638173041231422541860021133920209971080957177789149934607146779220488713239079277686508382986113238709832858316965645843858532917630836889725627367353283761660399619876094714113628002892205527867469948509005472201111039395738887394271080372427518761902274365419958912531849898559222760834535149515099797124775474968827577123394553260444569433737582638695609933982229147884536216706323616417122525241129197400628056770002151554106482136281928469323386950605221286171135572375228194599784366241317196737163375515711360094210096153371101626188845458454975288551365537314707835569162786711627103542581858594464548399097472991117539687410004950045621453594614584021268196166562109002207250172038172331888908639012442246968293871250262241817585186646160326519562080827186151678607396067381057808789963415794641037775883283527705205973704134820004143586398014417285248588458291859560291590999123757852845916183267771818555853489392147233719424548591794664611456882015904318982795100088158261224649928115147394514507506763095293846307089494829089937493196477784661299258217967319719040700292517351217714859311032954993773500434101456161010736605554123472015245413925423407319297323833093011782894257288796707160911022996673012577249166429978371165280449468581990317498474498995933523564492565081754071847579976978449410586443831475233810135266047169784039332065050585110516300135587574979876104393894770061082344102232578965058232173915765990587444289949190823611309964644330732275617240937474661777785363792684967159668526368206392001993067922735351520981257309998101502604062138787587089954258964939403698692184639610033653536192260304707990716885425875674687872936645250454487317079349455674848614301000284588350198828132062189417292372952917681677197342490294638068786049994745905415210594355517652258641357196817152925960161745536580432408571071468048883628128528004384098595220809685144117950919385629319288529845713795449168232006427645198094974687687247976322278239860171434522072047585454842982599391714187796747249679309722579901506426673821560634089206071749224250565772453530437201537265861175796961793588269634598930014111690581164730695290076891031339102725880027387775309945599285123351234113285349407546784743433469900083719497746746362100412709923943859791118646037726274983071445988705601574967811519007289478797306667937515020462764231362800697064598140634732018190755212938199117824050452310334123404733167746975846471981251108981688034729044575772114347944520657387957129937706190427319738398452556850823160762623400441290762094006658718986018670892096613069031448538043589218089382876528022784669723971383256545128428573577389450698546797351613558732637903745877894128271123379551610114400308522183486431807982813465612145495764927173957305762288917949409186087111131728954615530082426038700904615915824135280648802562484232707882531402750583864088840638996681369695183364526071110393633215634546109672545405185355474808315809225751613637519744463972394145345121035237313691866679913644618608551802445666491593964252183359312262213719580597025317060123114222850900896979301015202565598364139812990979895814258161561884932910162261689390128444159893575340164707917184175942817653623680982701640781061706256034141625353561045602131951193493566383405852351529711799970582736501992217971981315725100717004434699175117147096474885201567894853430012912813500742250722469018976156513059568441721658332026949294289867230367534264304447574709420357556629381624964742519702817496997881645105580052962273266516375966609368391519250962745256362892844515592620421893842107216499966090439568706513410300571635637609820669911390150163288569983269356616470770394026576992407365834099039650453372342293106558545914762992956588055899046058011819692488201846911597864704079982232089807994848988507069684203305740119460466234598294787837586999607435894634676878161305528201221444634275617162484436479736513721888812797595757157104190048428376001172954784968979317528244462766656277814880853454670281342145712483600058253863850395684030924283084350371194765503846542122019653431029105228344813091054961567319497158403127693526474482532793137049385635808336990366141592608317794463009344672175155713524055964687012523486359635399418832950565758603989860313553886408268196191230224178202016343123971030064864485121415597847974222539758853614835016005336258876097127600420392498974845729856888800114681974155449578108920335814108288459937278096696925758939396884331493354547249045465186384294349342151965301030032114538928548327076731395036767064907562608763356000838756604097721163736279492983174326262120254074066777714300715256048372930907458003139820176338148941456960757208868218430839320787711045052442360292637223939407123433400828957742524975855348410525139017446802911552426202685225489987848958563291463912376265455517740959329596777224624678564063938094577610750083762279440743578698007867231265557391885850535206432626575392580536444910030960691582796539494494279917263259451175892293107756730091349000817005530021729405354055524826327304328215715559968458277297170706954748516859601515807026746899680828494803898325363300401390874472171230645744587859261144752390999342691316567904749692946450320778733494297755606665458094661133541133310171477922936899786411271533880978803037262303850340044516296304755560424381711299018629091387115464782040174041511555371107426766965614096219002484284332274778928123059974491075384530274001562799982206129032487058584606600687017708250187793047109810855439391152988543984912189609423528724579038499134270082553659831641736928873611218939962198319712157902931418130561819542891005793959278074954952174257256235668269706567038086266772595209071386657938196496747373706313201427249523930249639146184865519492251523245020104596125290490009648055789384467283058975603729479883347839653040693361712333875600531464126540765990891639759215172646961338494463575265020493587030163064887901137776861069885495724899388408158701783540447301230471723097520018619343202572152777187225825418755198700934158879730100373884078343618883242226150228182086924145427724942320562086039171779805373582840226936099853318654099418058043055802168198957752979745207616777266105840451739112712419886556750314188015203653336942172848508982685918186175479117833090283019753015068890981314139578395948021264881062654170455361809085048096785246985793307772382789583019134078602452221573850421586970286969911333982935057276982961466257238026959568414517608872135028095324407562296880876141430424329579945300460982135698057858855434175498606323750641553447368262758469379553462167052519021636773471989713465167356758819092735151672760189345791931175988735028599298009695799858533649593490055078908604921463753090075317623950194833101831108757712792115179063138851842947692993031895834050322183612325339231246567179203250057160735700389404376508449751831889342740955336471124686616064154526374847970057526730616422760957381516041890344211078753918980463036928561779872880105187894255991208802359147627140864564618207101910335013999348419537919556171390857775931841686733538104045146570925771192752245381426110534222984189708059873891695998409420631109158408084132491166961641024575062684261670268568812528432518472688035517415024965370904810340142057588421186644067306782326293086203268565177458113589796386784420323830803617691379856960156983784030789760293195809768950892014557876684763281207983759340330234593538862410443599460311618197206204849003779701715279288840672488029141024575395314623020257058351697044170944786955983375873224289656590602515003328803971072303996526438061350720476891835329772050369033044007728958865159666544222426865665334786833010285042047638931661784208559683651092251070165433993998179604511614176749410646796801909830744746747846167127378780873164101087558732493943211645012997686974031528623018495492513085967972155581748954934782944763121985499953547735681278322139493094521806249650573541861077783254019594854989261847475660712946293836558473786128189046169837470366772934990751553298208641851823116122133263325417107995379492530206093253258460918392539955645515083684740848500824054517834883857836768134419979344820089584832857425320950537162080720748201972174332092345320485428698222554915883856145666995198407852252008111012993301670182493512781467940914117616471476438875805558914084352859269032920449436490360869444652741243232479986065130792519585057757986275521641055620882190621751427617691333685786344339587073242897223099387178584823560946806015346261037271635732071789550983424436872493451857610372781184997756934714976037771081075977836603641416817262724798828122177792203996842877594340995764805084490276207430705927951941809088591778634427782620831413945011049085338652063075425120027463918689954988596671620770311787310641156798898121258569405988563475054753469059989974089369236852230611591069110977208220620261227059892221849133257183135497971123787912746984624592852146718903884742014247886510546131490674032523305225307589211005065667595251231913182849527570259390863662343801869186137142605121704162180940241004778915924346803856015630381007841198035150645300628449204626187581661200592745239585962253310644792965221183084852621873913560079097538293189030130444769890555576131992417660770892541707311531031551635765642788288337687288392906732888024474427591382991550269935564604888676538667494358728782064101167832556115938547849722939024836271418563379120574354831277923908818009548477024180437181803409668326455459962639114614411144709329748495209672409251018514362741660613739166773285831673216112920511467440658795161885171547396706799602092395037838035764049171768169633999372897088108895809407963757355352438863692709537273963974514345827442539152807903238701704983014013511825256736098563152020715134306379182549620905439036464125319484551757032153017148930484082481425552301006469512235382606169922094709560024128738274419152708258397382473967805645769059588312498330293963269144430360231349523500121948754974595985758514224523341297739228196612120018929700768793079727086512290460321206683679847849442697595546693693355953360521964930532954040980403652149273639392298518211612997017528291513145213701980879371892792277028493851768213596575097317487770548112534883752636752466745744114033821902442264028914368966572015283377832935926998085205247743144035732197161264149417607714940351495976057392669947375279075997943645287855724335713140227475575245406235792172780716995029425548012217926896974115077581864738440841882950680931333065665800452244592173809912402812289232919721701341745890195519888727316987548314604421914490751764529741352857091264416200349853908191943110838194745409990215368430619477827713693259604669565604385555336297188268757944775614065280507440938485649027974042117870066962473283983765846749504783537911377495356830549885485771996652678769543575833637348680716565577867842247194799357322880977602910885918993792015353302741512405513454672730657539800911700576292588234468854714324496886457131897655023392556881815355208365447601108254207750045623297372725741524898029027805946755922437245406485213832897161191407931298788327281651857218767517889051534153736558070948126542297621462174941002757178028714350238728197132364504332589583120949455092801130119574440413441189226886268414273274897037202446679088704992865957863237934638980918469627076247689266054913945465723660508977084437610528208620689945402145997290378154708068418808605352030633008646042525341870164789031823214039404462644184971498680360081199290706578500745338757020582418573690041184436459264155938333327543225048852047050675931999125052855583299915159948357849525582802262552900762744296073648722034796891097589234083091827742807183818594715187109150783385390355125001762882838723414927297461399124579613226042914026089171812906792458770163896754172432924657305187060227273699965195890340378494295913489949545618848255912651370701348458916291402580173503538204778750329234253015015923027352097853516631712968697045701857595799350560258107965386317630953067509015328688123987697120472768403836628887479901557881906864547997237919548147057478052659783187894941418274535622756715955168618396481811623537322708073684339310388136512161356403258924672777383545084602501091796117270364060981644892367024239719355065993497283053706578534585037636756625477592722187441599092446511836361231256492335324930876730902689291538888250264773032821275989123029559075199587298079315879766370273730562427767255034641788142035538534237456191737684170745487534104080123019181933487630162374397234786244157417582381806692223510725487971188792926278513019419554928894416388188541275289304777132104864915469979357627935148947279138160367321053353105901997230205629614021585121350782959227940995263365268211907811456728814357887614206021795663573850150486685877859839233776706755501685548818223726156574611127997339969674953185983209554799128058493365812120979025722970290467924426507774036856853401540641944179880524379939090885475716281423949699684181810038771130729610302130401268497965208872891985080408165253140891067033217386125607254770954475437076949315885897286887052729976833155916412606163114293108167984658558533756748063728984147761451295502383862017055770104231472095028318686183609938092329329702443384459100072084076874274023144162645397332691447993977941997820792398356066161520300067932156953745632412061777621858991251954705023323431955137294195209926519568873886269191254239343692561522540715817059788053374291289742015738807572199363862593243089817815658786682889318208192872966231311545006977727192689879113587680536637462808049085333862941937085245421885605549434342227530002563614135936402942560225878301224236198094689701564302522815526406720148086389211379674526100255455730039413948234707346065056956880742740211896989727017160956911247079151500576613927369600518680191829052567162249973418496588836294854244475342034213591369066518451045760281285515010370591133406596347240081241601924256261125594318349935810094633425680489585718550719704231336805718900172367394966784020198977327139677985250909519463971223255721859222810309564154100497969183009625925384402366336522734033179929866378194204405882776992571290080434231412651636525033352637542422496445793654254442179101058630673969789161117456821315824670405661456642235667924775537139108010956966705460299684531483558620171790237788842302109214638096170696571207879673415807489576688443169164051595675648504875903731736079454550780689616732488358657514020499128082560161733003295295719204434520261786251264538845393684366316762989872455822164983590112071877552290843623178845077351846913826591913559408557662331987476658106331902207126478272426615710250550755268599694138921439826385969288820726533570397245573159849929061082739588069852704646647052898279206349111793703985054566352666706042461097401891595953813402989743628582362763549165477003471623306494623485684956951783903207715329222864073553751988286843374186379695127493535100099362020672578788014426360443695071511791122243585685481798620973243582313610477852445776506822548047343659607738553648303598847543771484129747313179819327574628646127894273548572350764421885572177917255587172702293379013876793310481522442204780788451917262619308476279143893068782237794795966512516901221222705343304456317754209670787501113159536957964832748030169211268390043982959100308655592870273721260557075996054584892174022088117512884273061025010975706282906394874066376460106483195917395494172721120540495473867333183721306247736020358069745938409618276833803135430879599431326802351153827456825541058504029273659493521757736030605611836213897904493212943085604966990759866540700332971253445984870292354258812148804076234819415564422895918480380553075461313703023220117744188398406596743827260876082450958049784895750443932701628772245779650787926569828739061603367657163254699680683342863552388263396908647995711335581481170260972762840945405351120660469161827063678018362241131687031912789823691927191628050396420573392856623192487845140021889881826365484961357529699037894913096712711167314026758131896722348521207258220479651260730429277904851153575017247205303125994501767755194727730651026873963367035478854169265913465421088725305623078347523033115051375919861668625746410412032808265170348855694559178963495357784058728965663366696562788438422968108132156174371465822285677242364206105044139851250989205779429155784309520274050906011098048138608535982605202962778489776912867933234580904417256908512790052629033989399287319956782440529268516053292793295517344483649523211651144060452489254723358393673355682431850843128115052195736847838956857261579375505482475769581358353997144168842622780042884785986890332123149528232833673888180196267207894103386856938413142131463844658686320064953660230458865582842337007008542983826785347626200935667848360136000021169087251679684351613776626943500675532234708236456324228722262763206089442509310177267318641371217657678691294246067591654987849244766295119172267557357207666578978692456999103825182871815333536676858454038047742473999203500711406388468728359191541418402204227745215136823886956191477590106055880613876973226693004850793290653925314967792252666224072783121485430863944826743508457608643122183899208788004258444690125197061100666192266852955786230622521184320115494762309089282701676385068854705017471136826637091796683870372436502788481847894363213322873418656443292625574047432252826294175016302516434829060129561666358141710425449275559245188653573419091109566889939187584403600572835618130889744477880110031521574382260225218143287020856109665269970958324424493116374395591624717657077294290893030365566976588631802896128995422793993927031446880466868666205637640661507636435002568438114691858348295992119179880353927348102322794977417134865501442567541853906102852177287455841875656011689488874302933479396089903456782155524701314876011164507044202276848234286252855989215408926209546725765189903363358207845107685862827729410615278573332443934885064980072587571724449336971431470111028623773359900425673752707595996638905075757579835368297628198400431674776069776731862434212542761873352167763084243911885146387693976121274379075009673256487917705939963669694024508587944949114966990020287143204279256437158926341411633123435329371176036151589443475273169437429897346529872868920569968184871081008298863666763544742685316721892040775821283374169884830000040331618819483417048189113458323312741717104675024676199269168888558924355416266362285231781608572028692066881653952622682233183562175541557113305763631859020581865875006547158213512735866601103869182158562410594726897847206177156104010742018850909029889137644052611898693190827539902390010177316629548219930028424995288832471820698311388346653239630535050010673515926601405931278427800561942999022445884446101791386195694793542874101732602959102892986477369995990347158814631448664658890350482872260785910274637702649745122522751438904294522922976216288974230619160943612082100123452127441539298333629800125561323904656780491335107477908580808541602072534724236796994499519877078648895410502689823895651826638482290396136018727169678909959116000864997238674008500761151243771462506191008773053110810646905740870302374775763419410746094065431935691922920121231782586370714074080834287164581197547787678917840076713062112815074784816873771796536052703186585522084798377963978163214856677460721743450380024428492254285292876578302119284424556760775603964500775150516214941687224208978256007040412160031598557680738452200450999299733254431279986723134400340084862852709270215978445669480339179294167317960015243326046027437252266626314862832285282588463517684830725124375832170702687190652728924426134559694389075396615746776319576498135724026614117483715234648290160658446537978839266846038059737672715936540244351831534898259690532629485015750618260771096925790863519600268451911153055112482684881612728253714077287354665884462705326528259434943845006968413692513116834198710437394715438779564106240793961023263926857409116315718932457906498285817797434640769719809977501759577488448599370981822498949096928227101077626073830732704780324780254887436824426526668160483949636678700275823784826953630147275928557043271478007246168323360332621027598195898030168780127867343217235900538007617601780331795803794388118442509304196531316191291964827319173394510973165508452520634305807308889257655995906950256956328693952172198820445965970766989587095520328907459223075348090028806562736834186733315788643747817524209534874100059143828246296708711630552601843466479062058398685636657974274682745408436506017326423761929172987583998090331423783944951960584149831966651440936428373169427103458786763175031845578897525566662512075122853440345657225346918286763723145116452256702492301753064586856028925851689214953031832143844756876988593542270637663520251313751742634158338843376286166134841522319371879821674887849432568957351090590746890881448617216390627855199147200015422120879093800059390000264261124142787987900916923937124379578719642194771714977125302383385068143781447119705935965852508544160579849210703286410317925638433718263086146203344629362819215780721818986870177291697835171655554286774444233022962618214611547673457408054178510496492089656376399039368511753464924495713008114622924946348268980510162188668122846459491284067301486840561496612567731473468030995749895398863118063515942840316203693056023511180653828772496822494059086922381091215312704631014225495779557509984040013115760504086740614210375618861328714580947254424558507123960540540071696362898556297123028169900995035481981264202059220651668040003570481305177579386539567660909455535003301386987305675022249520553519675099949581088298546130017113659703647125699457553667071075560343906406633917779910203916091552654202345013370328616993804090923991195196257316474409634810984789326522527987338070977252241179115333560559830584769168124081034076567020084435829805586857015862780468585551942314954463792538461956227789006174520130904368878373065539584469797430533152379169072872653647359246431839444128975683934131012354595533436144179046288760837975743541351962946054061432010271149219996958235613462468372720752228071523876389914711331957681206375456335079523131946416496892404696604885415985409158352114618894918293655675006521530070627298268809391718211206886262018698061136752505940373493262042422830486054275621807500598144795070937223708914312664050090144130718581961773948247384707292648839961397689383331413386195313722530472824695506917748934108783676793690098138268799668408368919861253628005882713533837569063759505235078488687674151831494399046413169750189040066371675270917860802975054272149371043223910391683777421632148340658185954190058652357873373411348230928804498965756421219043608386701272893472460632612593026553840560979591531175248879370507019050456444760684161898718516853286401496031144577629235707304008563005681067533247728257492232544628889870426317236071897681610365033963109503722103912327535547929844617321879963417887072654237920253892048076423687711992571703931339831061727228949870862356609320727517809266013460603044401298184099562861222493705543767812346431692084454269485914993002485994924249330635257670303335040685773449041001676751474889992356471328718155164066446959662280621569749555217778178148300725370201699129837209062565566432271041180649072783342685395077976594514477419557744850105145649387901999236301295307183400970085088301799426821319220382839200981550151906368452616335070105698046159101651752376946041593007455511913386636619022746182518430488228859376914559139971586297837260164869537539148064543770054450528729348805512763571702296000246620108309421351191124487213502941929023034889955298404881988244185737723266534033836740556653009262736073311166459605117989552559115196769259586537471918078437444001482116402036793466392903531967288106086660169520649521445804783014793897085862316427534353347852038118482371850610562232438934723987465811048653864488524877244981679942040933189705583332778692763961184546241611152538420664876095046046819359793650053583747096070095759879079855936944122145895928383764676500911201437184280374026848183421723789988712269484687562250193656459393032570323998089594795933517176427355946301753552826577370122874846693201896046920820507615098577162291569276347457243861802241740045387181169304443839116319350211601505416117042378989915027216988270807978470512619577460536529164175387210031581609898549700476116552444980999653479431099493443786138603418060419054682344904621795072666741617384510574359377749692908049071259917122864593894819161504278016063886113486281989437018220990202462239539877636048106135840764186074631992484591063895594546620232973438067544741576861902806992508790977576841741941175370463662102174270404307880249031255804621531557287146030068294372031840569591499363124483562595872783830621847091341260612343428504413551741388840343128061193055108036208894570133961452669444798255378947161222339595927236200930917766545777328597394595941235458259228940383798320640402243802344855120518809439369223733151307681989976618647201474125848968485778370353100712837730246441898373766354147295010750177400404341994568964043918963487331057921416630526311223527789237790303495835411909695404690613050044747237947508269731026881530771064991688797211685600310029904275760979142807304881248879763589138407024613667546821535511193790019897133979022871893930325595344289541925158784535524199120445703366542431182764132881528595894227589343741835896532413835888938453902590503941282404846173967751791673765410268639058075667173931760469702701163237444826759916236295029966248254990017257822117789268053583370439083709874034352379207178320959182127025547372556265767134701046573223255672509664956004554350624384712447231863715937647539122501966809395307920031594152181231889228068102519201177728947314100205597183525254077851964432332752376401883525908127180223330423836889766673698281253851202010553877616216265498748681861614782989103682787524503921711118496617769929287300142484248343612649424114281175261481163639334171850165386428248438390968211762558729868107606983211941680727104081190273856422592630294164352328056825040538347621315163885468393830446429378265655984042471856327735256137532435818313316414650098820275164737964007600016810575717329213869780817311573003977040944323610190970747845945273909574045217272304818938297448276283606520719144116469040657185361333549263232089089796715875449561044708568638913744385190202706289835339531912087129807640250052576606413557592588803868460130147053943385567530947248585500582936121941686841801453826832283628026346627911342117320505977888399333981282104573440176187888058297186531083461872937895318641026654825421837057014082177229902949345022432892362110633172637588687300025065141246886552470230665104641527256184349380215595577691318182880737985221238930592424052585700581560887546128098691397430618915954552784676162794282614287130415374033225398303502943306959581324534753909090281171279203964883513696430574087631999880505491354680841092570435250309481500104038430085475569998609672842551111440116012869540734954721999189590786942027547464890857209456161046001927338392828156884894186707344226368495504229282016608584270997289632511144171256229265804702116632232805677299602977295131494907387888387359564222027090186539620107942198346185821027702032745359442496932834121036497901525283580762027462584463653464721813127628920951939462039809260521644725459334819453752798130119367599156450693863334091965935264978504638138619426108863768066294906628988525326367940796524638293334599624947773813277602050383267933416795141102283701516320678962112687029495864470587463585960391237980759249816260348821126036092894494082032043818355959444454801890109523477635959231691387747041238694749499436747829559512450498112671623929935083754885260765580167892439966458766878146128102767931193557068932518183262104840242780817293263737347394297495304800872213893863576824092524051572827680324694621809804138979682681564096059402274851386089469526778227597692505804776394327886936309625151125897683282064055491994823516813335796471170022697418563849272956733755432497387921811157417936896378069239373027916417218937498122207942841716008951751193944062433408505194542212546264468008810423521702616618000846844530442088456602650913796700615326250649570232856575736832517181304295698164661319559202005867228148427140781586343738025092116414403746911474360217750756020042188507255128751026945859772540644461225181993448360815983448202526390739258731160845275084604649475849095061457053093551434096570050983299322451065043806626219485859161115505183514657002282478161621219550380324851199608840003775741336600008903322573466751811460268293305585935517501114381243124241189076152300990795891111119042152682623965859853173603955008454753242970398659796656022208326271282260420243953068325925926026146147237977324517131364667990129190831563115759251771841446432507274928392306690226414022918379804455172703579315935366829812536728119988958676299964026868707140425548809450240069565159658923320696357079163011226019372473619447628857164721612385345966313568534747964302024885195508430763277097460493457126225890209155577943322718116719865656007564474347396073096359531181790693684047476530321453340951431444569490314584351779971018530671058337541987277428122280056505523073714035342341393484999129139458069302668545850267781522297253509252332706231266034304871874279311892325537782703717897847239832700352864999337583959037426504785039077640498259387199829800632809841305530864366852623145688768523502048937110137793108957041440273820258416280010319155807504499565019901038676198876863604294144335645252053104592001862633773612335798062574050961356270147601779477712269174351074501971947947644804031893847989707919837266185466627246070627086280588753091801392017466891032102907622570417284510484396775634895043114954096008824071859098217788131100779046335336968992642193585952373335458775726281839725453575466412183001377867406580317866867819109358900317903032308766332206168547221773269426265151888652887426272859049152131064418825741496076237490857322732431164444613038042646660749243843944819349027140524065097781322270266845558651636806834831636601192250322439121176814305449578155218823624166114700893813044742947887838980725431602523689009551300097527407671425740753465925892130720208182156174038470062913163204167776274377875915149051639548073181619292293702031297021608120730026272040226179418206081695496349449753906263754560842772968713221539660891780279037175431157805357820220924769343066214135138434117497913226209094764240720357182838272213123326751948569580748737962996608962770264042331814355229378982213997181687226516412152340572089510345124536986013692327109137719808675885552795258295890724225812146789008613611146956015980723424687436089524601468982297846927191924645091704432022682633792346695056069090674934518776474975565926403380520582600176189405445088724590022625559227751380976488065066807375180470846870316091080342976730189129811524324500808120705187367177521765772907269962388382378679896625816132668013133387092604645625089989921805387378549549487261207218423120861472777740321104920875754565511541151861758662237169256176496967821156202301427392693654508765372069477183522142192114460331885304069296764669332051191092018141229856271052189748275996628651452203247569930276852032067892294991899463223785973696393258743873654803826326905568000216567913277580343586812349366155693780669987843689141296035624869446770676116183606787775734498440618033828130063887992409388584782921822993791520524436358502199947231515453578155082932100624446213626438075885228282445490862425629328126364638082601203589540162366135962847821991011915660001928200933979159442759907729214861319739462518226368669450102279054657535959506826948801387660166172262866534226374877890009601478156143005036640531074578662223988486950866924013020889911125189149734705902527877567736407734902399254283274885890588141608187423241021796983684930205127621151666888713074059118177183043119742156310243927442462005527798730121227726525347972416922926221247112849702572999195740290770721012075850263693549659569936965201082095429039525510288556548248717874775002858130246221651404925448342938358282908991635758635088054425696981978807491480851644227919038193094474996407819980403939258864071948569006173096803532564101569769641910404276586116481401394697160809630057549022119042270826332338843802251457853755708070681083889212725950243927151815774316963151328029020860012455145144285532508393380536581162249827647068112673038289048497292533194539703582277205507667921221002849757646539592503504093250332249112801844790061021791631542648478011399199042284373434917386765341759195759165747530490014676689739928337699975541013477545105524910316086485133268331135530296376489339288643630296200622989711211011502850446347215446699815574909142019773926789280472304310990900906431217767005021988764313216327294385503341517744299195660452489092737778434558694396697261491615888275897832119939623094221374758711118643391863770280111160078726031239094307620165053820869106091331864462513035921806658692310932236759353246327708853781047379691263962699027288518092298945841150909604852920886890591187167689598699422648429850224397240678071485758345410762377094723005328419547924423981686408376973880833844968883900589789852217971075208099954250278201734692763408470824262355728766424741863031345913658670343504122547452377184699811220732689825045599390041716168157527096962658289741872055917736361169005301261661269046878113057510675087792353016288698772683897233556664788891832635124020839457797147380926771475220632624020184157712509756196216270009306611477081932926288754547494917025018127774243247975769653828097399568313310411357697823868054648203275748290268955847980589528507720341014610081617817720496623967637641780202170776184717319478351633785378391884554983306452252400917778801113176819170521706033875334932470541308173306094567544708985383981073344577054284914655987590008615907377095459270430457674295056733513737100639883782646197250411217470228152352755848709425010387418578664878196815330986184793073145365819730977529671596596690345342643645565079798319222320893718395640850878849663697690184408776353039634445256541961834770319203098719747077636342964716459549482737102827650432909591383874735007166617925112006687564038938015041863746198871907440325630949934470239412598926218239278567896989882540458615148647127574298069311121366291146027737588696168612550274410219762319108578798767029900110715868204358168505544668440225764943307392006118083540350564654885114363686152184494304180044814272138958170879996435022141568236216768309552837187589273401172272315243267705195477324592444967661412382618951751359827699615940921197957763876091652696407205927491053910644960194474660351969491881951999131178248096890652276278254266866670451672747825866526241854495882766573105439177008086132637937934225175008224265458522052230553294514617027604189983737892646897432172827838184011940724889206656843608426559338491284447439309271631413980064953061443461792032453983317056118497214718834438970877644437299900033328442537822648060446653840930941418932776837283772216709128308366951880115405324841469417807006669422615506534545345559295025804035273738431463766951156317672484073602427750147951643939546765783713892027178444035085660713071542231651016013025685117294440795505121428283927091800089445144031378282120924056626397881044221122223019634026819618199904369078667321334606530323890852189315113237886289671223909984764437828282516985017789619767394164230658589215469160163526768617848172348058158143489023921784289685914064590102581297363646011626320860518309009175531898982859935602823253521573760867655722712333496703636423280167929474326977388645524782497530345098998667892601929639966151236983285754349604105512453974252204005783809010255381732057488578371235020437738897108662891811406126550562164411339270591216349595709654631868062032310602399928912137099608656610952518183794825371864610954301916352558738156871768355554184523861584088230327002884016094789661703986467335768344843750180493574313437385507415837601296871310679853385198610217876690520412643479313698989868204257174122484486592228576830022569425152123123308559386814970041995195961629002663688590300367950107014638315257375006746231220328720178524193689235621954068187160726315772374858876763097569461544321917254171818776449495331446454509472778823034626921807775444557657344473883110632112686583603246960292674948740631120702393253824866664382292310069907319203339108180927735168042403979932440986660064316383873159218922606163053500106553692757707480131804906406070932069049305305846282160854692316285517453055212934648923961132955080640554062416515780119465077613657802108628859289315224859887537571948404705436815320756623356574473818511039955170806835296394100293328589680632903187772302821055472067064387662156057371206947414395645267027480734443313862590415177086544098558044462005995126693410510523268004564681108554470188005127460725017388832592219151985834423186568425990739359814404170329537010504516256875375609100466686601635824832112903843107336233206938206116371004807867231279893571681443899646496506226777369967719486692183464809552599138700551865743163340195799210038893899527276116706901168168553496029359187356201172529075282332822065927815038403652766110774951741140057607397486630032706363143496141868307771198986231265993304722427305556314324616898801076245162936526498445742692223606893870862031014397579687957089241575028144817175498344990478599945732358141357483546363825723789203757640751216546547342547286370148232767498940330697938721622239253832645633862514528120242274338945301264887704755933547338594305530749065321696774699147337490793928565304039189917399298064922539096014309324862464598959902654410145523362893153103762395602831895689328963468619641392470837979493602832633779191267167628417289220822785569558496065757737296325384423989157114242099805536758932442864165364731701010908778465322801078894785956447756416447384808423417011003210059615884563686432854809216318641306307442102513195471223903025155668315869535285116005214708332363055331962705475583086651945243374641775513396946884865754066782436678325788729430583171842911891786581763223788759765960303409224750968652869325767222446865376587855718653531914181105472099644199990933478782695505803524016446672405274652277452148969261816708143265734749075427552159463006646712167444835926791708939607059118083891944321169450283424124543325770553798934588572456771709528442960042679455385267211716016552396023717931872752704893147805150283688809056562034037455227867638774479739855293950044362901707708704910280888638383723447927963851676037814199779638474701744607367376123683099951381209693837252735578918237057818667648975678602226416443306745718773167151267923334142803373657979432458003068301396498434104583640649803694520528660161110363063844149447106465758176592794019765929712372107513422879474772009435049217013521595260719480683035247091942163055846490213626309433762755121185474589092279837139758156224527684008906080366286698149128778837246531273233204371328471212219420246072549770416771331120044240317095568361838558075187297373396162207360293007146786803744168219594275179566137455355143701466641755227227424102319616702951938448082227160690929207667143601958771608954009311831675091661322945765436371973803490841005938435998077864270603771583500856935904771906013467500533498731809632532571903854452645564931743356648473034302370679480219742303284943058103936865101206787554428784232643410758630645772837531972597467765068529100744610307228563058061919480625925046903597541864136506817579442550924536749723803407330530437349778412408448755439597167477662280875445411445948985812072533674211619837769251843218544239870164100834282520135066757302611125620119701505638087032692991978374032007550861176874316542675897083719080045049000272190288855378487832383151462837196596484977245930799133477229851478473600021585286627619039180919224324608889344073228591343361878754253975346049499902166109239537082707314904670335330837343769252492664420791911608586845263807346345549395102785188910622020850481211495174625129178927115741187895019550558080137425058698037301024218544182828848283134942312329399179133508170215559353826761922186307752411619742385278517905632671649005568428576384174812108333883303944793069253084204804893903197520723026230836381603885652948341935695882431461818768886568482054256666421266687385888204023047124034544096699042695257339671948834121569586449990971983481016160585878056617460832533330053100396946188001140445028374211216708445040448296111055911777261726691191347377150704691989449078272535203089793033900450494640855316839203605906438746871429955665869783986110449320278212745608243513401154173347787271339881811392621296113036345967616167022488702983025523330824609511412179619604022790352530753378722942373773770405674483811789550428732653486973075055051315161511524411253062018604076037580957047476274297186775835454239709813357566363489111709919982592556438440364283432527830490202499644062182679173159213864529508744577029621982303862229927792865502177722789025992722552965566467370852762173118864943362224532507425524323714279483434029111804503630266913821734699996832187152716322008957609114190239206201106823857913491177009533103334759024795074156432238193979628913517266675062453676035375885408776866512725382142612807481621346880383621014874639442958630007093418358141952526804226657833647901628561476149421741571939729421772850030232278845360269120123351553009373912810520572231369959726669371547263796778257810370771573636021718932454174699174476631207201906961110742764394226110233945316083555112800573767009316608608699810972142911659475223243810169053723332144310290597561319970955860458785320711301699087849357756212058185807880461998912100382223046458326135346993295054909735905106947322848418652781151996665275503546339077008110369325357777369918663557246983497595757337842661811497183617276003072960624068996891505420207491328031127457856407796937278977689002156215977966289350889379147757663106731260009200166532550081673641548717876566244628993941185555337609894237153749969815020940124026692223169571061268134804414071104703533124592951118587524938690271937434756531389547793076466988343156743815675684112963772500740332005150321340894838851092705605475610147209108977694919059757768238760481194930587010572587418673141414887877533100144416554976807323959454383581257430267034876673243601084394021581568147849590205306437503056933341403303845518003068791811082694660239884290152244374900794568665554478588968353811018770096637815220958782103813152162332758525288272132461262282912680060399654592058163107843398428047628798278709084853889230886897944808509688450371918616922691882627351830075647248746538431368810044482868385983606532241078550498442189833517178433551747812253940103524179025015146089685418126323846083370460827657401471966564873881543456949405503439896500577142814825251046379446990565280880058604592854568534263073927280381402796612891943425279694127579065253000169706382582701080302354363346266321775091847735614473638278596488434902699045116642870346452283212655329260562744118867085464176128318541522055929842339705978719746872756392800615982058619828223330217554531399520926496549630091249994740257056411925829187159788341780360427922412277136604209047858238932884051150536309980557574889582366552067857361241715433055992333490484667578952360493371933175686773379626161245789473741225054221479121440791984422796629813105536502429509766021007680940005948093708735478874937153623336550255347568233726472775419237141693080644357804301400389750215556107945683407678528187085272235631545534859628430209294343569342619354853824977299291194999899164803526284828009257749699137802100809652886058299808222766180553630101263151925145491478669799214570115854358015513101187202492425815481285430985440994261971074331859470796482592779912588450891166883975483139320801221670305410767711439121101647447901584729333834085595968778728729175343216126040424773683733913244762769272161905314248955104671806282831926337017738194895607610355060627636781660816986544313941629591055512936038990313061815154162119830472046474072038500210366012263849926435253787303512954928410641542679322369266546744359101122290883788617935192654077093001232877155709487902589634319850483044492337589137835434614451014668195160354679299194138342444593838394072393383422429224179211521062308159338926093872899941014841259595161830265789453033282719403759060583458749464182588340433922530310100559963227806218281009210107473833809109942278359253203570467423344239205061071377642408904144883258720657437582379813101831229833567346288780544146343480663485077306190123416813584102406967205698674666602852783170972440152067055156599782761278717148646189242242854102389286744085185630020192146384739892832719934092850964257553930739126053378463136530147269081569951129599756989332978324979327230127453098237077363447446708476652976217253829660617534190661249178007388646636390050163920265667436374042467788440688682309910986640198277168311917969430741869175151301148037422382370229538490521924408568591777250198016889042580236491752345154313134780804546141339252247501682378870683167289770928587305704116326651247548576828046802565987429578945258945759893590883241508395570426376501237225349612261011189915131331414416256539271591767161867901614559015026383999475670035917019715099266643628257593679363637033320923058505732786299468962922909824211823250156458004037908158254993217016439110365141877900543812692032025364442808167250986290374418587159108482153484386600094840364744753290932519949323745773587850388698428346389441604351702387066990012916326079520607700687175442407772613921872500755070802365529225646412640345371596068014441840628542638659270502090874246378941652905460973645098754873971615308489638108655811819963301707980524113825139248704397732446607212506300847820077636144690402261564332491672928091547383804973492898055380828594578734900338945400996114056009417081580098531001134794600232423852407141158590157820104780882282602706131973481112331751603073611989153585218307211717427336759435251416603571875896679705276470687106871823833845185672839078055817381661786218927351045404767628931016713868097917400933461903138166984759410303426053048412053060153813393861000241799668307657180567415285082851675065498993739167725047852903105836926279358130100271760249169419659447577538450632736445000546999721039824837754496920518319443237052203090437953880692405435940713709364365403879610850414693332414980734904798683159474235245393952477924472367680913044774352627557037976865161207866871296102885811411079788688017730278544317640669583883833012659467097898605780050781015264778433211751127252894462659677349189143688463526800963956796861075209473883779613183721930717115948558396978200681717372345870167248168530154626191138528715448892377843805090074871332860467766881109080074612166551505397561658294144518972738806794313926197255655094594782678435987458394034935738483442473883760096305682626594166777493360320668513157522764140923160157904064561018099861638191334832910251604677497382286794418975013269356057123760699497068331107200856471803095437492050536746433805208645448270666413454333277252619129370031117598502792083632065262253097661095661317190080336525970846878160365063295324259644213401830720217719990589070489460800022578043546720375024471603779500768094562024687581646389587624420519487370355223358593563378692218819829240517710410863019048010469608415624878606957610910256595827147181394030076615228691566874654854054919205181359564582202770006704240047187374212153946760147222275156236736619272669951531606869851535401901564533908597979840026082802311456669495323058662408418806823022428888144868992439857977011566331786756562199108865696327878805693713765287792077023662470054968646923929702171579027538990486767145469017993264449920228244596247275795996072600056074584869128488444532644602915014424272785056965902751803746673124551230273385471450751870492274317038490838581670393124165865405315173418485646827916167414069957394337193420862476003209758956717589004593708245428693188118187101499153910667385509237813175726944790724391166849991550948058635355565488182684884018172837261862843562929042462410611315234981109842680631240469451250119943974006254633385482611765344151872941583476998924458151508163985085955277831259613906372176455520715899607668646946773888580609687284259332123229888094582891893786177917487242879461351378752053463898122405178505721413577654879376667954216623600963497092259635452576746679085358905838678859260092849959756411592340397010818737723356677272550437559598021531918519036259015711653223254326820708610002723178229841009310197896440983321286857289197109466225184170264537282350859983039743059458909397613897124953319714393493359750268812721367152440820643639781444360638490548432673889617225339644275140070967163691323141869965504021331374362993378138500715774049653657382952288825136774348696732294146868646471787407210328293396761143541881912417966375686036523824689215484882729124838261507482580622410024035487599797110096054058092770548512251486240926705832825107567030613246302830383684422568740741630705068596050618338863044879132702457895615589793239016771116761873183050035029249814133227983912845601190019018100735129277047560637143517273270526287667464491999988630849119259398892598679046539585092160039880134602249609231376367370397670110819284577647430349333714258528494358863276074425125087129083476175970824028539949999193818314168871001403117388800993549255723345355375485692634658740392496751730819681018017470771473195491067474756183680664870611179183641689963073468565966050410498755922570360363880514701626431728432992919661077387656385594780765449089000508347242247757149892143226010631942477874934156334168836004926739763981765246772659310702441431334038486962470900401705477333363906096243066134506796131827227236916543407923582091373197375448494778541494965792841567529484361856919294702485299656789037440656982672736429777849894264447395891541227431032195395922135312252803560103292967799398652867806488713378183521052473967145529994638596141787765041224247672375542805431572890750158592563898641520652271341064276849649632164456290883217740295888334916565537893633067188016032551044025700473194112347684593076691624569858128993591047698195087537340185983247171614743088825781418838191953792004023720215916046041887964077941053065503917059503153749078878825508013265034777944625703624222826715066127069037198500838518301632301831332694160467607487979559761996448923337674435410171399161346065184017772536655637734463943618902511279728955146349220195505443110078277375528061905151622868615369640577520513733036676699520158960512696353354026138863948977983911187854095188548398432481413416017960776828519628697555826397025296329880994526704125062995855358487514875853750151167164176637783830391149690283473921933614039647518996836627874611260998250720538427654142932273820647645935094194332233845193889282299202973713713843877608819312513149455572845919200128502497085041412435846459301104172263444948299991099793633321515077527008866158644118106044273029902549246466958221903684055150645810681877205193600733219076106199287315066743244709606316272659262230317339766584877811161069828770337000932360025822659839644748402975169168388898116117702947008546434441378195632993631396403215400612916947893894256986626326237768570484610110145647646550311958961801278187805604206321034976262599398657416506788265712207914084843840051257815778760141115663997043157899592717387957955239971909664572114048202435400843363237116852044363928708019033548079610024741166032488448023926414323088089275113101416113735813129854775638696736346740978788353238370431200910145560144182527877786409982880379156196002828678646658277092367333773450460165840160949417353087243774983134194940228757471791474214972835772345257658095540398872272884156580859747832280044527386675308887094369665722838055217844611862996675439995129362370742176845940775161420082274947897002084748511191366776550939728950591853651685031110398978256370374465030944869652970506344910964018009453940837022217415283064964477571156362544476506847767397982743436381590240332587488296993834069036300289955620411315101929998355618199292315400280147131996926975166806352390049262092010817075465405251898355772755842462116568296507821418707463091840259084505588174452291256348610650388836927499887192047647810761382646962225140587878636621034896055365131222948968540987881194977895604825452168987494937069358842537463720944194915020738667499540096491015909249297573610230312731157001580097455471948637363876009687569120769767836447962632143598357339026919466093272709270452641397449370502681240013445632189266294029319822107558481535754541965317817580958471829507995924265929238746323053996129969194536685415466628182448893409008659111791675621145055034675944339749743544650164472791776340821950079533054484919552827659876678411250501349505083114548828893869310210415538829139213323501697508979292767918720030077025903933854314202091771242130348976262494532366203309966790388383616330424037592293744993683412323725960630162270991222293255439522767319191385105913892973482769124327926413042869208435856888252214165158269565067538139309024081872141981576606433641090458151137756701936257520746116344974649300746906406104674375670518443130716333105641822871997051023294688597632378648962654834700555694507566460206584748652154740477782692946837476654006794572480993437039062960510994842884162403536958920449795197345239645365022427547238184630272014515554523704980238486033519204238291209220869680630672739099783575345931625099790450754652251043147700176308332062835287874726214624593961697933610741606559773999343635591002744356730530016587983107701035976196578788527758731930323243668831747500812797942556458283604981250807227794640049533685546509789703881245811766403070342784379832130074193312638794334641563096907752393012387207163508538045506650605979741834594886391205362910740374183180374258180246897681258415325504029975881993557482145009784793991469037612605727574557326027552637850858959364276987528305869213213594873971014283637102289900830662476969703341526550868159323252389865722493870364744615013760091436855087519272614931573727211208722823245945046639747718589514358764841508379613453866350712046846209535808176879239617499717242817517528895110050904109506894393522209038298998681732302346291958031287672696943725265961418140657804494560754931477661003647266039589669439104683337219214811695276754164425902301995060538430024252454681052203156341466941715560452823597117080729667587731056575444059734078793551550165173117766152812059214868363040669988294065822041794709473325941063839494257821883245246302179570006613047616521578900491989020692702674568023408745599771772425331990733862673999511231437778139305713584561647378062314916526461783779589683972985044947277431999811827918465530968794529222149804266850409435540432714762044631907399487898895060695605709506806368800216896685986458934263808656228663350398920571952107469578371682173043727396984407759939930788769752755435179624645218134403030067131465760678569758102041104283065310401749386632081604309102547158046292415293036431012969783600718127897303072038225765060122349306439291533017902526719911540940808366403298917638815600245534850146505243019062099429088398199429488905442845523006598365891046537308590170055186286470958064309697093201729560624090170556795000722103631446892645725511104000097023509817094047609555508651526545524383729047518858127551792381795352400248853396762818889504244316918182030976984089601039139812560663183907068935081267001936614514434589406306979585087213793596850282552780999424199675780974669603229128967351631334679982855436295181423891886304874678232270766033222514549906138732218125763560096128083674687442602993738226794299527439794037448141880785963039034292921197241365312444913683285065409709742291594175455486234491072276642141643620140918676292990362885755355379769010074662784024160004627833868682579434753080930908096064212340565665442603767741793170219934847751402753570977556917816508334432494064687868625395498137795545537897605118787524859125705075470822381703716351811968561731983221113597302822620847345699737007516979179362605855083139002444020926215308535723285750209839213843379904666299943685172616228298558314249999704914958027294705442896681322668130541542491432157462243435229179366272083245975053302100526593337738663492590545879173148556074438142124549039515291256923063074324284715939778191533792910754108027473828417715285514398492246172287253688970418385980608599247225004356085298485585797660405346952642507117004660294642809910344807372336424575267957119790233640846419206779411249013131487045736341543102918905672191543276888981029507456590179145020158482710592253590312345967572144548647440209435987264381615966792952098524135164713405582650580427033398617682441412428190008867693355396325742767732638295403059835385864968731670066298367892121936562206428732272216048290489059541025500789004642512892695166027950564091532847217395292673177277251055334507054909263887376692283615034978722840151737939081376946792728004201050762976918861058584733823256246778444360757394229961257699113097944786722333427043022198653338964424983867588407090673726928209727789321731951278012646532275432214338437686911686771685098765401098714838886956957892566862236566753353379484722743313987555097798166169915751850243479607954424468700425899067298740055628241369354426543762637921833046201436979814137302810132162924493761540406130432399529126859569075168693638711428339800723228985430235939507321169932499374038309478408155501638067836676676301984722085844546000911849375700911523274723031070199246866380996759391086811072016831788289314791615862785830198086370994432515960641843154441012408924723113871236038521876634752036670402848353883650976349937690376478493314027886961195850503000155987990557030308229304690089591835886033154135233062915997641569743551033733899562668654289478672482911270206793083023614579939252127447564835319437907921927935764515119685175944536928665508178501386149363101761062920698976005236060153991540301008172012128527227128904891275314848775268732361736678249664359072549675742267126684802032098263361692956236552505633052564285958335724216472172609645978308357821411822542407702273081826611032096386659644117592958961055614884464376088736018964240777024584113916503404342617544258736203360511289761298472078932153699653869586050819362258217613554316995482821196568409360237363017347900731680135849290147677176516846788674034501584834906196130417423232939645524209171682615075586341660777307128010638318640673345639065247318858652870483485227773667983071505916503870016069825048835293326664640585558198683953165447226305028220243415425456947801465612614497626136018670387074776209163025211788432551800180744665039457006304819675328633281714213294184726728367037503239381975154595622115673751249853067594835948308200979641076152947671539897008388218897527276203144056186396229723548110624721313167658096564974367907411175597420876987464141955826621588003646476824710131299361838392976346905635942208636556989671067834818737515282513093602227490096707907620772694521737667795108552033856768646295269072451544159378021264377405195511250079026946478961500974189939281382047689463158143885621279234905083951400398523013678763540050296795617218736362747830989521697036717902331154740425072333038024331560528260298850438424553168531839663378067863150874690415987111525943389831283020200744120428509620157605465932622882785214625515150004761217826398633103672703877608745497239216145831341672691659039801014521949517141825021932453616251908115179845998418347678504548436084845773241610936652339378216452778353639979142902393250985709354401076131774040598683034526980308319830559693935675989279126887444265073818239957161775368775226007880200227579637834461502780367179047316395101299109036171566398911792983262100412141349844590410594533884184214256817707514034429935265109011368310957939723089068117803672822060000225875513816733027560702576718576026891811287292870862076829781956367057981633933772985214751498299419827142067064924230728984707165986396627671665683443680679863529492710692552557440053335354831295167671633564793716906213031118131321438959369981326955164138990785331931614976917190955869877688733614855808289705288073924399399849527468357170481710334066609956760919940229362860852321728225935520776313854088412358859739881881200481924950433359853291456737789385612251676657827177508645688599233935274808964405211949536084711134332014123346864191670045807016041153512647691673787916119330389402183141944433853992253199463787870818569254438058493373666680808978427553229988414361255318159132006277865450994526612460451659690044195769159662718899329538609067545867526784830506339849312551779176884232673710461434728919781765359813075508110457623941428312886283089231462305450154900221773270197014634888743357672302341044606455974606800136822818449058574605551827671880167798729529777820202917035162877343033376625149677413671478063894307955652596928423979765073318333076138260788054132794014462041181420920881742914997068067283147961571254612158205592759346221346048053416221352354680033083569481997885564001264106889728878935059471533537773086011266223484856840086652086169159701989658046788439951001073101991396988277593062537067453777119111119675577565266767501332237962172456909533567502895417707486634534589071348944243387975142863629053866973362202296129291963853851159579210037657703408347263618213301490115615396025464310736479859412259571172470981551323585251743202842552408750830131868855688225177800830420904864614748764820393818589344771022869648758827790738231169889261429978899782481123178773913789446994220198633046105278835461789419581478628339633455149404723197432520549834145706415719669057089083743365889259870717129443728706417558791707221322615194815270729641998934888931574075273472427489877996891789292806429062001631867881656474254912040826528233149780637612954333861128223253690042850093584152336536601410052828367906513270953890857536165726008228615850302825002835490552421449091588500955040264357370203142264954498918102958728386919486627827243769340239413961247773230313227262116314256358711057433284193303046870378785238661658116275554383623476350156489983358235554102120384528810739402358722259925491194488972724200614399199026463978780728269806781582848203885403581112566157555504516937766732234101844398843834565728549795804628352837702930121524102434764369377318029991090750055369364972737378048539044117362641507678649583867727275809757749124217926073319640001258015840560489281910714322782063129710687321281834166279626397748895958680155018175225778450249139494151946426324199242920282432204697273721880967903299523022993908615934976694069418405828875680131440207251609368519147073629693605340849200868211294792683766743255323956441199885793731425527470792987849409185133085245104315466511925797407243939350246386602569350202749884775567351818794833479827089815307003325809496409690645066563181443316122497538247336235241005168748817083699059357055612654624949403756246946444158004275191086384740701162694662111074444429151409866942456968545302905090839501763078494418302970193886761681209238482642137837246255073880206813539701189955385387679201450203061138260620244432435803293282131057136605714202040844771262332322746247265160334925580207537323489241372686426876605586045953542264410823293300559763840562627294899134170950128187765924771860569065743581853211320969085271182471487351921371576463269896001719492717608094541679701131178800498299381132815523129977170124459158450019244741989886307554216695419097359820680197895219306300999377910387714640030191056345246465917263035730316058123971779754410943557396099168707881454955996206154731716033397370571260479093312150442934859132644834972556077075278128452359745125341370620086935959826190270543203165422546523820846898212685725767393638369450579135733200727196182911119889271594061656327424898198771641093753508190978386701552795775217180625823163735771451763422373122506093870533692307689248357046313723562772572973061354496429460303324020041161325050381989271175156000128588899690891826731038950613849140621262994117420086903302673836980082527747761985824008234520628786854300182490287213067779530708208887464249156949142833263863473379744889185531523915717208907434454119211915365705588412950618722640389666822868018619258925426676020609997198621099938234923345736154480534595286352349964237523013609734234349896857296032711887873296960646981625337257868879989095048009214529568335232764574955706407525124999817466388725222634152602617882295313317069181964828904943114316163827383517412861883007563459077795907965801247101467923636603778652007868266528075980202293009306074667577781493639843407277916265117499505053210003714338120506560331044462257530256481133583336719495095568900773724608238116900167676769023471786231638659021997690907625092300699842990270154144840045130443582413067144056715514976623188332639982140653777755036077914642817941605378014906559119188797591331928380243757343181431160302738241659979417073136687167717026324690947481483734056111022311441764567628921677286573856545418819357512490571171165766749991341374273247020821991879516616220123490023221974681671754612037590846920692995494427435640196042167175698761797823597758193145483545966994642477066146295139040072204204244989370644340971302809665140439497970403400884002878450946952214702268568610684405017263893018823592298673733777507237199760226031264785196683098675909890529082291802978063537172451917672815033727270162488377447030025495889851781787181662701758145448983700855596377185321286643883406533762650855802081950583153697580630219415536356746855823982339292822631386567022065695925786958529622388615940135341516787388282971787648962507307398491156114004653147015174579998676371968638588478103430277861501148438011994615159094665984412603102471953039384516617379071005364081407493185170729473649424195913934151740532977893995953790210883447058510620695506077786681613443789281161124117300688668865825391431105660176409163694980822498932716365307279609391941491945170645091203550055932982511219804044323734554349624815567369771113115881627629753853576658461775469089362765235581037678014079967736370085904041472465737848603059029255884746339563232109153150458320579113131967037546780410816313441710969582281688350504771960124031665072256528464561683435721739292086096994366149024892937243452729144081312565528339361203809279169391481405347306488146133833463183739937303132648588941949038181843046813294287364507690239577571460501234026661533357108577971170700745928050690611589588481314705846314044944619779889960411184075468976529635081595957500759384424754862205701125628532980503973052157289738875116767778462238565771970795554297305732656994772573143224971225802463606809316113536484267649831860043298024200102063626650554010180142824729294781124866849227968422837876307556720622874729050075858934051188668002722756639520211458006833501706909980038635506510780979531499852664959279619508341737244840696640820526621420617019575483563494854603106038670870529873538461628370451200328322480021021607109467934100644744096676700902551771939848266786696989352455187113917156692264050197299967286316208454824708647920345204969029067232655484750303332319419344284931307669436252075797883808940872801455531294271388588326637128647341374052725436253581338529565985721680029261060632342049762247801696114843209961364798063841075317694373115305252090144555074015588162602864392380444517084035378753820587370829456521018454775975591698353715041195821838573453867621783916395221531398900558388619299525118676078197338111921726919408843409660994677711901287345621026351246239748130351663848224045630945623438535590549732254752196604486186927882375091331812837513642787161422491661741753216740712781415656880476774121757751873957725277822525282071864508717393129019501897762278288836126707651359200572273427162383929101972367400883459108541777121617920247828427130629823735486564869485853997682605883120333338796365851534060894270911091774968857969203878535958462424898227413917613282827169182632498672250694920802573753668416366934647927187261125801335131949851731620699990271036312415509273918218713449741464873586039046924496065049412048546670606064405379723541737647872814974376977197049247287694066485623878760781743381325267516829854470133966242836572159961337082282766806382270497566196664066608225371959062964084141136685450955861275019017490226136135243510929948192928632246687842586619082651321111112374603469459891119704579729876135984748033260726127340461367670961962563746590991804847682326332319057615874200284237639879422006983007304575506680867683150933499103997542253803767579110737942476571785804846934861764960516091075304566784464755234615389429784756274461921498775423644083875064973271669276266618465695071530017601698939441764896653852288300014925131516027522158875676901375057898533503000179914834585825890225371560739341815913324571380381180843262511069114288262357402792149036356019126915200083912480065678025086300884105982801498252592447379014556746474862922872528081098928975214748653977847914134072857717947652980771653302436497267249125195741956674816693526805545694250407317325386756286848640493982754917116443206829923068316121397165793881463378295588209074560212086098414915315870028298150350986191234835384102585884198030240232927920842065663339152772550497146502339819909775515315075113258915990359036229472925074863618980455059570562550087033922952981371563896794242136815988044816734463026374254333407175316335030169607152164999534096955097660629753162616497284187739201382138907760874819748524893871028994026224119464164039523749559503664499201637954096569825355970949183238410193945906694621665854005539104674975360518616436177029538989777863082589859791504793903687492168697379762465226544742145187049158469115089252226933746603505690954160104853939524913758163413200924149420163783142678730737765549117603169502246204190679258905511444222495841250016195672372367922939638536373189431992159603515139579100981807663692677815224082669625266971811419028567379935937824115081902117128913282271752244337470023806787288849759629005990641841027023761854592389864934730178485052855654089802099010764542428210929661566369153178023524342985829242619898084960211387841237212199285803705126776744052779749664555718131649443475361821713696323086960857670710083470702435628772364200958410895407080363377343036951563593471599942787685788968863451287378625618876343589359469662406939240519299809506288847448478749328510769123863792649856445214614474378514043423097420731301959129446558290610234718074130840857583470034039091724056322944886772710005073422400903884909576801569930720347069387338143391736450995421741742542086692508192821682516488492822156659530095672359828603348390346858554467087379839460324334229118812276378515718084599370312149835972562045926415624176882152893522590911510737750347472787396763452342175313089578459041576246953854896877925999882855072960914157398317012106789811172176054627203078624225945382896948612261888505257413980490733712252130949813013121099871304668000729577931393071677848187712956057477818292041848586472859912980375734145528557536791888222688704805949393650186187451436399943978829157112199379744259530315974710463009435599479192257997152342722802036391502216142210929840069835080347325862386216155553236158292404773767020056596775016666570426663610290223254921368986745028896397157162526584673797302580392606476565134721062107896705283597581433979823539610120804610120706289391977948891812576449120022008919033937896360970829879158669030882643646967974558776832786899303279105220705771298870916440954527649553508941167429320992940596174702475997581445031095043319002633236907763100228120291911985388572028780363749670614241446880198120869129034003496068985727816148471414027767670486521709341489479544215775134010904616633006263015532738009713216676915078187890926735806782511450934745646185447926349005958552316646374938628045186520117591981705783495008883639532872804690085733275632027406755726466394912592025960540767418905320492013596858322970461351577867807878403286934258119078852999034932816316727156594995173377971636251525992998046330429616388912655009112352581575952016916525654868480411079992015218932189743268955215216300960067555617955752790357299517052012370736641639690808231936516831959693030930789068215758037811648391830283252735032039889103352633311301686929358631246861622802827239946050204645642832588000139462825365218243044058863109568773114849461794219568278354467298753617447121163382670373941535835626684154912963448639224996483410157657288380107743331024652708924076101311869585396611420885468471525491456619602495121370691005214326115697611559399403821216321005212127685426417973177407753158974344061081957868850598324179449047951271370809945088110353978758216708187476289664675071693357127391912473203005602500072404519101035635501022199796974317717960355832448986356105399453128552234886122196481197823892587373775113333968140530323186356810075999578008745758580642827139105603929832660204115681598714648313876772993254905603219353890127412541310110188867299279424033919136800003876151798645972470851770231100725342551950513794300837340890997547902061423115140633739973288187604482922814107509820037399432964270226369533152911581720469995324657660703524210678436694071176459163105817999506555127597500870371906319397819535036645362016425842589182874932409361138285765256183584968874618429123503260007104876907962411938326924340187665922863291618035631451676123959062261359946411242831623292683375566150695899823276121168778902618411331558029183837854371923550538287354035743518624080422381873649324895783610925129575642817773521437932498015102661170728274250366772161431327004120334523882537683793226044314518321033124785664478238110201830906877978824650827607143068054143123014916990382389602585890686530352854165254504219632739007322633122096981720335466063631604694099673601223657628585668491570630359481141256962649935768001252271747779560595344428840520949868784337626588934371035452622890366147938038155183450697350882190137212217988974988810657171752022873863869772177257577426224000172567077880859077739065698938539590751557389815883940495441778999896359858003375326900388254941199558067880196223715877597719244964338512319448203024530099680812606366470378579085633003766439219732217380224007400474328578147154008292376588252053043802743705412782004682631912749037357897886349450276182746579948985780657814357613041650844889375370578224478857654950389852894355033384562562768707843785264491668370768112893441604799481339409909481052862397231098253799129273624892610448128196702600070163135256421067780751368520732509027138887278420699229597540591715365689112164289866106655552109935066679994729983145074030417836958044608519589699424343119379547075110008825172345872216646156326149421035955293297130541248716687468838522146589437382336116360572073915099945735647851719034720394848576284226351827596581538939485888133922230573380170070584145990156130557733283199357168998045177477430216413840369675469912591989055337478434694688242418009027273239406882593279237287039616069610267112144638015597923469958633222404143299951476118800561829545793688666997497163061627838244393794877825831136592854718759018862436485316232401899212014745239651408046416336093652100799556806226246048259795603150902159025836820479436631292892496189231237752928816736298565903112050741626445784703944316108838665933071818069134140045450442552464421072847786592620923522033365389436653241798709226013175643351782049363927085016495495876478891634599139852292425197468374943245641474568474904597384417419526513488770982303802130447285102161284794390667279134876086334976660506167131843416433200979343028020845027841059713512578585639943567884139318691503179537527801923611207224449164638966188865995764628463254006623917653941343753164111462701311699966916822760952413007553929877638940368472171772189236912508992676745987555232073908769012096970811460883340829619747238768223883131861734359997164953017600583368767351515743099627342058869926040078997100974833727453096572369669557208180494776905790088195636973313409123680359686166351583297628016298382530643046965601961037936277523287351573761866119110084683379630203321130993766552029290546015418921937436358330860192968002898919030764847030492525857178448098232038756531769185457820577693239436525123303408517594002581178866029114410774347279717872620153314390067852011967653415518829346756463312841579047434720515381854339254708810214858713228887484724532706198320026706698156770334158422533306621056984391537688582840927194833645419252511494867539652577978008003401538260311326791815818649915154628165667332074892893085506713382900808203013012937060279228007731359080387274013102590212081556433862578055352555642104659466834875283393527830683006995269568726888781538761586278491026448680507531987857134688979026783016911104420500854689747219823358443472000038633219986931364521585251752212084240669500003096911986754937945322337310656989299553333507637782268012238845449145357910360272709855472727095150838283962883014197199188450456534153174399535942539364413752344500855620808512250550548433991696279251271850891339486034766110592300626423381135115016118742040070609506846658858672027894272569339911366582558264659283089418476107046101388760527611693150597102534073942023287312497008349789660849618576941817198268566053708956491692456069356049863633734360253950786758277765210534590365152339701111194355041066977747347668362491891499943966729852265081864313299565058701211706425932548542630638016879756532174028064987771479666224657348471880304441595948736075068713319047308148821302467331189944359725889927901964348256784456389637087955820740772917277747083370750909518228099214304163441164894546092650745952796504506000758615648249130531539585577896639425954403333031339804229016903894575787810208753755339085955589287135893029176159335229801483706052593269890303159417136184962252460594906858295106421531501907477859715406545071796009700783358132818705210649520443905323211288299775889640851253417518444591667874818617328462985688934688727008932773341445239501444926835071893146993055671679571737496308340829593414581057221120934999852260354178990356573793773361059608958081459847218924657913338128845561759163945652736772142036172250037897556116416662700466109695268752914955086109227218575601504747839043009368231364322240049522951310836324208371993283067736268628792199027000695257890878817380085892434252441726397438067327143739608499674252242128697351464703581150685295828034035708397584444894253428520972992081224571638174593895164746105545869449633646855099594345181590772923761032779653271687309152153663765920933887251809923547187888894745248712398471263452751183999333366560408979117459203210541827833722319686248203883507659609148716657203855027581781647180610104812502378195559344754853031415671751984558006974926453391190828985497729636564091829071848761594544190917380120040846861354798298081357055846549091623415559552490093795425286933540220056850309425579046557447257539591832988752026249074205537024110458592650330832119635441821709255555077450161829428821794224904529458755651896408435686780473845302110695204351695328734765881549969001553933573494565032111265031885768907060739870499476539057293596008608764956021634569832994643828882499525744816936779251367105185464562961790108877475038685631007263976381135144233467380159675547841249497215595634030271041348397941104151855015605792259998198203972626765730026829132926617905379148326317905975665023023832199287821799201835902285964327466349619929491341952041375651636222421365456836458704358794718444353722676541260970523417482635331737558268545787105733379717522160995549027154893730110822248204881825797287045845602251236128308668277013133128206737213590563448320849481376808437917962258809275382811686317468662697286232678250326709056106386855065725229876089495994419066906079309575781404232504817187060689157864396739283329439683276380277917094188050132321506210255956364535554434564023434033334882103905345581313692352912766597024910422494427539242905866120078861849495831862229684688272308202961284696223882912098692130404836419091682435650878818516003796348938972645630489642298983702268701698525067615046406057861546102398848406376850624954854318188795804450957553744391619102526058822568700590119495184880204277153525514866330071324789294574995769299845549896533978121943665952418872174955614281953152996092965234089694415411781454639189052883462353072484314491345896994599795159288526211813276665998749013411318577768753978054762317893771978194084077270110947922467874029220399219423436732383967949837287635599830446600725161910560725149332793300839287384656399952971473057003605335423047953509560713046893817121180297839842340225111057771521187420969094005710151991866285256251883544165849783419727916937670004212775095994093106734079620461768265037841239593421614515364419916934893615770790277660075749073701794649534460237704500165927402372686245420065703127089797416577836865143323137832378256648357466752424349834237618220729651743277485327895991991942328374215772508747866055895884914159880191402309986524521805998443016181203712766200776938368257850348129894268569764893852529873019620505813156158331926414704802835610596181754431389096790288000056831935054023883162799924444753981915820194368860534711169658956047892164380270208066025988250391653120461404430039071019491918433786481318350463623266391954471529879775547765860968030009770370571678319129786653475246628194209771261574983708695168846970508926152495053383373563227163045838390913344989250408290725765135021512276542678283223945611104281757526242125643064600154758235959930161161560547006766663693398380413876602742166005293015051616456229533781209756612038263443276017081936541621615229307296664047258809986144865340880804966916508822062015764344556891087730050342569053869485910428375889718559113175851348551717526088754800970237097049329922162670224003256499959017785229921937407871109550586475582971355425083678854963481619627820502225821090539899049980617416925590732057639161065757365135261824894732569975904811918279403971330332684309703065921613681658101595366367380702960194183547524883402787020190156261833269877209761881120122834100283372979604750131509747888304481196503485489055165737980516674811008720208578076539448702926495683801690305013834924056009078919939794165938626591004207519483325765119528641096977708104242854852850376995902452732154608759359734212595980538312080970615864125326644953467110517002605584061925141087912711280347561153009013426535064716734443403314208052744972440466779314184404503200563486706195972718095814889368312249029897006149635687987208709001950997247813179160903651672879795028406945721716484827828037479333366520279084732407245283608982924917631558192838090018485016097662060014739458636000462317418005140178533468452073468375117785714711996511018251655522487604338145855984308759473099272373480730191151147881586816863706249732735344212716258886893982504783768170326385941986788042954482804077684674174905647422452810000837409748319514969727915036624202953830438159359105831172114506719894690635320570769561990084991201193194721560102070697722159179821379968504054280234464383918903558446041010813998496049825400569453565878192686152244170372874088520337445297107366935566948798228231749836602815187289721071954392803222423008279345144267515400480657078092080808911833972063511054240341397483617656017606617946156881883060466722748351965014989314185405365533762456810210255343451521327711179976910774000493411784932269848450310377307381468321641483194964209017323414218122213894977814107245703267324576677314115525089059092112853934794224514656983664009706148958529045287829197832807517629606977945468976418218703917169793888343696433073601859626391749173217955447068882482951843318169374123045993822954254660060265135924519945637658037646006584016572434251241109329282138259122297156451039171024704713747418373270194025312539749317327945484391703460981658665230241379809608941042838014891384114770160568120507361392987860261717125163367323996581169638127885217515297855020666418995980926577587385751759187479372988835155080924666683270108354956308298104779968345249910568711021443772596915747262854914957452134375737625847574666121099721938446712779048128092651240889141274533301702606149089372087836762491797067447474928520741384726032863446310112309394821417852800202886949269471876081841317475406938904032194639758150294215933413282348011857678081982987086724011929208064013581527208417703267113786288178022445239635058201895774443504612874543156199405809175638898165413933260323092691558614674136803723549878000201800694477366211281142650375607920997890797786289043505512263742065376859138397871517862268291692864428359539619690667055387523738702801047257893172192728479458519629619985240574974912936187108033097358070668961212922881471733337328793609423454876184289299383054375907566330267256499359756218583898533959161214948570694070399481649696524292903376712015160632624200936760111521708395977032345792453170794792684350205517347724758874392467774118690181776864364179785345522696619049026833014332832122173008057832711991030667962774393616219712069998955725342282771092355057655435633745328809469085003604916329509748000291133001928198910852271307629408496393332287129998520445601935433577431778470314013069172503044353972542982168233639936786511903521854423420875538837751231156444762093823894179314857743221527759107349751620768447833319247287092331076925731299282430444352805843210586372681718461504587800033353973635910602005112400027437836296565937168392001873280771735267296013936976991670554847706379480528694186683150714433234894138748802321901933832894324310518729784663662844824890401971032609540966469101386007157545006454877922137665739721467414720388407933476265601283990244010967699002356128002869633093536740105840452803175082387930483162661654209476061659897025043455495940263595502801616413384550263488842336864930686824814001733039746034030657243261172556569214404360819193481754977195228728465831364628019010436306895488699851755701145370848351584063911188530352480386393435987207512148398619375135272933360642181623112073146565335188834723269786851543881679427511641845875937107445731791990871360596336608529586184987292053132413529887667638604969795462538027512506599460848271212269987738437047763580960651404914087565482473677984640922383214028434409480030962906815611300722757053746545777384876278871176598875292983553557242107731364540407475512084017846665080370088690640134856559813453667823235188632541664247381915500157214118841184809714843411501033373416786103555283466537473230991415831947293150720277641135400719376747140751784308138759308330510584796123062021358108933013145712511565378352230952876654859291770998193458684109732969383189126545334250246000620840720711577253840994471259851585059432842158083805067096686423935773535128415700046174404677220884242156165213480618854595222865137992620354671248647543147640008981771140555920444260031998152550270969689613881781294858809699487886244323656478591584607121314799742266835615263554733347643846340384596261534440063319827445001068855565935810786028165250591036557787478133552837860189160372204896221062487296587087325253572908485981804748559973361327873995148922626083469717257843947117094557425472723997146544166842737198409649914533726887817335783611548821260727655602433838697220592957046589872340059917668799475312542583398361803755782293327446708964843159956332926210660456435535669772292160705612415111400491264205208561721398556403894681463985530043552067166703985290802690770512543002372106547053151948110816007777570559110567167126307282856726813698524058999731871182175194123534548402434355648296129491877750836654837517977085266845344241001326792062692205060266639353366661824400042786196465195171556338111887869505601176596108711236800075386448238569609295378588653786052493920237687293728026148224677998708542244032518896194864343762040486587548698998091721628312846255712053731948386243488337401380940866092846596007402804492263332749385118611016118048460594089727693908724610523993797224674011201324815074754672462991005077659943156322324851735362325874792307323771643414777018353198236715406620588616101129824847572842579404079465360519926457489161675070644317171634745156036745225721361855398088656220987795921966255680344351066446362163156950864556093701930242451762792197716796043927601337812437555832169458768876748325822024648243871783520764608956922737452744129597303257580254263648600152456887058874935853504561521066588424012996540886984597945759345815659537099885255548082433064973042278975007857339330535185371065280291833738327717783118888976390248352232894959507229334127077997560580234678575024685003103370386918066194024472385319165779355282568815797129867032126891846617147325699580210019212168398935900722449441037598660677231282740394022295232565866415875745367236115546841168267098016415534597645587836082386195528350153289464828123021874586491217574103019925549768419326430182750162738782700989539645868045934778077624309407859580032035428175541806025753929065167692352305382353538022263597735849297874501185246200176412649280711111774731857334359306349302708311516525810117207394996722204982513283461194438564918178868127626193191801541765483615745722798196222746941912455604929644508874688428596756326107064002834542892886878152770208581578099407224502500161250133044104027734584885664644299536881150763000899669613514319137657181754122665505123943347268928293712948761297660972590219495715561797224228118280144365831250627938048694283268747158376383385224755938571018597346394700140206090797145133520876588445881063076713965175974072737291736374403121461444770024642799203339805544185840858824515479508346041077666229179874991562904906563897489106324538366878499730594539062572486364631049672910993433071378723669065470183414141300838801115719676076980119945897881534575335477684836324727752652244332824066210934984918319593388701384875360799544583173773153634929675782838509501236081129024062619348165780902693320826139217052488187159993520522745810220723091189371517405220051887275259079245823245827124039094986210743356450268347228980656782319726495342782448440377963493971198361009599063547729495722280274017593768635356001827691504925966383204994608751460217881114464734764086034549720228327587912940423339298794698176283585508876487403225299894820490797628830781073983370201688792452998850560807907050574810784935812461103712352814523412760967218224857085030124410216201152918426743006089351220930801675007296884828883893968486015528630216995608618858528448726796233334172364973122907333055672665572014931212390655978056687316409123275569417551023806347346692289700237297889780602519118644061255741144467890447665834059742497094279060999102659986763168283111138828458120176236565902731967435205387444927590883104738504168997041657317764198777781587765898070623569817057051795238179495640378606073720988032909192692953978333064992110310217331317470251658062686998248700732849642420768853778173378567234119482375627826307042338624979573663322843537323326243328796550496967211378499612210504678815672151210285266630888903009549557244248627423738772626945994187975045564572564215219677679088400794196989736628793699017479767290445993127971881864275188169273881005253203795088137867353228714374607058067298917613893773934846027152162023954980776994616046711773665678243547812078744045384730724368622514660259666663203764979123203349111650681829153054289070970770650656584704652416416099514398519765360608125829145724934793436119356978867958599093614856862366720434640803803741781824048271044975925216009800033530728181514632991660854037804081933667421994394089203528755772213245110726702393686520528318541123022759036296631358389824403270612845268017129363110609308136117001145907973296474890020088425701095988373160568099317697787578767755886035800846757745442829106714186582074820461698042658207306545056211386946519079729469052999854585571006460759966318625279742498756822926329013194833173034547133420649670531032465783191069132061263089648959059448837540400764581133087455753137089907758371605844214094548795704047197928578536950104767885125938638934576919549888666738810040035185669662972493672007227841859793840266283337664355875772063272429072978690448478307162303813445380595171922792316118276988441847163537412793867454341250088004756438066758569980114666635754763585435049549129362825598093702925543523934152544397966525468243547827922761123596409321384137763164653224369665532203783558825479710077270926221080299260494992385971252325175620407773219301624559055181252284613508583658088619992187782786884281877156682990457639257524503067079921111218226098884037096418727841742661962496556000123363988209074543069317642704241989346459390117477840130607573443238931496954531174478810084082918741481318934186688680135368743028409343300147880890163477177450884748768225535684718635542691548376805988644904394292160543832100895787284651218306145476054591882601211090787638846155349140259439314040020586984168711693331676223741378378967224420280135687729642142348009605335843058039028005284133438817222542767399992572906839342452008736519385116743154955443375781137101209647932325947511608652445393713349691405577089474505794876093515988931170451549496213766962865181719386049487638248386769434558627084702861082982012366186768920369972927069226825602619436556390161579725352372455618809138081290124433795084273269125810579794883322881921337703324211115860092898339571107608575965214397350523996835761163216139275669619467009798932281000197738856437187229484335998986056790213403768345938695613921311158711065355157875198012819590117714561484532279783771067251901664552690105664373057039897275952102904288626091732770349037223796443521415567448856878982681398143289225229727151273207443881011480957226383394438503765611874492085137274299908548169411529465209623974969453488182050829187538635800063882083646058465795883562321928236457718187427841297658149740591384106076471175021795508530586853974575061386998446274620919225851997892971751681296583166164887688509323527170507194526575138810978387701627581471052148799909545376879096593327475403219894856419328359609410723974177323430900438607447353544501275286716902379442472534173887955821707025587181812091997397390725114559497482085387012028747152168304483222974328725374981766026870360274484274053012181186131423667476526200553503338715716747642306532269122923795121040557653887153405767927516982154152063007708891523515258267807167915552457709409433284194415610043944779192469006826917796877147805549668462605606504061995760607675696105263841166458714323378957963129486925852785450129342892287104882529990051092302894770203607261109486164822594136356563370550754067043400376559409537833144156284277516959433084899555940530489737482053956242595407349493355061608950059122589275689777869691766014140033141328616773480936229597868885087823320149673564374592384396139596781792033008421807051983576568438985569517778794529214553419279451005530330366697764189346986813623806214140067880900004862850252803304282142682641285583326898498600795484017921427080598110751582907267010125688312220470803688851590931446654532333562092890719390305544641979853820665672080540763589550434367624903716154682122757740355936575358061875082328628780324242381409814725705908243791415689444033160660228604765746380586121595547244852773590179875902805457193294421540274833892035016801037044078791193824890908964846498067306106011941841446954474855801517109864937100084595476716929875079189203237325724449479677681680926259173660397457760298834446585001134526002658240588782297143732160138036928265304347218048632588596108549975580857230429446868440744562064021909375341935383492156891592556026204810392495501225799786644676141188171973812202589065463623798281624527649973240937582981407299768124230708658668584954576295571022551907448521451042177777512692915463284603376856002220036630321590241269139352345769160786134260722202344650583317795960186157192639596004851205830687803468031297358003142191382623281750928451182566442411600976472927591687575860438783963535916246138321001088068862511960434077541186440920255828655725170705031095405160174275437271218140529041692625276262892646443940810526730290866193664022568653333360322300243566525718372124985224591497282733183121937140042393192800945795182658960791911312511064488291128939919836148537452995801750248162557730315610159387832525489069755215838653466346643774715619728076861603158490398583642902741045155463881716001435041322144409390539291892414360392871324820078730186654547574436083381886175052011916397644200352738523503726743441277683240567270110257436651017977213880472153829146333170479824777250759676265762389988764136293480845755551051336655001221551641000359766017880407110570977166011605021526778371599274358828467293295608618449927744108962489614940572039947258001762453063668034514420727249675732071777102959144882653533714808676345595909900779814198507852966929964624233061855429757473742352512231792771266788588222487259667297456713920570023694421373929603231579900276084695172486704998108179447941783837797942949000384196306276706641539803976705964233284308892122188134913950975193537110387552251556367651652248325918281494984912401219430670641732310198088992704710812155249724690460896137832668970233889713332628630853544400820507020045309537981306242831027565409563921697921893064408218916270079169477346461157711761587870407579920698618272921895582727217656978095166043632144853271404755052526234488724657057221457020300460568165060670202113730083260526476432221423583301857114015549443603018728982999603634758409290849238519469795527744261910610384218034589451890723073674832012072182177212459527311585489412236942855378086564217874241853482364886991613763562066846240936844562273837736234692201130452761810038976636529551308876771857148808726571019842165497474552262020471040959662878730142884840685689847599959751225267030605812952520980834711614010424114036647695977427922879466153153838453183983800776800961754480559468395680900418395372537573077530871739704050751648770072804132353619410669808425127639680422838811607758373961116499076307894524556172163763188694394019038922350607658492511722155402898895198250190469007922583377488302786287397864753622434239336194476009336941335436470038441838511594925215969387365074209398176627830496430709217300350413255025200673829843771316012549682935766010862286080765359555186332399664885797073463473153876731344201328558273482085726394596699759170780847729818436666968277289055859325607186220364352199112855356401194798401715803218416302790862078281608192797591819857425571199640089009862405132399339022295537238904564512590366764354309033086955662587239284791836713419070316747649761012146400225446507987991920459103762841928842793274396846858240700785065917549172075621534284056875343022046503919615168667428670496438290052407751411138276328198133717951300267330295025161617056490505558876566279322147904470855865078178406798137565837587304130854889727195268086155848924284367094908354625084443928981093995179767243474034772373709403735137388974478857885604932877728851221634383225682928288329963421643716534885793884728511988438252268964810147255829549892244487323138694268540837231261238237432717480718162616478451792684780384578861634191027751837089099935956563139843333726452594642029220179072218892059629606191807160841854363327904090706708105597223745636170373945916145989565088489183210783662573510954169242648170069230000256155542003342832299815236674017452885233703823181802275693917397741082965197504094200641028820509059167697473966440196231117658935023582714918612650479236663883020136577872244864770788896836523888907360961959508327036854576608392401871281787664497239566778198895524134910295962223906894255398495609441516491425298166413491037961225843951312692549791871971174865899692430095910684736382211773438343413364867299486471242069266479376000700134145506675711512613400478778416027571680821390201321471339501709416408900844335554556341653069006566023517325339072133423934546666023226535242603428000796443277843963990284805319261758246910479270079918375971412530898128099516860252455349383155395826505082842541817847838697941977947183140042565437684984686172907117740663572549950979647315846741819342074581647555470909561236940214161872897344025373037007298213380250860159863038199482143984067039065197745948115018634494354582955316147767062724458259639416822490401705171330641581877293330305149867605734384750278119054155308182015597389030200030045922500774563981707589909339263278192751377442834427044024732884574223315500495665139055403420481620733572033196982689710266030116327746532267313170731871211402041401664499958579812429208615138032124992822335009351422741448055353582868913747636817463775660131392336305662008782910984731001441490208199506561000619060389040125472248346612755718591775552576555441804861802536630224850542249164158701440277514725166548821114078669795288109122578407585797039108022726359711545326364159753631001326199394961799512253480250487544428714063644729722263844750348070048815511448824952668361358771198996604329376256393243612624080447634433967353352670910123219132288994526013521675832707514508631528013562477664943130343742090150850211003555634681648432187676599542482219646650065185121147600991743372706612393311004363393209672583424858399441552594739548337718593421721298572607129839429105290161276089529035431647793812395384897953898645257488469810430137182862066361810018232982430530440113783614241419594497188497691367776719675765812319177363380082352009399377240856066127621782965165054836598784946881286126277031389656287491753258094925436898648050043903430985269616585756450516288920356408239416609796213307666980359196734969653462607416507693162347769306777688673533994980076932137368224166651445936233580530305282030336067911399269827239968941770554282944599596321303927002383631377792749378194504109172867699935385792988459371304922883715517170963021637934337817755121044416383829515216072896384645883164151634664185213660538012042285688543567390472293584495952846546212643673744178085921675281651425684601744536209836715289829890673823443788556665743396010149117522657480331573089814037893253506676376916003043251941965845024084794773912934793785249544859342895845669793371889436742908825748620191256840635700099804998559101214591328779445321446463181175971329801873598697999629356951184480356166090054277635293184440607425354112166145331744209398752465144348428255671583110143489964650711592258026460029723376369889364937573477464660921990078668787545602841181436369671877905170329004347373110681546581186968450646167134427232146654833305711581470551769910268800875922335091883925025503095158556771121319953919234374097893878411887102682583115802916658489275669079758171816231423083867678070581422695776201615023287783000775287332127551767778013860985350546388202429522185124796258722473645884018813784664194964932739184000023357276038528699252758756239971756550560552010481045745870575828435609032270320772941755961346302434892686798282914444596107248425735763300082106327511629557083870863944678052291301288651973746386173116836941341674567025437931820232250541833474965621219261419852072735233723016595150873799489125665901108960614988855283904935166022336183060930730615364793784149875510575320057405733357908900486175442619595973760720225547438177109824711114143893725824154363451690464221963403920043397953170224628554462291126820675572031074219534444556616532212872674023446818254178496641876942327097024343561111188068924343577120164998771457045944035039762892126856286805869965967721609010885145668896832632268250023336538565559285216158902674926452141924094390667374663279872904087729399643293181908469752863676248469906861278948798874384272613779597516540194798609647900110688204430832692401291147841950514421434476801475775968034364472834867506886371536754095282814118078540387674390249850368236589526647063450074619198702885079721997376819568607108437507581633612533126261384995867144313216069362785531134826192136597258519709535244659852228556718726834057337008255044750147808334135769578554847338099923867051014350391652137472771493372480188623838491547000303889326377677849191219048066417062192021522320752882329770528072815080229217608203057705341009691021128256456951554889557822433144982801825205662255020044195438688415540062127774683157306487972464343439462982710828342589614078587456190965644248846418133619098987196097656353452690027621387913507627528078752790574961980485608943852351564972506968767466692754870982492295665896340828434912631472603719268123938506385746393357053591460223915091080744145478776640430095697766958239843277391262983267125757083233523771956831134445321592288571960436671521800757929618908879376225663931744904579478710762645218186036673050714689362334943536239177998786382877864499618992153866111213924468171011730101650481308873200743786293426130152566292199651415012218764035066837647109078318725372390294735707014393215653300841076889310129116134175061232528660834618089993136115519798362781519894668366063170121295345419719671695059755145353775687049182355518559166489855796370394748057747905751345212711042026526392662127073472266029971750014793837958961280637399486139378170311063078885558459509394075763128904826667474799342713312163079946769141393564666274754561736268620043503849476269493692698047528773866535320156989479124259083755560072242875141455168609504126969429921542355039979504993301318685242783513263182226266192871118633859414567428489363350672054337325682314209314292290211904848933993720948015091479498745124746914265884503440371960468646886395434509877192133928893623305994038623588685154229871729800322712261214764145536339423182593225063233857664622476983470276867689557567529878689492859416750347296032554659304825463660084343504365869750816346967491660235725410514081716630292502584961733307046473161868914262592090010942655711152028530933310974807801023661338214097043968690368600864636500385817285061277037684268947603939336631913868758961535989969194094462196499724090267974091393649872174956462620750129535704224662529007989049297743799285336610153024975662952443664898761618862204938587960930973433107764440867749438441384473963181163610356344590692329849775340057521974588227248570773509103220462973499925733485297190979231828111498092060804833012477425823391267696575014156256299185129478799812080434565835936998430921409897619124608554482859523727433122575331696336222406442906588300489623478056377346821965880171673264092434343701732841883589062134870871585487249540757403796628716736465949284582096262163826803373702429273843641793531178219489882118194571391199434464195562806457775717736877062048026471255738861594251050867144638449838022368662798838379773430053849686694939019780018816991032804141939300312940837594840958861912237110498281325535180754801332533028567155690793656730684423336365289939554661428132572722648382675020910700617582389527573674439478421363615853953211053489235163774604359718250492024898405815505599967956892114544069542336496543440593741510039269740071022160492706732753054681314374717798010643172849033048830664621315098319419589644377674957451592537414844329904312879098150344226480216993248950025579450427572371861372353783621029866270346472627127039653925001234878332545717475903103244119767987451701833154725040477642878138962021574136586123431628642777782525268843318650818101829816658384604376709587989371219829022150186093699068812217421541912520904060620809763811273438374004483664010814133982125552277385844700062067779493178055771878294888215657198975741129675604969107400100035972350485811358585164907578894393853373139812414954257397953768332559048197422074972179423939426386267076133092903926824515056854120368600469088454124790448666458051052670271624737776286858829034864702192494466958427706842565498832298545584614997148009014747131565198804974542113583265496050339365106343121495484113194918776260143457589095111738540754420090216944390773640675558984607092326059782702205430814792484170989346077187492895448318612776453694776809337357394650803973239920778425241689685634391285590982754942247232115805682563967070144009993308515323086364941011804393352034477408094006772038386404650370254067011331014694033468503509539347448574431943036664235865049711998347834423169385272821291379309919046690798355945235990117968710494459341070999465955484477510339522727455886156558529463404637798975332930953440132095063854861242504999615005701996102292504372776113921992310687242454773160541957202481852672720331802314375257799946400714042494759489666626446631049970085739766101919705320689838344359115588984774992984792126042322991519411485613135246837891722324675135377685532119631728390945140680673005230708384611157655324165756066419706955784142951650981993509450965688501106883681291599597424653207029259009391076819334209881744218980212074885486682439888239547496926205978420929518721757127370723115836714607917449593268672103725924789486394091819989430192686725540662465828698995184663955329987463691057786707153120649154713353284120466778568877689131698902474049384748903513415097056146773938765258368703038705257802594538997024281741097389533609139168471116930149181069990823075176198581246864363449870808948432899657452615940302461873176043311262184466919068337844033169183241455093414293180154581937517174606805881253394149684036090869919647664217934399548775834595613508993017934256409940524345073472479757323882113224635200511453138874224799128245569339957822519604364623703623469897270992043591931626367408092470054704518883272693878744686165141978145123198083228974577802664388922679703950051931275980737354044749923871166255722440082629822463630793665111997680129016900767702639999902398528959917058357100733469745613298863735681870263284542940016127246511844343863398119959735953521766127358398216428193184293127543668664723200110981443218811112290660911496859371799612905312854446967552870406679212602407537406075546260530827221879979490530440438378632439937205451581583452241401565372373536949590312805254787657313122083218269049494717941111245902361933901175317632255587644933656253646392280387089654257243031975871888541581232729340113071314749033620244659758928091304710866812375980656089551570207975319347233270900389756664898303718000924516976599623923961021983158066023016840189699436660480039777935893322284017943095041689796645691628946122135304573951399911535117605718237648429612910359047814395791170097723857637098982266685314601037640597731845454192013894005016412937649296674940584178937744815803180073124720427637150249577751258851824456073552181894545020914742050497218952553677657425360999143364993492941162684197516324120964170188651988903593372317753428620768477290381948587887615686740835164432945994860479692251146193269870584858615379381411976039085948727749358850406422193878533358643797463745501687822599220513073405631037983044247196910316693511680992839034544286216279348641295059273713281400347265778954058641739314132132771024879790570438869753669556936485175169450256775970091369689099753664608258660367077923779121685890373522428223484345645122968252815520281906314660968558991067898831017700770670106744508818187899817593037241849753926959604046406822952158164240049703608824526461767855601397803179176705801459596079610649869068635778956375644814684373572450287246255148254182053186999554042931397831775641836959767122490856951300143870752786887463896250183512237118826933826068954821746210779469116474560716060420395210738632585073810429050362538846411776944263320974655912081281671562692485500103663657119649892757371004415319497096717521776576397295953893438772881444185235555231169866445208567368038654635617760021821266150309295902966140968516750813315054304335450615899363033498423328267117605398343968724770714728485568824408274141612183251154303093633251722254822945840721350996044329124262810475999468462082677416331327320226529821867581988606459110189850937407358575546155194871984015059730949092378415539301701588853421280662392506708107633835364010821523234757435847599980350245222877270569262402544133007968769989192592869574447313512787458320364545816750591415188973964432890747149967394790214802549654126165155387053110201218809807772118640688419543896205756274986114499219121529109343487644924602993857548555491582212980575678070126336239417901909497759562238950950700392765759097202747407084984396121492993317126059940188390862988701894059965039771403640007718454116847363767482701760219788292113692741341878133527371364921519588105145092547284849644728256952507722984264085991541747974437008256943463795667597699071641044029207519975174152702869015428213093752304281505750063222045919143690430291779225930254738490577866045090976362030069553532966828623311917049162114252811381393914926597185558205633332999834773458769007162284107579233476577530975698848104937508889662260505144121581011925907977382911999729289630254404975502228755767415693709133467703417393418827996538568253991710731191571714556768927711461527937155987670609189906046510321359766555641125235407588269537127820761424664452177645998522338613594750978082951763112059495626985913711538562563799147023846607676001330909883531524656457028101151263624723651257518351556911714653011407808329775772586657881683768016924529016369602372243955987858755704108173631175868669057826487035935004722778720039738180799642773335891999635466049014617717572880924457621901710150971335014598992628621949742446820068936446985260519032795922933984079286095434615383851967088437148335643473821274837181407678964759270523702796772084534411588340945521220137025841238143872017629975478412276387055318717629638777623467599613967021471275401492539406576880865125013108973823038548631646552547245265147420201453927318685424849795610042790046795478289765352065669779237699153410610196199041946748478323369387832205331409692352441338870920971540359248435021625245533150446431509750011227819874368134096066348914944254958372237779888142213978907309899972602249062039074788575404062410996578952474086751566133267698434348494432199169010121766932017681050106102611829884255553996414180176491887793217674400133208317436265743559086641289301588693786624132215784001728291414085626302096670577211824012782079214386588664255235075445368297600338109931225683837861719812954197990225675190331201972287170997498074599450827231924792735621575724211928547258614083878134676046754202888245676084069653505869826611816870655308213812408863472338848658700829464527485777394526027223755351131957266071196160364719700880004313177145324075911763660573117149224952513627013779782697138193805410007821726379520613157616756327655508600442117795349148623499428260455869875232078903763123510288811778983612337777739842609597484783695080680671844723855747813921161611314500730871709989718539926051558645513540241510948554686952205255018052203848088076141186256523847318167306260886160209169828491116186184002016773443434308104057231552932259818864591616599560855928301906111631052288745328565911853267860881201137901829444195518160288241203300993600408014242233702878729932014804482248675800145471186710989043971531959593751433195135286907331564137633089022352310919692489211453659924464969005996433737733051146413086178987346395184098123345993018417952003716719544615987086628724770158996092726535088995947032795439882858275714003364092065318371717259567014725167050534417073588448777556342713772770872849162569822305116641306965936646096087469357819736460296148895853568791112576060574164322850473442319119834919591173039569826866896676079420878262136291366891135372993273153425599673408540179811077195444734382140424229820915381492204786477907089745525101952368949188640594931446577248688213833241194723622463263059670167562786727710831528651378993081461461284576504350790479088479139554522177684282757314335336367173368141475465480111692727745794628306307754882626015166410985189180020080889860792288188622918610291495008575785589081609981430894521829500489108569501097439503958834770406889356871506452708679218161466890371738434418376823602430503650061870871111594730913098462622597375186537688925275696740979307006968286899094493638992558059733132604598428461160990375154140856484057406985453623524532976631402613271103621772437515763030257058692045639414048183043188759485898270137049647670631068504905754399435281495159262660237809781844531716492178821608294338492784947195693195916838346704810317158327148327736243999416997292402477195976378757779875769733196965598944228401251205331274659885637959780226050223619181557555356452223802085745170059137130782179952555873798219404798197192018992664887561099496017157228948476561478522979075415226906188709644670224172105615763072228308139363641999606836885753247306118723718134068014099475475729244308208079642630912565524980871986830365789899909068831584661549078822339372191709881157547016262146290336755666061505489735548479426083431359317758476159993395559408400683679530822426285367570328414475965787478049931337174126043654809094361577209179341824629940581695650050288605341767556827061782992243427398174427873062091029480777791241633137717103312739722099130234865888605361369739081401169456345507836075143933634387743849900139534427786662459813808365374133477478807001501999739535677486741624551476427251319278969401387277821131132934787461380450111282004716646291654693797968483431887651452177671944563965469171528886566316174704196368385927671412888974607919250430423441628511363851434248555940335759805403700306775368275980680232809562054582159410947304663108882371439067118110947597000573505175460398649278993541592056594204228643343306308732909792743715638492099318445001591389027602585212615664957368572849268988244824767478072628596353794529232681505637055221380246578056187419802186198846349808385974213151037323849415169881067941293167094784650187072218134753902040831446798034199206188716793747393007160083605940824138355470679869677653709100817502806565792711009109079826989006094924808097312871727527776570862444534848122444905435647296909896169319685518218852726530814869312949000020874504934191627240668332306442890537213395417540476661614257448073502603132639150174111688347173335322249647000418775727974871367383477718221316641943446176709495075640232830351482697262760551875012139142029649300712599696653244419892008713425044591084352833114955244080467768384591459609899701554594339775376631936841832438795469534909875687258269668021390017906949919211494696534423110988343266530931092384979936241816061576521170199477354441247857456899546552555725303324180044514110197212018830452054897055907604299548539293622955070041267495035013676392526280990162733507421091472604295766190311040077447386010776918379979494104441243210127554537836904252182441562614554214758122592680974375055754500900795534937625971777473893685220971705138288455652545638465432437850191829227616990124145964699619765256205309949025311807673202308213367952043846298501328428813819998992161150965261453451910349084651348107908982667303697312121592778077759443346575734995223056467818032903565719244322292172339473306288573348609410293007368971870693637375292393093371933451898088319588105039890144314043850724563115724106453146667380155027967127700325871277900300258279907744483519147200137424907769982778320269609838891654265232955131768372041775528929780150227037599095100502579058576682936294903899329438650456525358381939293082799088270820367723962323520162884518162073310726578523306058715989740100102005194776736257673207742290168469500627146048523481121261434784237781644208009732963437657971444605186677819110413904641314168361235153197674620864620288783928771331355921013065661142338519927071647355819041971254027162086466385369525379767792560831794725756373070213368375453152228245893178485900159035862020641251207554271360410260121953673619078765857302197267636369001821335795911343220428961687988998202545972700568095812975055424105806182985319251712936334817437021311588113430526017205061696983509287457482563471842144860971791283302441482850737563338531103239631515525169018182372824423610652290039526421274771625715622299732379643545809501613747969870864156884255373128600853686274333261237340644033171419494757590907913528612946005767327519929562862672659296681717022633891394376414992418328788657985390618011698441548338983725213846844477273742521411774988078378902915672829326797465055432032049202785209565897349924045690002827233693872193826127295813666902397002517298109111072261168643194958918320581424413892750359243242807681183789799289860953302380292305243638940696166881391968414472128044285898483440894454970044331596854633503124356295642421252622293987707833032784450394479515974756408505535724120817650596707345379045012256035708959840085478206718779114818995560635180937047985244507860575634424230013153394804435879416167013315914312713649968639227841366876457473084072927048735874314171266824592198030041294743164388216105660118229121156109620400776912176572277305181526623338833410856869350950241414997679512715834203836847900695464649241650754834799025096754262362318418500164013489766710457426284473276715572272961141983424913213175440654126735392044603116882425809307046777128202409075421999186952083658734507070053533735849101604188524306303027149583028226235660022534680442994187627024180067406821299729669708575629610999149430436342912232002875906968065403487878093638419391492905784851899686604355632175253591395048440033937507342037032922749859265483792232969196622128687326584471804653278150605302695505681591923164851127595165063835480096714130936188428443171156001271641402097793875422834497673000619497252477441422705629288932663300776033674335925729876982953818578771749240200923659902579799420471660557824689469416535909261665030046901633088296278034582396725803294768493053286913920228646364929739466195069544571396575737710533986291756293850555800598619997611168545535224972113190656239560736792457157337138631609924068711166184994803604158621809360530660744216392610601457448199438620561610871443067808110474125548354738506963468036959612576482582777250438456672219131384331530570326230602369181740374442723635233464708838458218035635529963143791104287611651625800802556696471077604806102886258606035014470080871673216088303066337059076207228027409015200103808216898431103429914951805778468070949845615488028574534636815644554403447416636196047760720865034226563862145769508898040937482701197531788049068376256807485899289147346981113643057040739682576833903792465422354780253598639734224750869706444366122675456109118685203357632539641399461802511286414428135876293322329607802067943245441372535930675699634961617332383660227827129726269977499768832394011346606532726477517793719569883927951071528950263273939715683763514462153990162491799141327589063923977005519870535991168651184461202630891098524737486288201144985343000775855577103828586514574846863304027540914005101654954685903726954391481034127425690438690017865709205511487211236184530305698791537100124666705158133568486918432930776167667240482626371639077797896792714612731540446898561757538299224965659727521538833137167767837296230736860454486215282318418599052865720855243815712083873698166873882203898163142194583369100100200616009005791444404282747118115670808702777497484256204065830232385166070767029633601709452110861274716483924111170120833109220937514637814379649726460823107102092021317235130067051717522893487556073065771720521170906893580597777821287561662777813260783334085472843314357138481977642075199238694126245816438511092540934297459691953017426318399925153217257945051784710507500248200374399569255360828534785873064874159874008288913733788454993658459532487736564494899891759751398080458062810678706413182942576870725305350733363913503048827576520499731234163058971231144619600540142956939788138014172155164570666988696224722159602084563135126051248378916633139479087536410015717849927855432285025806280467950604926411335387716351089871837389030149304985850030140346828785740806945149712044445995091820562039301616525049882328747149162824545813124720725509706124217656054677346988823048988573136325841113527785099357881935551528312063094497162923091467350183558637124695526936123813405284492023873084328923265529741810873454495285555108009688474935825493917812801089978860615645740576878079244140639930209461138173724536811415845289261387395248136226149529846952670286461813040410959231450864490907783327484586685639644825103451904890666964631442421811370469444787963190176668822302572029515262459545527186292521104481834904354447967098214793291817195999708893115414196623669226976981697435386943514348393200004954429647219162996846112560399350310294202217042255186555341208906029108328562068765108001595508944554263286020560337543573930114541848296225698244066317814187927428213494226807664691416328736128916587213416628348383495645210405869099575741191925573379074816818003861726439584526206543263163978752076635653695200183401562701103990403516692575185356962748982191095299059678788094775098965031286820856899540739477994346601407764839956709678981105812763212441924825395609279562710401886338824267968233826004102010727271611396343297251483698320478373808842912049447160485310076313164949068016911415936239674174380320290502740587265889631180992352143130582311149759015766353995136981130163032473580783697336440569025401426037663676009710710410086815576537091247289348820482822895922087993571976897017648287533579205074775800388266723530239546278804284463290679554531542095500182400473582920495374754820776121623105979654821978414249791052582876135977269258617111399623847143733872633296449294134160744715673097711421253012577020834842827161929547732284431129824069716767764932259962853265914771005085118719672582654094141688834271091547815145945127911702988923552387000991274689352478683042277854968915796462329291797013616501408035410976376241089344039387845683148942380791203394176846221160165470990967976623913400312962305962855273895195265926739627522016935218409560447558727984765996739124724409980386750023093186830096724255698624424951798802221981024815074904889908416112357129422240351499291859419184500514582500324313643368794028846672676448141814936239301816460732058156027306716046797851055770501795475432944542790670617155874092576464674804300289265729914783339399012003314631999528329080064384043455002921309676131832355989848347591767412091617948946053288008271365215807836613575539883735232782219625343702977317024610114775957235727386567965867544622899956745953908337427606308266139102878965112905359558286974242391997328148977869796617937333152135093665424320011888370077707613085366662773059366453305167227354147986842925209059648756814046791546685928181870144503596878900109711793322998646599964179250189029434928938441022666951931677843530598816618552294249036745164228646103994009746014072887379751669690514559420738126574946072406371651252272609792230890219270557507325558585981579509753733981233169484519679240333001052275441487330307413126043730081121039190233974213783793839537454232008031014155190647856559927090030260287244095329749571220118275078730131600933776085137543024176140776160964338058315663532476511034298347992929785237731322939775843197941425372093774989512925569136291417852239199566537952397101682798370038377581913469443749090044986761958439889764554478468479468369925030178223412417802249750113979328704666443789941006230014172569461904407318386277954409506177780376514749211349530296530369766039805658650309806905273815984195213327121947609938784468404402260151973088463172374709292640410681775875198082801479324401528933183958173439822671969512029688062684227687459352968528826171035732934296559842011680952087758833339942432694191190852626017476551239900782040703629309680428089232351990597678680116569841587195129076909165907453398628834592338350866933306168080909801520315712936010724134677467598646734109984822682089819253179348439339949648229591667161409381808307036316416555103138753270391081601026803088916675849660803908550265425472129311490548102334851800891597350028143804975865391457441645491278804106207780315796979122987755104093829257950602209990224968959272976669237683677190657317478603248949897856332073440916147970352733427814282327075784458475590494928524428451729923985289818184813667432146622778056838482453575644455712889570756671019237700893886546889559188637377377411664806512712151406560325167073051527258094976176755533854161907552380741556872972899910857170608914322904840747849833189886037694369731584336217470435971714223270287012858062312976790257807367361538875158604138632959996238209857693922957883726273881165062667957148183004452169062431997512554838299168061754271191740410077187004102402503070858820165276113008933904281353871607135450484522291608620874026374583731761217506573670954429021319590900911932525856059044035767685538270451809364707232657108086589583833938295813922667046222729822742612349779163329820192317037895678985200326470141981741391808653842793549624622207466635316185302508643858697952678599004114967328135617915815555364656741375808081662858078453894708676797316134809072536608702220309273242131344641911549209176757656158374283908039258677959407914670633019582759001480428163344136665350017324042997876657789079193544579016377495016751364050751345464499389533630289335424954355080757472625657891370931254104877409079544822771866442105585382697646649002000679212029617915639202293044909453242080650200141718445061653694693495979465105463908817682393843679788338765047410860999673921017227333382347121483309728475130427928526061904571380362990388447028417881735185043621221942772124292052321507958788846629606581988252066839428458275316836598207542664055884300558870057493469793038684623447572332656266703985605206461248989009813938310818497308008890580931855824219332827606651331214566244696658450288048948398988547011772653337765305931289933622684244592224275375904684039448254698653942123000141261398132738103152573459242005445995094636899569319051246204641596782149501853478519500942731364019543440812773201826883447235713643929499695816339902382263455685452734805040516204401738367231740306532066181063028930859600718686698190226285005925715719879238051791298080227127762504118586633047847247466670140752009503416786682061697307577090362420548193304199135610715095475853092544162864249740095824345001997752226139822054027760460394635755241021881549259897566753054186822832491566877732946682879171514844410614023699014908411435111026746141953913325595926654367172464047127208226847595719023427281454914901953353408940597240648486447024022380412492184484120894336279537042519907365666481447070591804410437794546396516931870058231996831268906805208288490635271463603889904460981472404238636446386933417349582748320152942991885168490404759260556374989050201891493167175213875463208738050513647625664757630261031699591526787091394230047824418078322153577944295150242040097981569120676774329809651599947446754277765185370883436155483155974969020212316203501489527903963578976752686678420156110868788196731531808388305272672768086811968681351308457337510941606425162640976157624856513164065094962803459869969547945772437799448351484281184129995053497673475898540645462928609891490494141705798378203712195990951219234381808561325938011239306800695851021027440604970386326439432172617127136332354000824528123609774848080364463136740402435093730394700235247429574601867341743550155505578704916166096254605994855965380593091162959144058917466922871595193326467926219975674250313022952662183716264540554733400839952338817846926651370435265638783309924805728963102799067590445633284608668868066400584115901237710671922048590797820536355554769314138849049298750140304946717583035661609121745309208778523707880029620406409642866712216453211274010608999375683428852105164141983485126399173651509631374984325752550353151300864563873906585933152928656824886195618813744224181670983729084877781271743803933611998388166923778525322041279567409978825230621350890435863840671361855930226065868404777054360873502923556083913576813302772236843959170748514302467928137748550405013299021547974946798334053846749342218726109127442885535196835534420334223081462339014408227522577940802460287716065749764997809550455586351367434351895324752394567407008596528748451531301600260852117429577321848998641225969609065756072402875153408159804751847511904159250019926812811608667979836989448665699653462571151564679577056665422692790109456482413704263552476365665042378416989653417710252379086301182358457844329973837964656412873917912504617632165304845547352511363158601705665756343238860143501977595418959548953716431254474430492110446537420152496627379587071735800675504824976825134064500531141970200131562399991621846584923036763959313222651153664615503882209347111880336642663242401868910763638668153836697958766537350707917427984710952451194088003758017320854776783793805226281139049346349818658614370401685702111149558484625276219270234360724034158834209686813393047515301876130883729041215179053613589886253333944728893146749378126599552703418457747025115959632458481441634363825502891031948340350470016980069868049739527814556789588014325944785059845256674230275275627394682116871073027271002471246393898742814298631216657904535001189272975763690009714971469458528328707243836810151894320467905504495308563470033385580225123208193274166789209650571641999745269579773942405962476481273986337949761064828444279245463841062496536853013133606872095924312858820824199225461696566121571147122023515554441496671582768599674863545665721026946368205478385870846224674058143732024998370839337175196311201987500038257119367638548156541693130988176461526621210391789343078046680497505484735975851477683507114506971575000875432148585298713111084022938686021987390598189270093922323172278872456524188558368659717828549848143136467771565960464814221573267251123380161213583990308258115532274041014565435089719132528294957758948289848280277952075360455064022059226885952539059234613251757176532913785518299815822852161132636433199204288886795010774289519564379732266148412280194984834693277978578676941589378000155376176427611264679179411926915270384582269681796397890651751680499193994898585429353425978123817146621477986903498889864501469130477384399448968028431687946547204187356330025107284366169954791363600931973964812260346292479665132949772784546807168404926767916170782491866696566180431245848567045762654572660013835256185274543374576288349460657498122927888273377622990505858779733562391497923065661790643527154383919276736799671309654332183273726907309665158579434752550258431456564755129784870163416818737008100070327095359901291470089445674463314957449045076589751138214070931243313788922110131971033693147827540178194999960636886398472302514503296010537210783858971352094747566527884526763142355901006803848042973937403452549496425393027447915229553516350168996437462264420853069816068253989621183633719355692340193059922480667043890915464527634308840617819733845387976590191290977240673672513290829211628673978760666800396844266923162811185956250804335840643878485754939483833153206140119931086419408576393205980087351613255114745424309970444599783153874824754616092036738497242088093545717788846619792820704400850491659784804569284637552178140640698957438398808863322719881349561386751460817580236112812673850550397088230860482332776018328483856497049911090345382188802089206031041420201730182850052618032191285235212470557661041382845103817853241605209694701811502934082076380584070198186958469076862529346194196080632584280368237480431020147608207209087517892391829232126455571936803878933723172064787714557403064084885800575929020558813298706219244214209971141674373892241510602790882590020199902893746733772364708827392184844079463061679535679393884347102258069792544747750796342974929570481620327828054021585124885406398672339264608613202570678970820884205112071317952713653004301493685246047661772859667572493448886299702859221027140457225065295219051343836965650858106039948414452896175332208277680640725787024248058901532959447866888908626307092685329307651875357331325556928322532747496412240847526190939822092143579457877762359375090198361387097717673999236183580068532956834497923468692782330966462638673264870144973699063031269568012249509353338613089142338213349265090854605495771447157380458457527558921097104073203954906141149853230810853968084575572754941851160221436392914770723578516228402378313750192966439729916614208765401546355470127090335795039172388508283604478193943118151328305247117248459097745358894359460792084216550363646095776601340284378855472352851213853045049402407433897309341378264589695372291880644834189879198319384813634057539420068183327905494405859787088767712929870325277069796420876688086752884459015253170190323769270279335118823382422486279819044543279178639783330125572702313395968952234829798488903826772671509316550433738288280675153903176548513248693889225315754656862374550770243623250008077996386344241799680697082706762030123229393617834932145224501608996509923844877536684894612282515102746063165667012020166300629805129905877518630759299428985105570881632071570849937449085620731749093892236020334913042435983941602502227582397676343295619282223076297812850124369505279724086932320337329611477413823183015783821250439563848503922519360553953890576470294956858723746010843804317709001479627384470507827181711225651802323939449194083499383738646852306093465792553182745356658972335334125502207004772467639002669776557247954114909501199236909940440738083768606575979618686957093904755138816154161460119441732339100005803158140949946530261412354239033701832118719519220159991384937349799507589047108428114852307401762367919519398215696688481205505386118063479281972865267583773833786875055067130880095664767725369633308930110736406808402852719378411099481575656953773968648422777974912591316905950833709192032633659575236238351168794602752928695845252959243409932145166985632527096370603127400391290268874635285741172486197283092662118562978359951890488499314687914269591336102990364288425779922337247303909548177038589769254828885497106509096170192210833277521209935350654169438938001527609772600462073770365372810074741044552445957918698336914408699741445579463587403151840341510785784207786702417514856405616811953455224276866748428946719899488050532764803545767396955533419996778138740951196815084805007374837392935008488327034105682137411407561096010172246404404418082939044674644113474136815744111306319690655939571297035283788675146582910465673444096102477707074402370176087695860077124663864516038750968376428430549068172787271178025985724651076308171402917749853826004222207108295026472889316922176127399956795723116553747029332497753186021972030527219283487465167837113879446047823937919982235693925876067808116238430301645647844235458629089106419876207258341880741790950681638652997778805064922987177627644660172094399132316468001508206305515781889785659715427088233289574381813371638471421683140467561526620162145645194551972206034313020326956042001373257556889580289077395424531988517852358031037973201747594097847812342321387986619048929633544723705190898960635379521521545438322131748774231606061413420366350871429855950393530612010874246315078066083174905056768832881788833957793830113567752561153413921979507288313940073900098370118293303230396018683555217043491765161982724023242491943160346431381482135929236187540265295256067043662191962185856223308237843827872175033143040172642713073345916947617727085796557226827547423398285800231933860661126265763725908345407220218780349640360612430103520483738050065868369087901493756445446956985599389558797655620432668631467363162522636137526278794811066086896712995356210048306808657386811517850497019456106407449204585403675228610351227380951019790651163407296744122899379737102776683621273316645488113599825605258281889032418579499915207301343518866786420549483858503046730726110144593838730045483618152376288346968061090954118652815088387118597966147650127109927832021598537116304911985808258485960239921252023133270368803855349052209177390840115808501292142409467495891662271760493648467305378719084277030388118671607956664277104537545973363708496159037713544133379873104578013967266156362793769680720208862567660754144885027725945190513718811380756039925401884781059015939138362744198622563303780767343020931124231419171375333156203058923778856372918131768169426497541616545171264683083549863090438990472358990559675036355528154560986992535732530119241321140207781433449160551654881977677017397712851991290337103606605272007804297350865500050542954184014401503733828107461897837590194245345659664168101008523157483759566226343467995008839438630478257881930968422855156743225259917982198828533844275915304941246596609419169892375750569343741789518895754887703720202061282334541601692185136541586748621788224904952244947858642049434155735713711070944255002008539040982949999292213732840882930437667685231247056880521115745126496080535835983388694083177671660450666197819307190030071291025318020650283289099844952893429916661960852387185580288044673538507163929042231043425056968513014928200115113961755905321591133336870075708810528258677041660895351079788352316745281267994380369224675121104446389764779175087208104579841940966101190381327106667984339186031176198538327589894462384309647025641488430053396390446111270429169286611254159125258733757172592177265496480745318640769941593025779051705964498285512042730396454750887203700020271509302751963957760053145061617294299326218871712984952499942501055489743419319894787007180664314618697355525314398548711512103192795281776729351536218796394026923281815534380027032753108752837428107660910113362584582609423874161726507112365970251770507547477281330030928968597151328151348767879242430472107748882270621207721163434301150781804622110663634157356091989181319872664474439468144317187406594765335457736177982615857240212575447970349295247563972553761138662016131873220973682067349024140261931783891128461063956025109062247148267088338370004759204929957246107425010312573111809868913196572632811937969932125004613246559705284409861635510159062069647871437978757828046888292211508684320591011885221045247320149561800619494071287792537529692149200568370368176656011150506555033696544392077434023683912726815183966932651207668427776577502378446183881702465673721180730849546814510491364863363774791378983650404525664234984991665936676016682688183538251951264627146376703000032609510633408672435922726821585147893796470078787083944404825852849586612555459831727215353756663978303574375407890972565043691486737754991805640880213926461742658395782241102335778188747237651367996963197083427368271379747711703791473715784626219275226648535443268231595931770996489576407029753809149492594130186997349129078842331286809495802582705899093023383209878025827791774272448541760066962972644521317769031536408866644879762056394449878660297354351734915596627045917354965145535075099998517604536718523861280886556952556995408575474300767934832529159925923023640964006533959798058998479628160654809154846813606520769141986730446375292621912352884405796582812770406723035831061855689293835319562702937259444095750231225548687451730348254517455218191558192335216295746754629889355751799067451205982911171671943119816785313175600217104655474789023767181679136455583244034186924096925519859649267321721327695198297562144352644346866830508177457181113228642450328822732544070041744614908628610563544638568014330263310199472085527394962552592455545845102361107927702543121413342776024938177298288092324535876904651925421757328583574452361831500677557325902234380302907224555693219532302568958983941529647698780962680463252995315214519624524563931160772559426726227884021829668930836716034284582179795052893906020723996102659842285567093046541376114670194619293226088942243702438194023045703344510908349749460639770243939825400739353743736663453706410993317774005865713504496011475027119162474620934750591956344257284236185950685847567873737230307356251291944673307942858908704150166168590498588897945093868656122739476601097307999339100598967722985134648763493480635112055857872011395591962100448678031392512495464043811393563947972806427722226814197273248222868490333325760545639342109875901852289517875239211023730993841077001825459982009832527008852283137045812683551405713399260332086584052421206107498016671058082374159969399258846918704293438498869644645255226217625745609968614164076987126611854850603598865693444384117144242780408687019008481054569817972880864897937739721848095837841339294643461854742755364739898059916815789659067638918992595820672400028814197276837525143022431294117442366800093198824669568365939843945471964403273140988501534949403585400101199743960142937019348671290153833226201804280901880613253765754281145003558135307660078833128543969206386909810849128822998550966987899320166812797389759302311819842001345140404294664597923689971363854309723328879013450324179234855897968544780893904385601977177772542001584197928549055201282810757438185396024151973132034994575860215625349910303349746092420878088545371292284346968162629342812862991961505589816444282941770316306513949425210041471933157166311004247702173524493604998683680489072827569820571279069263210054485077892510435136237404518625750250645262288155385469276261182448993274550028333686225008762273577927490301980901571525252924934932894157018550450208514094420713455796667941811669716326775501640938826734240388212224573929052540897062195188790129165807824795720988692929566728149203918929333929548618179657888220245050545798406754703361778693969451372585659596149982797008856971237454304315472439074282405607842616381190476043079732364915240377529240015135876860274049176162996654380247137485502589431265295875941783308683266722005464877377989964516804524987180608048320411472137271906858996281858455082180041558659594747148208068793033030344439623972509495207568609898068538543181890137543753527202527249892606772369101973082358142235633487801491617244279494233975686223243457986335879791231364238053635517857111485205768216911828034217288014173618914846136512330428291958143687174375178035070571750088052263519321647629007887083448446164206580950525446078921184024338548534203698430553673249091836027286302655140855043844782767813283330481411641799776443074225681082985883706390178728273047158264252986321532421051170597228999901692997845562597693243058024242555670729493048575708172757358104953399420767372795521607788537654671026545341743648660170094870299342630296652808153558181789667575118598947882201720298011323701709258799740575867518341550841853553894861448787987032272628541694046551407921170671440203184676679383174292830213643237803760537817786854333806108041551767105719507391114114664665334028796102276088119739679657593764695828697262674502471069972266630023928290518940514369918961094366120801846042809849442556146946239800358469887262698366418512411832922849717989845346159613501139722529614184686024592157931466738469670459825058341588290916731962728883774413083055992185311900032172418145463924570448678987701055672325460969019934122351300113594745792165808384348143186364163485090173368449549732789378924345764642784162348871818352163059182710383056986457427868951920483925596660670125554300125358317702406621057851875487217477669839081392522507232224282640825248184952683776304844971324870826457973888163660294177334093543735701063403745858474416682222677754301471197079656877773318733153147699427839331398977093612832595045782189206718788456848440214151691186698206484761093036993935281125918752598357682624623302299322592280297236931188300686256456143829867486135521907012858334741854407137961248276732928284109236470499337176032736091241411938090178596310256271518037229962579039979914397584647640966614672805611650409873056213408919489601823260885164381834215656655311652611572754386901533221231972281692075839577086034881191444529024315222424408646923363569344917272662301747421009705473350386103524915065986146861625465053876245726458365463814374109263065729191444210999731709093227027844791283333346460374448251645632832541922559072572418875937452900734328483000511689904315735862832163980880825054393436245481100437513751191115404824055143432000726915047964482424596766529770091064217689412517080385481868473664806290173772592251789267529938627389640895013290064119830339820193680022125944546617120302423349895334822916201482464480650757883577259202743579499145968958283751129307449081277286750415658671366005539181411568587746156671404825232618519390182836718895695745859432297423964382007562334783144899911325314008636731864991418123657776664528319158211952066702658647780772131219601188835070091357569920066340154307993084066486162159519925764223444634625699695007371542558798485212195425328976802687569884681501192973912816547523069540462524391156090022437985960052972830069821986401591881958488644033975441245782541742445400334733681063240770159163940923728959165745768388976133788754932284178130431341391113169209218375036842449479144591794104700793979415959534670075565736429469687995459243767200850088039671912936335277510378738508934042254045537904773321176285019718001633169200423019089705866208566846859282524455877639650364116314209646050040633738715684689915863710272204915152689412680770318843830754950473304426390043514667700046411239862827793138132047415233268732683072305148736916602479291400550458883392379565812282967560630438503598972873899947042079656118610525233579194178708045070272661033639442882000612085860569316484948851377678868370216529631817961386123711373445967464367957093755048547103898342494459334631393740222391163988085744886517193626826803860464223412385000024007108107057389014083935961718742605882785547102374811613556556827553231405940625832192268821392989230898672826028989155242070119396588701904658475540839796465195117133218842436337680245089505123105339100881862652926393971701622920935898778356898243560484601504439905665026478505163770387879653460949056443432919029426334284871111391221792752674515540041462363651288050296621046488031956850004975633954132535097802293875603736938798490191713383992317780537655939757475525384278213763542061995333164209563169929107520818467703066287292762819254429750807079479690519712701075660801729886466504736543026338015468059401733422551459841125814676154496120452879835453929508717110030518218455708005670380719472832529841035623347259913291004298878402959479316296318946482730845888087456771085233473308414103648893151633987892891647889599527861615516420419892845251621099790893451311793384489247914876206538903744567012726128454031912073835340310503338900891935818874313389368146236187140011273890643133261293577104364872551402611659029993961366674672885764304888083185143248960450484959709721929302551914632911929239285308203655304746002837653333873928209935429637109725225490855585466476892374131839143126704836990628714133458726489728891273850476200144556340641853509439259064830435256945888062965295340006038628303124361812664627583120052625916085637232583258214952279961904568465870436181556332635787151371498402882360691653502696203228881217136231714301239830039694011907590224363684137074983439802943379034982834792007694862890133738844696816644513489426473333148238057138883998053551514423787856843573117558450688410245050439637954307539324203547540733874355600032844293125215269311258057202785583308454617889547494980574721973410957146368377103263287521699772565983439346730584065214689303351822141930825816042767062512986664607814182852226344097232075249290744228831402811772790662066518771307236914421174040223880065629137188749823184885807414667023455430581358075745016427671491194553397572455801803574674322305537955449679014227596824134750262771874690413533546602055018514589507870635002303663819478831506403432518535884534293793115893486163821907909164573918290749248963426582190118107701165044193107658160157289529070688826007772192448028222445914410224270216169585281103705701029820698035356014667837421335557388631877507022955963733405762406929790784564058901805552572795096424977748208670190906318486746079266707903601296019715971112566927837669231505605241797348762608471066256777320886768027223970658164036483752059750014034640311012170202363597707301878638448225391012400511357968086843121422833212767457384100775406952778177601337302844662533056322394644448222847694398659243492282610543797874586029279273776871711523633819501257588581943006255844401116056107232790842047282679084779472286215893687290358820471780458526590041233869098780181659357380628954270576184014938895341432387668860224516916834285688664915443092055369108485570699673144687090523460503720871915420827995843634250309993026120081508673383936532979752429385957919722717262283222910589865928440882147582406299423499276932195000739606134411134655772359352687810576380872040575679635881650776093138303857123034604550700612456221402294280167028636358663399890922821480936386608062992913819056678421998373548776118332619905780439346082384524640105593051368505902406732994562917837096577078621922175168752751807290586710641154318426449491991525376472267812703450471101938493747479314459764326580529974414155757148356669618138503026835786632267350332729321650335268590982911753462704034163168475246002782770219761972298040108796860300279066514640019558795090084782862655446947101532400790579120010149789182133518027286809496738873364414079065922966087366695558906989810264277133201571124396181501433814586595854967887909203120434648876282092546189052103729622188317054306235135797101447868975596637991219213140727197178544817859911337591484051214605239970946966896390263851585879644320100058267878249948485283260558747250629568134014821725630797576033884510099758850238573926465838274439501640373326489039874478075214553877995192767891358256446024107201447993457979494462456530229193106918739204298997273254978816010290710958613934908331874927326462941785466676356375932410996647363229588663630723890762008366760582716870260876676393288911111002665620904542806235826453208265251117717898832330473070871012963784500067249019978907037041149824879183610075863044472807542302027922447574271440016847042153855201634432665015708927484459784092309347934294180925940552627903760054549739752858508631080013483283007305915670152069989815064437449451041735881674489753887973119138920316133796056189248664515479883715670415744028903875733997256754458710537618709473015911128646435903784698048113326892486149833994456187259104390474883842700120746049267930378661166511859029655288243777520210253474635960010819958734350052254446681805312004842609194034805409221586805403472085578795448767302998872437311836051236250759091777107416317626048672426593007933115149626428625791597095885840165167274452531927936714080556657122585896311109450479601685562943238687997987052039538056269637716984578918000606048991628482211663552553722898992400783012917234368705512407179712563827496624696099426973597282926010362701773680172056028183743960056849822412424121097931432638012118412322407990922190107146145157564726614996006553751854288518567516052744233385349266736772306858341889586101824009866912671260362169431763595201019296257004665498227775693812563064322526247159550197440469001876578115129792475633759244875757272817394992794618619508745986945612338641890968899950186851390213184182809758624522298615784538541260075338529743008994747441562089928488467198701250169841725067338406011437831490845120611025738584484956498825113066739194381110190425006072184862302977876556838850059082648206092348511535573543019447389657508840316786158032491318077400008998169192285154849737812977405776829317912206421480709329087820189974464852980680525623919862420577716699048558366842154956366319988346047262178840880562490622279139787870208173426156457786630239578176879977452034484868009151034613394389488748640475274311294803947927743066832493818656925537897885055943305257768015790589573910177302432552216953640703468298756009935807385269642160778655389882448509707258176689984479383890134358943737950664088331326043127417923870178333042148455802685785019358930792337748542906251435015193190058720405405420303750737393737844919027700782543019200656999859625790387799912291646893129232431401383683638656254753761618702038678026381952294318292547705077277908889276523141260466829235669165873506527881888573585041979558999346125722228622300248978614998867988615024869694520835817373995043575900844547022339661705750932276877812727925354120323084172614715261855790834547312187128025252386923200314108692121129870763765311626599268137283025412890778937709457087952522319963079332382670202520052891132657155066962036387322367488831893904814774700134762121813736603940734875022140229073821372154458430640564600130979708432548155989671786187578192994527664089871886368083612834075514059607422121409548758315090633110067241222831743467604434864909113022802102366085249560937266744196150782275115394171718072174890469385021991638569499339391731140983989584366739574280436089996471909183515985757549958045176133453828691637106104877937804620778403393315797833182082533827029125126414182716464424509402968021275297162898171930382823861983389801744156893086288835661467335381503616106488471637751505025886053537422073463600981126545228714085883414193609363780942998829407880981122171453633330776141469279186528516304628188733047119698445456122764828007705749888548129007306846196565875332443674993609823350591377994622851969741914015069586419079540574193661129224717235241128517515281542030963608444303600077330248318320339555737402215414010093246795033648704540734408656050632176140693528180836543534814455721109400320182720256375308359487062445265269210969389131531459655557841539082868948219945014576798887240223428105870106558615622146439876399778628811168688050897086624292529975408492575748130113203074755813538659801387989855123472844130937184852080882055603294242679024203813183770272365131957220283892068231153854489335587978664478634493288251543929652648460128149235059454320441714619713989650555212823365882708170945317367440735281119900081849679461400088805823630475690854165121540561597377559778065517683019288635923539114161746731639668355331650829481005352932263671831310144128686545057828879400748778145033014824053732961684288920507312321518259560753301973071040049757800212268317779538052813607316706830293138333129990364434550127654451009024365318279583911932216829207347395236778666641149849806305229323320584887945061163448665692726070334441463387902014065087234636212366918935125011618092380264402577450783147981070267901984778297241854795300054229428725883075887056470589320594690856859951718006047971053979624912838279093724506832311636827904194646754136144661033328989465392432048066948661897660054492272304526626612304683417160683659058140966501164286493827288484783480880462019174215648335541545185007374474150993019196701132018705110839663304217873357778256891701672716354679383740811045415428796864991514843624975482472668226483824514494175792715540801427707471680291612671248624369837554855096604685249139846737749131839702673290986157930914982476479263918868703522702874284749704435187229208108516618051208499908156382553941103126094755489323427136520902807717539861551042347726836651160834348971139945552872534633565066331842325047636800644607338379544052074616924942002273467626145778794116409823983431552445389168267991077417593045901588634034706105517029348034203445568222381269738484446650912501245501477329668372845132442327936233394042296832911999391615416271361981874792285177692894472761179454567297111974180020360967623201813740555469964337739486393051092601034892700462249429810339857210736817768764924259900192641816040003318285051357305797901497800715986323961905234781749262228985182581650702689534507919300649262573098784523460866746671148430522742599576067439700108687464448457854567751952610718174021939035143730149334172492010548788064889385169022671835618668846715514175094838238840146180832815438260106249033368923116209428707267974623861450439985231610773216221485476406021374065664664723203037923535662673002275892619828687358552385647290302361430027080433028514574421561049925189363629648762197040097685816797732303026122074709271311577733247720147162931206795396698569677883881357786683236699003390515443267394138142460239292065858868500237648526800333266016991462262880236625130131125009975031730752186112757834444297468179010449302888736556241713785060879943085705022838395012211367347393511328127313545565825310167083147917414059719509192333976499127041817356229373576722548539375737188984802810088787963842902332341365285268808206164340772459977274006535315120633718319645480260841228871022078670579721110731623394994291602272514790933956182024498073728169455043552847646820240455360708555198731424816702452348377642110650528142327005679600479154352913197428334812112378499222962798552191269417020767299587363078367369607162389322118906391348638665048087390870026248034402879405972611236721701000666009636474254349889625446543674949132967584659161082668648717899529787573123523239035466534026533202372703831385947151350767456499222777539962600917331643361529720034850742110732957215024169456990561905615522560619148434616372141067915278929004141611386398149371919948689507489815314854393773265554347178019258069655943061144412415008752553237146985959567402420682878518839020564800642657703466032111573856611126714549884148222256356704264022849019227828989302541326677554429205443894902940960657254677011356164647524939655180282662538003256405100248646723433556107652426497622104987961655081937480018111974857022174750039384776261366167167002214659446876775645802902097273332179336557910901790074022857145288939347363880700648619820257222659283886155413578993212495360389905245694005831389998204589437753649706896019102889153950223324265291627653463923759388381414821107598293511651175027005919392396829248076535063981216483715763884954889348500489640796390008776167593349775757433786420104216691457454494897188720381571750644232315443861339080934317655863951441854991600327772794161372918983078030406454900881416250788715757247807672906660163506704474035333227901160473731643630964856532114765512702130813605854645656752296213475869249020805721815076502587120407103725160552510029245082836743236361714840104896940927358256413349750597233410500889829602437445923783675298378708537219500888124412549575362949997723627534886811742164958868552120349218944747532710888348138502267182365742894155956579980049523890710991571101500016642224831752782504153400902708950139028483668433195552901776583820338885689697805368366285813474639889418786599791157802161761467300205749903380339710979075633812520087234898156827064366935270766091021168465781499375422170082937987011104835835470138315653781292061740828383877160823800904511043229282343164653227876505885543083319665176753650203689983325625830222103849437192554673922807866617044588564911890057522572690499357053992469835826167892365660304653918086723711991758638377757851650454503551238582923289483433835466432036229071983858255478712834719424333871385005798395386880015251839085202137223801906075076175028323997568033771284000758130777173429899407605087548213903661769376905089920887443207941535362621141093367489957211650259868519313916549744261604617688599830818753011814678365394670116113541055458165841009324177743431340294879467000018393703357289020271161981628411985028240688657980125097753006979558431340132431540939506909235346588657678447605738821134853333699230283123220250005523915055969563723489144880740520352185103514843513537900611684286806919127196502918350242994533210641193038000993445033991762072467649127163681791466879519619427878107305888653810500703612359048407160894826551228793641895927528449411103240140852452859849299772929010450104574445150796440304139542716010207376406578878395988807808848263082176067574357790902354404176658355160905975238702251053271376885799971775174885393848762673898098624932355181429779064853931297213984570846628680615275765383680778253100654361114452099026418051207629538279048223810917633357732434609957616047945903704896886648972592453629471849428240721503476572126550003259871790598335347303794984622832127825730894375865184196965101291021159639418769650889518304914078996841521590680330576227175459718931574463136902275895921728068970294037622219429007665118268679013634678238706333912917005910220995776712899926159606845751372814438337640546130596821560781386610251201990283965939104184247018339393303082387919083768583550511380946888082301090189599601534004319805457258580156282767879626941747470300082128825254719906067718523327422847809544958260029259531971130021414823606077452181947117939491480017013225062320723055267216105036958073267472868777184894733363140123867914456141116646538750638369872654358652942642736091614685893588905001381710711842403543380899555025247426579674383064105549082017748489119525446401722435030348781053732140308068558762706592986782873797584684494150423241679911652632955927554983012713613343820841242807318561282854528356513375516386588433534322117237571462102557916677854540647766446818721128675755694660939869772325986030915238705923756729043989758178545306282033324356027358373770709632094713783319451623368210578779687681934073770010942025849762080518603176643801670963342324605973082888255063586928048815201052182943686562924769975811366018052058382928880533878942139237555558028562998113050225616158603442332559234808535278004965789386851460862173933475368405567568432444308830710426703824553732876813579555042259041728789327351308490485877539312174529788788922311520215729571182741045383036988345336740884562941618716302087764078479966717279542453705519181471303910017314524764952148686719631814415151746133347943191291052462118665317832705916884424409625816405610298523753051020275270622358658214846626659981852736537330461725963570541152845102603942960185024818733348322037515328959397452643224700801392101038400591596315536523050569571994874182269276819626087860207619707283606140438102731429127639847136805392381736769300896543214141650513354722261596917768648945355010954408229755080445000669482935135732107837489783565937304655389867836773387303418135606355706254945721104286266059104167073279969024856229359585122596944992247796390649708702995676491894128049280546027574535359589001192304345864667940579446812435252862507311764144013619917356644287043954956680226707397198636563957764023952812090792429745065437795122551701297524427756396725529576180030679759636880602982474797164943423978547197426387885267698886524660677367154444117891838038906264066122294865462425864573350645040195743578888862176997131578587349716238164448900698752328156930840299935106876618267877878604175746005518347926792780495982035205740425409761481225759514892951149531962268650681472267240504207372492950646803138325349363703418108693672878855721018323715598281310602878006050718853548083944885599202793291779598203845976827888931199593287795422565999326860821812909742618285241648588387591023691697967595922657991943159725471472090276671110099493470517528580680809538709747901927968233625645733401966342704198372449661762655260048417602784111665587318274866068651971081986838715146017105925309936934321394757649380588995034900279498157576959699428921851260485972414767398401397564154097575495530840537991524159200569781780685961211960981809727018375007402945157583751520319977589152562714030530648142344935553615890067041092974794883095318986030529628365411906886136382390750945833455765167891534227438935179724595304989299411644731440256955365101765126521750694558867744893434146636498111033567321138789510565023387670075559192464061971820827039212081188716646908784046926166433899878147228923922013409958629485854298517562608426338080685130147394829748888089323135308147361775156005115296770440758336085968604464590464643216942864863759547644168854536306304017687513956974426634696078863686719334762250367078340096818053599746181111021842656272081671259180046575740834330278298851742548276294817784459647091753144464262639719212038235398445841767831632485238841643013417328231249998511664076850312116535050502537074573150995466625368383004513699372671491141991982341677470519517106486663420025956204443792158850024822629061627322105621410959292366582126260836692347339820557901229147618916932305115325679519304628727206640890117073352006745822077080847150695896315919760012495318509581577456739868324268546466953271807792115078572730759127668083999333256142029499202570099355766422297679273755212376838453777512316128329187645779219995578334162544166860903165490012882968182421260511810086442548648299084360379555453578754865144718258300030950853298456265818603033663326621949348809418144608656350042759319178042915284913713134582489808659959742012913248330878527679485308251224748056745721891727943969530767531850742792153234849488876527904410795304641748378887537013154534111978851262716042444826496737102161178950595143770231864926309036663845487081198947783791941599726676513083623710768444187407284352549865419726805168949845271960886684007297185398694017133657737301927385563178462840969510511340979272195177683518237874066620223630600548623563526096270077119021995329533012007632806601388605332486067563650598875971618464616867520692740485165719572879270999844133719144123979839679481134572333974893040621756692963926525318153749173881852618050946770907166192318164927972359986055298030266416540933943163269999730107144654505930019014528440896470635243795970987192213635352246897261858426635807207556905099939251293187136325403852239734728713119184195446179880965061577223219500271604572789062176005316249998625994037259436207407268393145228527424630413196874036902869957397737711427379351316805207004178265156174594867535375100093665625197657618125369026001071051982851022851672304242137939009353527895072776559686480434579068492324691449276852106399337121470034192005569728716292592687851241695166048797815037826830809631890558487087302200912023566663815939242482600553040754667170723043725274439441623358384633901218473401059640422158849439011628193653031377864791768627707499585162474904163312465898907136349895495422958774107501995924562797087161878035606380564052665479800153307247539600275786352556774185664560938651158782964184336905645106109622777061365349590677394743424413091792824814281695521826254841570629872147566935424029577960688723188638775672393221748480223083377580443886951635723280604701383725174138389743220595426412709826994535527804242548804802926176530810084569576138464578222017131263881531290997926802980566094880886240703114639907390119702756922787380380695735795369174680855802401236049984942619209339977805622789825801163763881156012389135178958964640387939452516082902260072875247283388699421377746807227929619420389978951332887906526296950151670777477820694549222963127516197775545903220899295686390298155510476597248364290474965409990237940872505945494814570945037431088215877141111453739641863264790933161429543209890559279227354456950380783299947622973290065559930989615837775944858239243206555291178379184526450536789083730299929937101954071489906120524000640633380636565253224401825400484528538216238897330804198637664638841882041582330908076521861344323210971773872695780215068609256294869591701855997879120113963375556032367187157311228625283822089469318812758344878812237829403232360625963658615692897445354947467697424176261003395133558713937414536494090381713811528630139914447032624865675580909330015116537052627453475856765306208845526949812567669637654135566522124517304247933128832811753775629849959403679508179484134677831973597639114524317333739023739349969578316721223223423424916870846453336959619004363656090891991923343536806726416666782938063515608037618151842868406199325991690617671331130390859889818217311193607865759898986113697696601046189746030612113325739354937432104185638549907369588927625984073539915793789079636595761000109353401773283752096061998233131889577779707603149496367260166231426825460600406137233915677072078772389651793573213435938576190553905030021522705437897032483684766927262884777904529259186830490965741225696838382496263147955720095569707290303975116476167437692658220512811154782878201813995358833625983998576136486149464261232193495415549817840444144731853849069693152133401662803598760078972606242359642379408893630508760429378792264250551859063584416719961405094544469212202194307733052454055124063577836748563606926383302486237895218317760780302683666861711940736489990183494059756487252511012392812567974405997990883339717809867088902230921899225430838751995142061192283324150856314856158114692018328590844432725122123908457217683354288641270563909387029958808938942804771168120637180956965521696399220872551580926228837428398368321046382204111162067398723562883577402574252866569126423292218606565219737582469616615867050091896545473908512471464260261057135936038810296161614169764282076357985190166115133678811615529944720244087026775178049093722290870412643729694344627227953213456843518544066414020631615305511054413997047658260936438999555126818927492534369008849534787760903322618984399856255570235730789073432441422044356459246580283720244898691308573068550453497923972501859459585919821818350050796319676541474462376164490117905510563735957319837133871490021261802127471527117933079393884831820619048875283790793734446560132878437601206024085615206522366091644326237781251724697114794385539463598138965078797152130258231318053642875912152414032184421284711715422246147086235172192171598154621111519583843229846893873961490131232070507478310184203662590652551552804750598646972432504055406801944824004053912753600808136215184519935929278039085852590902376607956356841734711336613872787231912186338102751348147005434837509877914861123903777743242879022252823019926017515323528607596974990858169751554360950311481887456208284049551269823129451096393624640104822695002969086355990193744971917194871968476162264303752453591785503707958527498776095266714200299714661331002441313097526048824262012154319786977060414444681446977396703740773270788177699182198340669263481132334696262528197116717265410429916258199784020757214525798353884329437344911667951571078999723210778554115345215421596360970260870930223298998467430762116010366999435313161618076952457859429510335201911969520244563664492188973621889883627678714324628111786380832822730825322987504613788928486792414981648628861121214553260116229648873855608839027696762733593985952219085746026537055249537376118236107494264453096364420890192371383518635373821181701839369339127780142417264309542987603161822232861208901519337404296984236822311608603333070680297239379443838312906727561409808721179432011669789560573438495687626119569245355592990428566182675220765407052222667828323821141963019799486978235806942161371820157078242077384142174330822650384103173311589559751869242596168330486623714766511191006757399914435941963311613962169881822167741854969542014810171619193686531002901569447967864296216697145672142518712782111370962484202769923768545407260009251603504044480502716718526476391398292159916978443589713795950361057202175948924097380884144172376725053034712316317499184000440507776827239614127035282463190446738321737734214328596988614935744274771667628655786474718549844276285191437678747299490015758283687977310357281455507273487857724748401604811672711438679215867272252550405071762697479445812827655494971655609445657208181270629657100211691476212448495486319625639543177532738972204984781418556003380276823856563347579646967416060433285453012068945500262171331919743727686506840789966729708470897079848718436359945044966371011820851977409319311273285705881636460508275270394294150322405202698894445737275877564876382518189258762370087666533717300267759043389377569527101743910620691324403422203004420814156414461755851219377230267552188012905839460267214714649534186584711485019297720392671305373836247795693658305981744385137127834338195959685325500447628128533762223649248101640518501179049250344655565092231920665370066094513034279511660739136308497575413075770441395915383445344470822709112194182671147866565264526753343944239531719050271208749773755620314037047127621084088980393671115950528117341822079185971254211896608677030233896011878618633083400076744269123690784379472063017878532692448278010104555928105041297709407879690907988021258549942095496620805044420283293509542525976154291245838763067505173446061679118147423607159992316503111869055427658840166107334889173873994842536959848550895515598095425720867804426326145361412877308007282282520582466654651251960293264930044096027976025425257172514125651393972574336628494330191579968850431135709275141239709345035332336571960634146043260821907253714385120143034889420670391747023032208437489089058903218673477780422329976681858035993586875608571366190865662445000982970085361770583419585253710656765881743355031048147579136514104984247206931701850491022631245486807951424091101026905224894332357931060387803924363617849914412280558188914326384018847690204319444069533701695391794895335621003175653588074440811575758262000689195603733053689746168483582220639022900929629780613995054977100955054971182178059319066861235872268584549499887968951760002211537406335474699267759958688226298614054090688635023343524733384808887956586604204363560446450725265191907888424441745592153348609507240884434320801599895299936615587264723577020726177483286069574724783481884259122065347579327632480499814138972830389435956018367976939312033952452648350681747111448713218374323015334499455917270875334246924143525454401837744440616483710471721260756901892304895187555139059946061145836099967424320252790601605413091124587658702146666115697488175812353712330201719109364542152065693352487935800856358592418788703216477778088234723602114067711286398086589558523569757495744812318671920130218763438272640886160228253431679375715318763456891290944657576069696203645951024503840969497522524354291471265555390349704106758093807186626264713638382302153491375296347495725356143434406600241801645794983916837214670369034260406551404845275277157078352101617743468671168021106973638926527916914798460733947950847996780599431852879307644357474510535197589060496000315339361748097844549284205278477708046216612267443692665388222406575441221526750493521765566145771951670684392592483712794599032677019834818486377626646228925995363828573066050291472373035538231787428808212754123660419539197020542279658241604723137112522096468905264496098404539854932742361812609759669919000888790368696544303959430722772642552957951757193704351817663217148626302252356354641005140393470988613862874301078514896915448711804356431954366774559353469466955361268289980702794370140169609477033547505961989239440325973992699630265708264735900998904079958143103174075509501972537256107142320910921080510546626191734785869965688420909274067090169623906418405789830994505808112262381416187449411166063405183843464679555529668936946254407149229773952804225629240003915944412350221914549101099530364697823991432571357810188096392156300397294002405072920549741494415329735383707192715000924322960120718095954129880897572381212010357388639034247973004760356272191443067012994108615735747074730441099561847317653800979850256851546961931677879039816008719561671897513524914940374597183943772588457110678198436594955141617907099743531886565663220584792624526893552604234782808956048558995445722869457535015886321529669483002545189699698640701593250691226613892254030065453050660073124492733095649893063795449520167405224066507809992072917986429239994912862828589746941680220504728535267597326011998236926800635734380984419348667612647930226625061654370407611728634895068308453581870201349527202515742375510050810229212659374866925606333265428166704926051948584994394314689874070176814815472721562406887809599931858845523340761549939810498450016575167978457587862362687169329670141035770772898817336937978653664674555641687191732611186211294445643874614640082746674458583022238872913486818886875435688604101485537804506761000769995430824658725129551702016040749380409556979887386964117262762004196356085278686333508445798087682453927190190700046929172820778853959791749602387031227718222616045149205623850081732047888236800884708450868260847566730431904460916157227642947734607659862845946364996906829229405466675841401774179648715064226581006710854289849842307417608956631842295314607106755631968466748346640904886517973330934134735733015247535155711946958920577693680128158079325349474775459703619120513392854124105349016243955109445609414856891990312951729109121920068317133364939590238327006164396246806601577171730236671545596614705936383030271943961569528433625613125490299020485573737744812968380928451538603918573963243063447319033255787071443022302355559001581870575383747275202740813899173119115671231456641094798606830488341562294990351718774189663299315265867762363706632119294235719386396553509816493014214131425604971674678564505723096725116926997239428019907928251287649835719653935056096147274648951681634890912572799306582727813202077498690460087856891737893276424245845759941516555879417533186948552716304435735657558835126606561192555998546260219462860325058237768060957476417293221999387562450227456093430746252334662545159145049332650455609158176767993040964074138373178341888206380758705913174335574606473987782844980866907320812321397228618183240199550921614165829478932652907075983381236963946872868522178393081974322692425192195007262732902603361751284815984413830325626453698196076645655403296782001918381299052295325757444122031383059095847788851050264595763388450165913516976382321388212515289534522533718416737502866975406025811351839456048829271500345045179376084363520160703462524167869860240311700443280774988458257378120780806458605118617972977812386894089128552739763079795237322662414919287101263784345024562687375979147320687787138734044961487827455475088489846458728499483474591114239489658096202849372241063048724385991840104484638693740044938470196012549829060496264163536750444084675513718502681527551175700760771303060940622730895604116620158798809836459920467162093208928686906248943728707752107597002169977696861269214052467666215764621916999872923060731465975865958578411997869106713670742501406623897683377681640467080574636658170147407645316512616622162184442149597457107660314928598204957244260354297287526161143079820301841599557401383648473783334179913257513660437579989787217125127075817933315222993484928403616778662248701111636067423836175855493744624952189118225850574903319555589195925371664559136404300199123266862067429748154086249590291112996588315174224225045586693185344787066016753337478912571371875795170731937571914570972028761450075983908388236945688115704325832951681278887784251423476024989965768264591399303913666506999893163466936431031515742325950248969603777788234141160980443507607881318740184470919650200399003515214133508276254822994639354352445423542424238572788381282117753331665850001525097971361690410335862050781293583657122402666688884909789660418010321940980472139885711565255309500943961106146141037535294217178592065178428330234464347448506548770292382731304866026088230550193842830186543791607735079471589933511708537509186462378510327713531170434905179421481343583963242013970919790564405942786297249127071944112330843876864261138405063044466322224078636941936686297631044710905985495656436074633116021308690225491798572093384339329069990887850162979728776291284056164822645804107483496306552600519072583795413983124507195013678871467593670873789639339121128850946674758405554617030239827783754880946623886572376734723513607552040811783643762512429825197808450465282745029224407964446534943203263416283993767676463098641187076141272499104607606345245821153741904863919469286274785812002083565932357930221227093840384383278296279573176437278829137363886772853875148003687095085655093507880016006673118246824540911745963001073000026716528983404547055605763276242310333232302920832057520486983742484736715089073498836783940322517311198930000428736305105086498524212170673546885503741217669784676821507092683875829543674223406638178407841402288392745648343857182639255850354440895732008991992777587580028068667427179122697354539413159783240733330913799605245962390583878422052425941396222229258966999276644748141431806791609665818201220732226002875546703719967898981503997032056951585389806479864941168909995271151901662715928418788246579155759499808554739929164418386908049522078677615824283622192112366252660734192456122596696082857634053259469790195255043834457696036648998916484926522573522420148717264454268276383476476186652867170057565542368235875663413734194524719110213360704387935699619930638022991797549689629279490794021949294575183519735623074634514403451246688114877129867588977014090779468294675379201820290057015295107059422741429274824817000001556077067800878418642826511341445086734512701634796464833385671910791562147836300459327556079211022766563654415159699730070077847088758605205855204846558500879894217092669131199027752179079119446189103653196921337509022246009808894656530643774183625241359228317506313736455593789241315899147856212280824533938785960748250167842685076492749554144174343845780050424533979478764170060160796610484083575451226324633267623369226923480507271778791427842727101604993219877260930450107010465369709424443229877309098740911644614418187529472221056078542105584025325340848543757652485673095148107455102748433744988932486396291856836186341360536573667185710108426062858424537169579626985257256313300438376459029709271959535577633229309196125309629296289563582610609712969618769741722296145847401237777117477303071613557603735555332561959122086796626269841014441147722136806424871936548055054351906339942548844887481488388958088379077989335952837088380117956416131306295902046977085689817567233605980789941795107550945864089461791631982389724056297243692595615287073485787855883126847756014920150875486696942459145270460644663271701390885559946154584136097131994259077138359409307997712229735231472904453677742266485235005210956581493636121592207385098770487407804789161281885261410574439867326927062735207468074726687681154832632302219240056958575180723516037470730436269208801598891495117197363781900246061150492448276301006454657159007162952447001926815763483869699040164328489556111900577334325312363748886051324608944347315426069550397786998529831171381177858048390087554509041552542142773073218723793249225602217655422339355574545798179305103540438699696312044568271659090264703093479313790321012502110235696909429415964594566017266725367432335641671302014053550355192185460532688953873959085882963735094702414132395629010229285764915523411683168806758181699719798756799775192235165618376152086512157340084961652147993953553977662323096997115893464066058109692127553750445861899932454768025596073596041454712590008946786136138692056232640996969147653953366481607936734554576478305076279559703636573269699442752679129472318207310840027214086705133919019312083907329517347472245987448913677778924108776066203269826386738673574613863209095340146445222837038814745869624124082120082590634989005928835557218980716190166282699068442663627435188625756573023069470613572981491890866454566074267986787819993715350092745610645077420663161619950773554620955068387877682301683714318333631877124717587654336316822528737596323707285873237633550114867602221918006428627601997250474456613481700613501504301407606811342780664198931917041115882573893852910926658916482018586847247333650940464563158274620903500529999165220982690310029024550716057458165912590620654366561425605136780182356651769351334149256807773577095305762119560072150468177250158274597883193073448434054204488734949158220495951960047000254109441223902193471934626842245546036527775961238021967596957509147038802097862143652970609780977451282985003127574418917115945599007283408869147086546777270780615065424469641060974970603863407930069409025125131188115587983831760548219967176367957237265036073363332684893381196038130395340620970355199398673262751999288764049264785209199161077864913489998683779884094824809533555394200221332465264872212137495034529731345542456940051600158502819485760184070090894802344164803458625654507737295843462744194197064506304479283788123632455476385137306089150588091018777107172194367496830579381464505166087124706835633671328837128643705310032894508715305733028773713487856776042710457195450292935805239189450845029639777265261109436532004764775113569274889425526719290632538880182053173081207536859330347932221168582645417338564384832887475694355517390131914820766563353523635975606456780253962902285018357360263841943728897915991746176199723181794921597592974829181662160990619787853020361729224530136939358087834539827719546200362308396075087214591238556748242475887621473061657883179858717374849838964982984219218991001718777851441401240935334055213739289071369400954831020471117893581724267438527135457435593060863233876343160232486144004016624204758591928088169001829056210271846215752054828625812585627744292762266500510097529690076858608242652561593655046162070732628465461563082396224107436765137704283615985142863784167922326939621580566772800959087093870072076451420032505523795179973342043181989918106333732058329379482623613342788688979703881717994682814092617036742824471419463536575398250266606357700186482841517054206517672304742194614114961446264408762568975895506258255335101125480171649492432932082468434821225629680807064841996583655929745116553083219047168162089144785851109180934342021400094924325039351241109170403737199049198691385816774820632861872095411936310015137731409820895630449464914070255270563933730287597001136711390633164370220164483303659845810344783060995697015205941740901030723159688558677638463151446998768353793053490044345565819496344638729330844155005243241938756990775063182701945218631150367982161494798547637977979457486500775042998111558523475644205871108145044746627540048134889118676332862843747073297498150807042535509438773443664761776447763321285353112556954473801976706564745477593490436940261796486660526984894127219810360649353283858048592203426855222580793415719278986852628910061390007637718387659369466293246096678218618787845068775684572436637613412332649023938084891408144602465364864229486253144372046104200381568260533269548618332745103707042289600123646071434029497211851052811492737671951774696680319794193207782074923954597250116108564387618141994010802886338230339207460740040958265607829849585605764798479675802546920888667682839251613420731627264766265673770177118109916178342546018322879058440345794594227563194696228469097182537538213675865676672962364250055192474938747337302366507587304253559311738127034232970347691474331467062501616429422609297612218144021714732659446088037628376781405844362962622647234954527668521434485555751977875105013638508487250151741536709631071135835239561011654295577582698149542449560887061822142670898399825520528631176122240726488027006621891336185300781132254050881189498871195441853517631980507761840121201512151298853575658931613007054974927478463426526721931008004892527448313965019712555006509548191507078498215761574278207929533080807789959055714258831979167248527359257191906894809878956679953596609782974139878005720499185907731877078122748559742095524539470560704223919666868979304386705235852879056368516076706060500234972580157981196369573686435376739310707163081998451442839711005844646003972386371435692497009720552844580601389157609902813018022704691183413503373776141050656136453500297163557423671201519474982012259358498424175963278169452358284246830856471434334042589313535598155403503196934702732286079501098111708520669941222099303785733604943529163106015429747830558654302332218896648758081879418081469766746090130805097512735101128367445815847216595742648959231883322651353781048951420564025121782640661845392983023420854849468961592156836826833517522693380218541797110754706827227621639814357374084622992492952087503112218962200416120651767433138941470062809741189980807921726996483688276410400379366210006086271651096307138587868526850861371530331660715423344194240686897682031746358176812709689102814589959477382212320983876424881661247881832749971870577249850131407325495085049163646885493246575770303042156659328976833613789386788476763967150725698568549041189152019908306772242449721639566294581701334435552413811218796510219840047605995348256126812897344625023106810127938197723866237128461372825229730341193288055781150426708532848489541652366203211669665579358099341201909790273610978119874489441940096804210350299668032582524528270534933716367164598462865416403504772017962809862840727939629591458164323055743844272787932269148598690907235591077619664144516140805677837443668794687975964690045164566089392932560346932988411981568539406218746367669275964073648688688039152600605552315141004718135211066407665716580798849470099939734641611961114055970017325306165975985241554810911482341519091845388873732817697955463123372503399054710863721875129987164723789787416673136669438054329634375159230973570582079778103159433353684793940773986547068002611992460755244137578058930690253252107224212880628062844259272044875814388954768361338009129662548691379952585893439826791989544700289881373807612279992942317403462640242961247648872063055951164779739355643680790976532156257984246682641402221377992967005087393516996172574958072986656979963948991154688167269684532258411216242217468591447908613271699252450734600071331332238101223513498261085367695536073161455796638058395506211679062574846576877438496727687295899129856191952740150365162014078037125080801852378057785183973939932265005326597301658102333355003980022876194892835455328538674757130971503693720692580619079449608095692953485195677092615024746308351489245182809507849541412023297578901300832366502323381788577873990502732294215865899981045881996690037745922317511917746109228222453855278506428412965903886491382123820361938371173494500229197116919327327128237438585622402009170460858105497394988493699956941299271278165833279796414406349328833210886433307391328294479828416858356028260967389809999456715204431723174016642755369928002713566354266173389657121502187145906821343759266588063762907138499918649309202171329440052815353434167347496829489254899894764854458685374606676668600800539949708031424713199322189085224042894044046452052988332145999653702930612973789598238452502847587270568717193622824697895315952010035500545356359208719480751241808232252183850864583368561838136940144362027152686751580987351151788717311150249763592708181389673105492693143517631777151608109902081555314607375497131297183066931804957209579899973751338533345593140830676277511893506240157515188036399588397995899266707879316070254304386831809265084597571326153127415445046636528049531056747584236330807032441560479488461808860173877394849524874228882773712668370623773274951208431554930197249592120262427405273800524499534601191105503655605118632680985649588524710938266003756270844041525462515363007554110218932063858357663795895922761049068193329015694793282675265870557012491494374834468270371113098847413780251352499246608788656857232604911074556451512191984969418413309858726876313523436848597975366066190987117753447282188625356348408125551429341845475509875421503874572303987046340472980727821365134344546526784998738866536605583629148088673372829616676889832202293521643393115690835347475746591866053831610984010919459847580748486425449068572461672896627740069938468584755933568993852940708218834072861523765916174807108201679403100041235858606886610426312934409257605854552121255064691936259190574479398023646064093844560573657279548119092332145335125082281060319586136208766276125067146294079946774688479202041861474515992280930642689566494316273326179027736675407954254227818837244490007668134281844137755102777788760502474115470764473859763343999157705139213145466700382473574699082442998253305416984515932177264017479755336913704565452511124621088672036886137321629515900682305771847458451928473988926838426329410417872516871349832075872688122947372259833853483516156847167073346603721043832356941597787664093868149959615037701943416663465474793373573649883859072081020353076070358357569880921859676959542992295445704186263414714762600712263919400686985601285975536891088520137282724726041218704597699867309979297873027485260347758494908680145966603617627921470776767119112476567051495801939035647190533634587695125506241252436116577797773134190390090481677175467912217648072978913557940695652292519162911277876650582695302639429495721914427811288337839419362930791666718661573774124718139866409558581790239040035492606431827169736182738616558685607916300270459653440682337551638758850099028519905551122064122004119108382770252263432183561109389489007096402161862828772865217158274278728114330745701664072862872339297742847132943010491450879370352770397389756029512127224480328848178061323941158310459184456438438966709946551029263321348484570991915395656246509612714000994997477093490022584089533284389474059504127036252744401221075824702197799856844960989533576413230047601772791289690541157921934306578266553369587856914416036381421767865742550127307609158111277130017986608660580372988802721170671862344069248824645140400598448153652044263514001334277727314682626475353935153439514223231994723556469297599314606560332606012299295893556911544029202340450200677586905104342566659088389401571385535938926947385797320298171049346778402954428426451992665378323499564797519899091824635189297655563418107336052332563517921120285621027367348979776993115743800981983744023529423514386612663783831101534091871922717734969399783650367993659139183248442847135984080296773285285144254097599428906860908559963873989812382520259935810128919858944528820282051601935737166078426404794857363325906750997252960001760177127950391143552447382717374408769555939561484406696505890244006227935441745407875706905130516671270715648101732040259253311922847336934132257408608293269394799939281249154198450132059931994553404032063167922250867970977483906769208765109197738287537629042933695355019496166750518169756735724792647339732661046855835966924245074322734492062255444334707658424338364003981136569319950350350700932287533956018110319111380850594715435654875290629594335282734577421241763551500273919481464223459850185137261542915736018178926295003967335851776385641207712713034164029825975633556239811764522995678008191843304280944464618398780439579933005923221883427185283283242450611606613369310087419058935504202806963987779862080892660521125904185081456199814906745925104204136645331215534189263223906686221916653107588521588537326824284495681235290475645056658140186719977225077769312678491959760811246291699009466776653456650827579998849376425783658145218813380083610108395515974530934232228701995431248696335574014031417747444108401416669239552883868338484126700706658161832112506413876091564119858948592138988604919802114528941903648964729726211271841852100312846224547902541045620992511381636020298158451292595717088559424435877903015298193437001823351988995546560967556801952457297516998941864204359773651383522438118224186419327604028847803352003766094161487744839535171526762688396067338203074254437950972969407033549371528565287664794151890668042412977334616854770703382847734901643112181579723294164654182126936202199383606550390790014651998212007824534004767465963834488372530092411136460804398919949045162594424299559873953057428480891734898466343323781217578027303940478458771112258817405149968920813293706728486179294954487560929671095388345551915279830997544112328902835612054864985781353700669884786472476524461305496765113750904267876455961763240656728322336161656849226808861169324363610874016266085597005597317542892437018529384245213543233149452122254016255763248220880121664965551926053194728414552786619592335923330427202178915139433887716126487189583902181947084675328886339053461066634858109954480611821074454710070542626836257510879235504234813180186232326006360699448427766730450729873908718577200574284652536119471389421039543437303268262544761340551499880054316886540884898752183717820519643614547837851984023528915544220575040156668067887920319326825429023190848570277942309208035730943359175643736428597547371292107397206841886221790721730558713273372721006585448019158222382270248770192284069447035278154614743269536231383964145280357923841199246303246551708578754812554126172019199754506941727397358968308348627452195484253973309745595739331893297956861663312081689481169556180378597112962043981570933696952312372426484461308303849134507671546669955848190132955907110439008558857811484103144771276255866833388454009904168794851585596093220041073394714836712764518079381984852174682217779444176033668814319041849092033515065810368798987415336655672351704600910073221284007081756750884043843656330266238965948972428805305783278683853903509152224527407299605180629108553193418605112679729123356374809296808555613295739283763387583435324582565868487821676673875533174337214131622025360048030096697212437731256091006360082925745673038602902515847690913343666560945236316252288672552786174183376840407647079507146981713913735068726621219186484622780405687124388016749359389336891458793878402176972408847114535245733880982121339137833080004118547913010180517972388951753316775724308642719161796346989049465483236159463470027260467797079463549841517639694911322506096505648530632039625399677991114697661708575763508701445191384480941619996010548759332468663762814625739608910682789705117824719568513238995794682496386689369822614617505282589139922422618866680378616509001786212606404730947792985574368249004134612389635745161606202454416416732740105849828387176842587755111851683162132206726707765278109173867134285896819133425984238300869871030492820682584736496387847811543103084637661772274702219910447581111061513769377735262847643178039970825652859647561770460269629469207094380118512932088568187186662679139448059211815389610768845514178550747867195789441313449685499616846531848785645434615990064008398839449625309815349048463982603922745627780009182666418465464044058909695813612412051255766186329484310565609366625528503561416190332848920563459927117192918722552065061112229077104270264938450090350005608293281379301167250220294890357801179651780280948164866467846376881877966914127561020035702663679947215810829970611628464535415579876922265986842338380949130098586740013762043073863843100229671336845337399681959907147160233185790941874339890917995777996673030757748229238411645364128316537335290392860318831296952245084839151524176806785363816184204455244101031885454533253852752969966001612498983178764616467051628599244948247589628764211664610574058348606135145180229821624250796783988434461171176551094170179127876044578020854412803618896004006934776137829558476632726016367179240133425864253927655871500512144108327166544234007527847372013254622172314968674532739860051464502297368828373816589790683702524652594778726498933181862186451090796449311426439141606676012309355856762866313038839499879069981186611749042848974925296241539522388904626358909428867538147414189462124952892250849599276813351358206018376922664391209596727760070811625644408957208445049069369588438786656396812547668223743632587592044220153452119209712811410078916312393790191272426049653371671876027322227014860466423939478438040011507000819860215528809525113966405337158839453835412367082016354063185423257261803527324362842405794051687533582180788753354121297333808958037283254473154251721169559253245844226474689437329754762602365507378576523149343576332211113886575277878687995158546860920301258868272728314734232050594586866603357259966179532002570402161932667500486893290129835726024702739239377291874460209264465656825929523091233713253464803608529784241433892660091993317933583077733500813105126445499827555830379209763437251524793242528318063384307943348210550810042761970789285268358222578010487328337313719665384562271657791087279709463444006165247467966060088802292513909235906556841408512765115583371771684337697364645220104208727027897090473797824228903013830009647827741436779061158578058619171294986115222994220809834027628616043981430714430854887234067178025077210884281675996909656434470680639750673750759772286179078746389445425059818968845725806022450112168541906528571510383997173668862340397121463466780651078543480986094036837159525487473388576187918332948456384241525741977142535736468181665177282215280125469649880456711259808808969603615955453130082515871101657800684661410690521966052882644086184781971189864809955859614097804986876925124230684097599839110357025790268519335608613278357707308353062272600654452111863901914254877290847905338712617468520074347211920897097204836584251657150672160639746656974466734295955188969122846741440297083686507965421332134610162285140383366931984205596300720564359287506139896838352293443835620172846101571520455068210484470155263793989581597901185160167438282254870372351757922400794176277785517497285699121758225318219365125565807361640746246541176775721695232296508124852686329884145691316071385581850231728296448296228358978816811077315036890529449311140536792987646255645738613632850212954889654778402045838513060829513735527255913255410751842399572680613926206765958085299621074812090815788468594963008377996764533783540537681865921569174999357827493200493963239044759784941234149045732209745491359363985545134098050986184375891443514757838249137839636336152693140762087541227688733519361130154444118873952876732056134822563962742334991776842416487197219975791562730486790742390054242779040174083215098002934973228014067338346716271443059394707102040464741703307480793871146578387644464342977097672072740786148815944276390092395924276624021261316462116098102488988129365078943074262558973374584837491437550033084279063427674941947720207811572715493617146548900432431807282036942712148589049325864817763512138364467393641618319597251639282650923215740214334625051266021006299471721314121696467595202505722353169675314212870018321022462706774613162635933844074826334975881230537053675417499767194375892348712815508267881547998104324936934928600913555937589108222398642419818752009171837913664932408219263715278410561943577521677532820530703352886734247136980097068609378392820838224809508492211215239890697474285428370116015240849697895299711914063075414437279612279378200747641289173640685169289977671224831860869518358868181363877004159424530618093740446050568757613026967440246121525471622176919671375583694175815252213002806415780413997117790182845996523846968441696555845624450545771474348677744255435377181812835125365202037542263770304705557220443132829757426415404639126806975607034467465141514638146867598352927823198287653018221899349321811800300986438375150938659527172813986379873889678696810649092297744028012699112613981467969373564634911522661053038663581279349522151000238312501805439072511103428521384651393022681046274403244555231131171546495874943733152340007631852915449173549469415130701749877494995332387218879176938023740314056725934540193394066496083447488901482963843883183718889597887742869777354818862262209613618247552945888950890022661391226612309055279856995857700667836895288137481017663217739034666090020426955996020012049251461950149688032656180866293575620503875301584940559557862865357067791789147921063201507892158587323108484260863011346157920925674405257826958962627297643118440225448024828652150223346876935938963340931129947394541375973961515326571799855831322440272626912561543399221502944051362581682002930721848476422249159397812507965706715684845609328311189572646311239649495510395270410840424427019680031893027639161730775527543149113134036553284292850353426173761729617851929922321266135472492268722659947957951547882858736900284635152227358115638980273543169142646903375820749876769847817155594752721145293434662543554959734242892101324748525711043986565409944812549150898817698919304400945726643165394757816877235070455979124442768401976150240609342453146183620370992757584627052729892115270017718543406555294781215997656141967979795509991331178188706736037740873672493915590584952634484977339495480088182665231765600354907623099266523052155817395440668186469779608340640059082619512945185204132881818819902134083233288200242797819598479407867724319632831840364896444798937836145284974439007160480763878148213088055569738998416741676068691388812673680707938858632830835236799640776973363823941734318881203081727607233836922152260317698725129172304551992775191139664917774704400400148562884418763362413858931815549424063524998084768304987111813701684701980694472921152836974099658971752798284131840990995846848270380674965303808213768827368896262353911399598833577224418666017657629602798910592676850039189569682917719280945635854833003426258424271831409741152369298341045411947180148505557525817881342740282121628197345520492907813887051516504990203242260899659170488058085919148856832999306961274625880634504364352776300400274771957251918206988317217541042603569489011260167110518474402180670163797134302248369525583855857637092624733088565783369031299569945429838585639699518583426061264431049768663558573118727160610094880385807223737102366817311061278722321612887784918170052860342481078342143430797748131866768450299805299088928894497744501817084332809817495936927415895666368120638429414363173815625566492594762394150331145365387228593375976415542934152630031582705946589504341104832660278181672228026736683249181627855573153813450744814104185198510303275747340754571523848988657740368773309166087070520331718538376359390468843178889779232144489667087741084122161459450147170843500941134287401058591536775009033921682089459954681472064165747050068689716286749498843642394646788669488609656328173746656860877478739782699677748696391527936757832221989419374729274464128563231443786944763213866746153769602668138185247449152235022283198144844573174470385837370927026217642014884847838758495212020374547116122519236946602603868321560708891351632302399424221545427479917078282092142413169657779199911215314648981929990169432467008024989698543010116047920831254015041492120167437484698617303319091770144813580056529273904687364250058177462160833913921150707908339674283177988336934829231891856490257580446117154560165055639782428816515764429798765194761622021857645284597719016218475729153744190286210652954580863478082893340819062458825984539731098342509445027964906227998261666168063582112333928594983711868043562082056909823484310254345372678821967216253705978280264938183770837931794182460084788080812839675015715834293257416498075505847759366817962162946027448073790895418845098321026272781080928452947229758680967236377808769582547561732589282546432222489446157421399020033844200922171991818361999118723681479323937240041568761064515854686355886029273999808133541001452513623251045908428272736814034163942704635719421768341190347477623195300485994400471869836809612968454363486502171172445926478970281301636039360646151442047368608088543084287378449589891038871457583736987230566011751282724297054898529890511444046504763992228084383747876724363884319533420619916903441567754167588054394816300209969143575711813423750521451842721510122834070022620216672150634193460637727493159006826989642091634715897715843027355093884424293830313297628394964825342006844722621467518612202868683509066931902175405155605248397178693812244526681272991732438736948020543069202791163182285028160659931921279258413764058840430157823235535097201216451871557892483820815429076683093394776954667243899614124798708155939183588867572883768963609862026819782541560680853494892186566227114265994106284583651057780099928365430603741769089316870416784119156775099886893997260657018984049461211735906209406349097942276381232784913967353543449434280224850998661999885628484110443238108877845409848134610447275311390643183462147745739024946464977524854220714028882837613124614292972263489031899774189871944352289038364599821500448043433920488161573795815014268720849065215563946957562776975578986573306744944707819108326070983192593152944355346105523562598626941404800770171302785888694242014915116150235327038229818109198107106898887752599324250659131504032081006624846944500281133272007097953086476235659775554297291379009201170966564647691787097477752226211626286260677088139282571983332428091667014290519025298508621061294656106319566759037011353102986743651769624707658655040752601028273768723572821531194022326066081900386369222371955795135358446672001450220922715449042808780563276922966824226837957394570431097136266383788095571387389249076091921829915951789332870577255893721569357549266970553854633341130065880307085684693157115041501390770685710977547783270881939391059707257886000944681073772226788362323745086644513453180093694506915679616144685345710527324449075845885485404435391916159154026504597525931860649404283021531776016867234048832532418186327656657548504911348852239198017369586565965799845432728277134468728028954047114954034177299830644173908106159063339185287154603903940792533088003420141801316063359360836422086312387661141064760191557854338087257718463864684533100751355698715675938047469524372547608444243532963462934842597031017003930190204689552777488579521466533764566483796836557111609974877914694597754164446263636980702763600366922907074474351602669931313053625106879582918268903209929317449094760321184831296354769735077289101481959004044470695750819565712963830529390696187615141138857155377659297425811008371969538069405182916885124209034878467005379978260082759272459536677838400580949907049460188136185561513445604669446662965020373598386038707153484475902990858355459610382311914320191655587527018169090741997615784598448599247776572703680363179774365121300570795829645838857177853801905667805242760358245427018173705814015386782849997826921371347852983978496748758767107287293414237042457041109955639362767021847155346691392044507460029461366475629086811230241045516718977498139459570318361734707155033954717787062408757223293716550221987044110934179204628991692851769379107143420660588361891144956222468127997659679025433865456340029257250345742087130079711250506603057095541419710122704355019542842827908803547196337878385166837602430245572977386480207050738063231265711484794727041808324932518413945005133482372794286360681269268776658139382159233723522842265581092445560167504983216157860805107168596002142230793561658243839756244741693819264756937277729004869964575186781526822323107888627447717801884548369200311752530247622559397808862527615713825918775256804298745857060711404724654655860006382803553711907081025043911345960166776702445242836047358388475013510087596241460344478029473159234204157273626657280817223697460680079560139962311878882730022023015279891348150465561468133165165713988961998330417357512929200564148396443075908431445426205103259960773283627719581192258850454257203787288521018953037899441483989321370603890641388724869419586497136203637226522729244306964156218275116524905380768004239580366011708556482355730486593022581056451140351117915427632754671687818873302147699973570440198152354625823752323767298851915816741885517682236931285427083248021576572119688660501364922978835748490122221949281003416551330300243593560046771000219760223666479378583114143199705783802031456971838817842123863762507892521974170667235497112523325517802131980675124534472520317560478974615870280138970547522475688447500952711435298807995517761990573652106749011870237867645408806568074082885560701248578934681516254916747090025821541610330178024048774943790296380796036073430220141075116358746596377891411811414650956872298080802441353140260984945818611665863004353925413767115191900200515141457303503001531028565483850528875782411415291856617819044652416586247032064097014216749365153977311561384088048670147698201766277231391330146925265174891073907227137172532626867296036238963492584949251702977257391995875802608019243180076382130851260730076448726974010650094143117965565318581970125351392830619302439009947048747133459935909253642920262939562777406373092905902373120822606478425209057131906599725551300288119409530525750469839295788159074915856242713498498911241241900586651908079507242800095974917965365406711506769902685084032132293482814027678524802505590524133514795873890261892815180290632291127831286999950603871304302745541095076862293339406294439682591548135739787078797748080911369906381018893701151192874860629037760533201765919829045845288505265044710173720244184125929937861069156802160178782003325156505207937143058091756757716034332060596372187846559125936448693645334609911875406864683502433036432759856005645856466110677430514408541874950591321237972563754284580593906924962871416169934490556537366261885454491726283922656535884968136827751744032496648798831692581620228919702621626818645505017703072581615232488207981600155678665252610981529919302752133536761187291233521391828021534065746514375958057528057230741809185116447085532580705747799793538715030476372869455057552389575949695789316387756407952181141605004014467390026743363409190426949344721680795872978084667309180189897443211692693040489223081839891084743580267974068935094031490098988173535402961816379752583090699441637047626555601884849447094037268487944285002680124770367641491477403321933774977487010751147437407123750858619854695229509217215788520197869240144362532915426354780611723791929253334161547250536979329699294646150120642845309621614006841822220864197641406904813861767189549764095156401769175599288900967715191514862929732902834573516942169154966642227384478980391266647397047328073878682034347245970321766239230952477371724624782337810262419156409449995954731868525579165187129943664110302619635292950845339624409027042983094371255317840869524397468455338705975253336158135409300843300373062091883979487118553195918448233434771157406126457720095175760422053689305088992564955957500006292867611125688687779637393232322155226422060373302247311468179469997999306531406832635440293658367117745563706089846153906118124968381508155069100184344670581522401695562064217899890025769990485905286138961918792595950776145736436015680988655552461116304943677263210773564982792400437965279840779740886898431654111777411868041771093969392482659137943311381797727734210869276325787113643523334647800496105894532098315289055970087722216438825423024226702613874957961576092212932135778282509497445509683271097596419494647892649089749448374428638863406418770486799323508934819687134006009112944560017830593347532622590786191749370928880010839184326978318707933301855587597268294713445737233501805172281309597023900026883696895089486294818254768103465302383844189935792810495882975673931960540471812389517712291101889351078001791107126143688673124247124288726490168010062514866139063111667651068837811318273283175565322811512303355178385106461375383307639618417922353874526839179267909171752486924526998951573247031923429200825843384757397913077625102013532412000769369992673922641452860933383778842506275415914651610517942298519024935470530641972328508043346650865807533155727364722367034910103507197820026276527809733813025729867107478800911584056542196555512210065313801812084477228726425803618995509874409937483377705855266434735948759672272716552113290615095355652924641388614011757198257968949208291377803808093187379833577934268240002772514858354049589947416367004619926204241510865826592085628594957642252118412370659732138153443114311726226830160294002737577000847942238443430258510443083671608371592103359143220416501232487868298527017529812999089539736930341091663214221735470778511391927758493898535715919102983376812792372743547932274077463997124406960151671155316612478818537771583595107099262348621531495278055327314113937225462121248130510930775563885091066498495035583765485456011998020414401334340644557688860703522113649371598691279296426215624845055936727776294483437398362591381857144633130149174550624858676825607587672289543419153717221322840250592574066114456314904251010627342340029803007189606372030953084334511930998082422605258972692490220713477199951856504660160558668785588602268819356938612278942873298129973524179916984564789694779823700082335978725082555915961685022492484348497659656182193155524170785625654478704269341447384719242210026140151116448046728146693697695322388610594175914317091239289207589091170641942459121169991840695985605522201145365738664992595637893334507359499430087739050853142570830986028941027559122414155259135075725243177467917148682995999741106053051924597315444635489247056816682655903530409414660287804992736383004368837092901748126578150594172420870741326059033203681029070180381225111925253181179644381054616639249032060296909985834091727739369602665043761507683031056850237045076084849774062752230308415863947596682221093424111638440172807224990566046527143953774866035284058725140104746634258154869164828700641723157925143265795544957351887431253841693603085903975795621639251975041864475515155622410453951522259920202179225908678957378148760708658744403680832363696518518273388539655335370199002880862527565290859632032044637866375856882193541105793347599937099746140406863601946418266875911180760485868984565128165208534020938664517414006986389871618659579459507421100054661860289898557554829191409046426004496994698300180780922037299652205656951133011309127220629884131664476999935584691972260470818023171885323810692472315361077222574353610782525955274866351039613944336247279017816767534475639865174569204474510320838745725299792800277633548045362933722023718582154345811033153797625371546495408194094028098019896665147162464895014876003716924045360259750541745107360522414864654211623416071293438398978609422617007978703588188898707469566626878504472048477079056901045394815478383654173599174032941624691008286241420105836545605573953084610239687081404369725160580570002896279392667752936743814567977211844395535164472255894947065406344013595489643769306459360011106437105188682277990768875701547949401808673974483769607033612759757723167748802436787010560762569693966806857502898047824135342432388656028251968846976239033427385193096728730613758611611575784840802841663035325511957482060042468392531914012613605610366572752261237867887767559679059337570234325580909558644300584681913492095095598548221989230609581960823149008910170645213233555309593793463537259243407971057889740607893867683216863136561681304141668211370889703379810757496092642676083879319637885642183169877727387584909270855426413644765585210608375330200136780558850044187241091689802532181514337855446345413810194324278323308847642918538458190695670421846432447181835657687994144307838737768893649071297873662020481600604362477436260378508432611773549757702186997676053496256191361001897905087136182811326115549680196317996636685548320015535810804402907618281775297514153472262167839098498834117836766527320418736731364968288724907916958844281325578191101475407934460666941414395703915714749069906240024747017603247161605598240528440622879499101776797433254993874965879447456412539337855777526408722280287057450465718701926142419183081765834899384702274144661901793616518892607200239553367834956938780295209301919162161115146488609109718317851954184565265637598946987761329135840239271099952132183190591231838858951183538393727817697446560732424519416138750297650807731239247649806515098412889780492797805719973380250776126399313422678169491929806855196193954135648535716017273748729781972954368664132066535148891264904710891841492041126667303727867001625645525975278005863058545201538217126241249154732365061604259727470981541866148885046423450969742814313674047329614415047740884904807685732992748726551668119781974825959721827552669600964810518053240160308048805000851429990608512248191723680999707264286884924909346068701757891875154465815742851262688496811207053472423541157783166706511922088486459889674511150621814929098833975526916975485251724528236396854878813387353519416701429295870087436397278377402324283404845098740565460919139193123463395472686810504430153827248513294769159085083306777662570612128507779986050736010158738123286284865223040077996851573207672394963347034018368901350145946208142934586345298923486002034120286107993927344212103574099606299990461641015110921641984581009955035882638298082256294855802618872193003147739728740437142055271895371634498710235165522565156511133058650057067021070062370113498688866582885550178859364323957483657645527664423049987801797337332043105111465810632901103690943992442798230236596467448131237283372108230029852847502543758532374391016708814722765381340351481309210646164793331056799292273703413475322759620801047124883247458068952065266441588838860178400053498742319657793304738723354984889699857750489046663332458153961518364814117449028375212130738578414013422522311979861607671365434650247928070102879701702045956852069598314366123741492905436994777396949134515421105423433638878511590559006573749055388079693703971439286574011218447618969235630203677338081547570419355233188153177111847970274870528933364687968731123229437052406930894363875389812258425559859388739249967486304555339174582277961677212209356691687469297397533087308836204761829097239103204106823259812924524830464475727859615650336377199676456724687700992209812393116030035762087765114477926890417056065040673077556306173500998810548757600173991735897286506420096303453409888288896860065622603201119114590677156196287989986334859214116436063344293638019999654638783241395762046776699722127593009620839164005132494071643560295391240243536818055733088507315528272914956370999002008571446072378292135625471751473048380238972393145298083465371321563018113111157043828586163273184698215162961615374651956558087233268811830621562291000008579563478845247705459764408974750402222431372372885849121112093886332860353363893315308412495443068043858731384731757894394001846527310625532150237792257186172161255224033945259059080411218520574260677890698413005379233166711127900443265254777098280828613565483918199421578135307442610597899944069139901789746124069919322231632821296007999939383013788679239427790199305723235285699927947617093029315191192633257530688408387487588573631480431883902306712956894854307356037868022140757783574964680764242301626621689111029180417476625271807294078644849664415476560537432496830482753729892995215778357269988928668676314806057649848914468286058394833034681512495347883359281288756494415993096352992304691885642130331221200056233825175290607144299522859929202555102163905655769602801720963176878518153665002611989817669655443106191261730925443073628588399233044146310818475027712377730162744500047360509993516179954929102871069191620597644162345440356338824491768578698235414554886221809835708414068676899138990703648355162761725849908502875552566979711763635790183749879654605190689584510143532741512958859049188101929221927930465793186516746799416897363395072711534438256489680190781562852737673762703980111718078060151179957571226531663237065995949283955533597144597787875333009148215527757316868926810554576493685383228828517968529163874602820304048161153312455005835708881717554327096678515086014345744861176850090410633596475781324591448366649874733082869793452996509851884628081154413826710761884556268133674540366049364361701887014543690365436880923454284717521261512916651346224324548079761134085918007448982525101285434035640890548897731341729117639790158778503999414187479750576322905004589696916690637381975690807032237023829719635971629198933209971610895989013950087610219474820325535329210047234093434037445410843558439933863987890975044113036786766007518047524309109560903605200772877158853945402539293829237163902967697278959020721605640304655351731962361823045810513840558714408524581992453032000008115246618852036058341986807143987345506687857305855889101351234943850924122653094118401605622634739227674197013856453660885197224494283403502250304006467035161426190602063524769804249185884313218430812635763088014348205876438925968798085941503861774461402990143268086284646277984398749389096636794785304348451053026043837130354476720070732115307637252441179183637108390077890002810695859783719638687925034351578632837788498723624216626642339545691182796175216869820376173845534309516082800379162378065838552912958702853705604923588803682069898872523620195726627292667812912683166600800911477906505831444203841414490352419267642518279209502644392435202719407045763609982174363457952823177886189396992211606080387239982022829909415249064879437762856938745038004626754319277521458037591818903109414110176664157912288629490168440477049384361289550734999737754539504423528064221404369273242549442490237623085730698216301376766973430561077933126589317343141809102473603768108783677484826236628625876796038159626828209095618533633678138563349817421004900374353623799152899819375913747501811106675533405480080359608597830703182855828046211069921607347089428060024814432127653004997329879685047838157849806243148094056523068858780930740638660478661432247830766526804725250481357785677925866757712181100345269320928886491299532791800749840695308685148839818239394410222478810812769571348843323692105026905414050769031246974124759792969196326603493110590111009053559319415217701914990277689472403873325859827158679268457022931541264293831724697093910961345023632695833331203691306638737365506029146267396622914551030432379065076953005214311136552570288682908951472558496835406396225994046313484309202335878654076014276777870046024561745008408698692502508772652451972007821662017062831347106225035824795971300114083227562726407869190063044668408170539677962935485470179444946886406547448519642151455709144543886769377400066611508681689144170924618333710967565750306701040761833125758089905797653501833059156553773923876253356410636813438421286715242163805640359646742929154478092521263678842272696361341894412166481635538407835174555375587272717326585184232716073717793115241556054101742901286972528809676376618997192161431993494075600460467093800659856345167701510286088377251851763195740527237289048720695682980617009211271809752108922139476770481732039177031373421697813023853335677611345391212921936773857395630349656124977735688013106707946173817583982674782314553031358409498048571816262359575379688821659666539997863304663635120506144829529631809822353444913918250981201403913914801843565745015066256737389624215519214178971789387656409605451214080917922990134497806618144906481936028862146319080561551174562637205485971971826828315368296206419077497467804811603983515793550880914311069851854483175526705135096755299121376897316108772436621570758364812395930311285433483763635305358682963995603996626656811989249647355625179266016414620644768586290022475359710861465800965486650200268054317827659781092905886490333972843039026395170790702642151725280831193580854097923733161516531005813892793131419524118504319989222140389729601977386175591709458223609859472965930670923341043881696303281573890846290310616374515973070295157639210351421513121368323372608056790171956034470641971852587003111586167865164467158103969462434519424344735546085962104568743501346009922284288681290881637913718393114965951987993093697160688884979178952226585233275232593119101559977140342004606691821748045589888621718766522533176405051546689332713910014303968369310407986947244957429220349501887864555611665408364905690754721474348979888971189542241949532984566060092137406838475050254692354400833722617719800573914954949363986593958965661251318864309845964191663392364639787752045619077745671692750363685342405014880322576138155602541929336271241271376104853436874584928336810169160642178246125530489398926016325966484018645441973563943781639858653260132717339964780388752920738706338820171672741272267096451822552026182674416862150577402067312619493158254334110993981776773490025508107364362611025368952110814924354689618429125800785148871426658111342416472195156542529379657621728506629555065331334164021008560350130284201762498923318479476520372677608222010509084561041174332194963511179628471445015637975681105650585968191936587967636372532440577724976143908933235887838412317155018722910389135159828821565099552725787154803842457062312770454009145186640126941651980047710030498170744144500340570294287239470954420789621875184377313775029631879228830891560462881605726658706365914445993758444422037852415845914811002987429750840688076083940666715219006404002804009785750209682245565962094546874732522158091481310241098804009940460300445362013057139904467569224167792172180384666976386846422399533145051924587070539020253461577845566966856581238291207842987208827895308307869817393338491576838745998819247705296386549211230413026167684522286151411777289040505252773555913698840474475789671273794242361639270269919441794008063446361206681283422147779978306986987917362391640648888319312403743267010617633079333792745368048620989038997813733875307571980662120542839061304299456791200706345300929740891379640640740875522097568383725079762477983952632296028083920432978299220833352697422801022204260232563125819617329922229427541733024048401213775663432082658916709038926646749995522180618515731180711434717086231561818670822966413761974222918150897102338782037515401979990387812300610190738030506308186405177341182538269935988793359247418613331986037291863982191137044012760705986002295380315173782321798491986309505253993173315141510971036949342814412439287673086121667444508058412028784135681362467029474028176206714078507786963481997114258645770400939437274564540674881397331201257005472944049824196407606909459976939620877688724749069553812316298460717727307101925440950521833110170116953787616533680654139833350647597450784546808325531784494354416481282655216127647578700514642022997264867950532745902619794067051596075079494975952372428282185125112276060021653986918624743549132230982855533186977278539049890107697172507544089754150772898158783453388974487064820366957625806725338980793862540087062237560369761072774928379086114119599191617192559431956506425983308042950855099249084385923521015364024846384613944845955466267566802216112088779849259065052435060397682039088885912135942073011997789258177289396313905505382837544287383649686482413704351875230361636433691104534168842693744293472652586514316559305908448576104122356740274938270199659021338042959806513327360809256313137114620016867814554205679387605196056367464775572731659423199079921632222910719044289151494042109928037089790636690742823302134442835702192380994154240637100104584567544171282055033726526263295028492235648502141114284727314598308823642646692825271165689923335612688211876439536006950210920041036147306433026607127950088495256113125313497959248171373748173622426455526431624551555215421187218354220885367375639667586723635324081418793768542598319980212314036408714669162634113057812549352040213200895481948026276581162859803264220841330302220349318972422364251963419795351347374962501352901446681274983242540569277040543178662228299729938140920276368272181095445892810020308945776613366166234069682792858835147132031507898813639269944734777014735095811927996450134805070769217162420272064043196930237120415418913260598395656762770809188506680609895671650328299317156174699580681754015895439702454123822626094175756601014104855152096888601469568932729090541045962042686943306441177923836982274207379952692480770217897613235018594494568518552997004450746694217008982161643805254545720656156603803743916603212703118897018032652742100253268937084236851751630733663585930055279122100861218582573597353152751180229864515928920578391294849813793615818646395016225718173821665960688749287810633480201714044335241916116030560783003264249174440371772996015953699321609114629820231805202471945770022479536097055804383163230493932998111745712702812370389751231229552583713532245214254589712768019822230400243833204215084945987434813686405581249887961904432353944177547475125306866036466847437503558827280696098287664451145861149898367680048387120496421424361836673815830519115130868793608548204424637713072422280065521217354134972365883054345143005905586944190244025014692198848680696377468510006357906759894907557806360455565108883073718493507000573866951039573648702685991275246510492389017795972437305902133111422679654753732729801022016549346502292901073724144317543897231859167756743986388470030406416622553498279581123072180503033749274760282266331725157995811619797133108989280575585441764634213233918644829758023908446269197369079438790028986135885739636255768324494914370289065954091660247536105036737546556603171406123419714721664600017508528934961904379945609990087462681258717784571615211490945375830194266309467178516363542558078965676098238349389004178697024642305361743174011509562618141548554894029711301602262060773656391102577508248886189135083556109449592956802424716486782961031173420305177810228357385097226115679494155900803112235948698626247992455507801660636541451372542933172101900909927103128453368509324689246877077788001367023598302164900110291329959898567449326367497958061016291043837065838511919540150013782633301308009924585676538738230706107586788863342792901905461972435461177350680682310561176729912187577891658963252098481970191878887507663332812809512386996615460373112656391497601479712813074639994012228467698296041730328395570152267748108406004100846035355183257475123787525619143983028445414875853177057954382320804085259958708714485200176789958962803049019764580138003034919237614024139628900464544044286965754421844508793829366517615923128751893985574037667210156203623507116339088644104718639034823024103273504147344494346476776195604356106980159954343685762041776539813909520821010561992680997297775405072280557959176282393384562986796259653761631687250428311740578452699564823415598321341181425324153963163409018951677605124242762034838708774693530803904532788192730157674915792667240725128502596437703190570764276622063435698262813769992840771340960431004953095878694073981149133609825443151399846468660158061242817728052261594271829974357389173570951207523813742836931612493052248800506947649626082307528048982210440152228705052176730245091654861663473689543744626458919501612252599892084609135789166085674717597481022394643321939610829528547728858351261835701416335592021906995212121286293239790553244044075404222478779191950579907308992749455569047832425106319517933635171217004181321922999658498022815782493283947155041594508667473192694014659699017603261650506062785875836998775212180103397949893488684652663262485586365311590315767977235892842561829511054757376604526494815284068925675726899877055006875056985155751978211666801503497686309894860453676588910342091046397657998730157928850231107390862568940624799458184286947534643128944063434702903454961467493284287941134309808818534236355311589085026047194298629046447253882374690083714416204999223193620721178338105427933555387828436682734153348412478389649524159208057974491003215706023973107397114519565366682779232276001132972453037521289574356599492212182208249737409360921073093632452918653729846468548989759195260826849898713645509687040346411599603823737623817739328634838387052547244017211602133390757254084258966379172687674442875082202854125680405223711482170433000399971356115607903848648605897634520225411840973304318190627219539183938929238545651649198836331542111489840598254283111067146706361065867076274828268129069041577216491537236100306815210178913492838099559117584186019432526986157496522986657902970462524111046351975925562977458838199546959936987433298257014713540289816689352180707663799827495987865248765655826898400166026124674511879428127763615864143997465521052168886608133239413765746793065757437725037456296331641739501386961413343391532818139183295396042939098566179660008500784904373270876681397036754373261344484657952394515265393061604887918431021352267353171730875368032446974729622853871861204059425680208976628238071888185974220959630483089731202151922649038631188005284936596073137373421718733820294267863784365625470481877385910667561126039468116194037170566284943530092092147893080562526363794177537377334678611667555228536678797030116615628870275086696544642210085431183005857309526342293012233141355604125509081512675488784302338381801933555882471610872496765650951491487590968247190033922033223015311632046806332615819443969480934784603572145114944295257637420538343315459795510527123494789773268914956356182551070779404535839108558904386888051552484469256135346017785363266215672866712711169647481895548553323593664227254783997476871851575517359696465183484544835402437475745645970811379064261940259332178489821229900405804403183168020618787706383581307642073238759905267838627761043262281170204899261212860446435717774496273219946963261391272685492507167976873329333379768343785513625229396531779096715721599274327043230234553885047146623864806091390863075053530964754230309974573902090741781922648242379112934400405289804375221319572270055984238520520561003595075963249513329832312910851236850079969452875294039617922457393990146528224531370842253888352503614632362462071800851027461835243525577635811394376194147186165322415831265413909764988246995091383650681436461650302276789850208261997505732120620016606388839987969297920464155829166461726153476166733227070281839573859236466822879110367189225355592445441221791302399354118697703169581637487662474096015583712973368497047620815313456015366665179938502597892092889875155959203025747234988866060220742846474473981700517035729556754049880372216347911408317268591445754975138746879776166004185999312733272499818551047227211306155462005037140017769500989116637631347913874118186492664472936621158905895852497944023939701993272738325084704295612544688918418617990818412220595222656381793404211879402155119596902244250067266661793294512158747472164988052615393783884235292626451607436407727123938138051650928348207142459899330980956733723099787004134937653528323843001540433562391295572359714505780858569856992108893820027669099040412637937006673124273291725129497603477960409274080656298062085664441079885342033292708568479060523186846738018366318129149935336209134231733578341348749525639013707660547128310435463820824926509541132141086517570747393266404127168554093045095794041867498375364901963100814088313155093053371377549877570919393237191772923103692660057340386549378719553117642906611024557973582931040982894989600893925046500501447854248012699575891742674798336364028024347868643484826788851509951976590097017231035536256602669583793485384328256227922623181946201415177238888418032414438991086015095864074165458166230612711068936284001658801086788431363460377605486288140757445069560306672342180666395116979798390969539515635839966479278925021732407825635789161053764908461814137294439059366081733486965444808175597348547659943139276357497508214255968845327639318416207148943383183915321617156551128044070144425676439503204178350716500196805626042849405757978726881522549998347378749094580453012601492721456344475262719728305977484865178146171322196867090085158569169406869156510841127850742805030827176342581488947639892497791224287356076773694297912863859549670804283641037145778373470948205547831584739705005902913905083427118307457158992460856844868640857596702119685415166417966900087333321939257225855510091567117846180952412282304478559209019417475323434844722676193594855186526342723179282273110770075191917253781212345915499761846209482253933823211215177194878518108771195999664762146026518751939314697466700189894806397812226660646116798290119450778689387388242596943895175398548518505721846137726147190304684828934538162192052994299216450734375615660378383939349591926100988141066634054286999290384594185881882629498038249738140261387917188042510762618244529887063288344714302635296930550629952632837075933241409811012260770728046069595342269454107155213350534495161382838855363210499405777584762720495554892355439536495485826654097359176045262848613801088953360825688243339198558110164660728099718195899262185752702358585958024962626116967368026485857855953480443094125216511062039441163052323615947952937967055749437101735122132730276889277911134522139990815286005787773892125276080570931211644218672877518120492189040656814757802615076995038027482992114839083236582997861279819233005112795009630416053745052278547445293329712894415710633564818252896057971664355251239871971701893272637711029012394167796449703024306209845652607281520542531040807219025453466639651827261445436999912204150325313598429034520383896933652551906966923039393844903756202433369870988234448135764649485902441239997668021143470997515726932673060254928896728412780653004273053260896031260501552485959253591259531062923164044393640794188538223223822631020143566671169292996361512020509895477914230710333357286124895291929810650493067904172792735161050157371741563582719649857506347686944683449006918493247658458650171501017601143211200645005149017580104015431909403407962109872196195294052550086848660550393676580925287660550279930306717629915858462263432982896730962349923833916085539540859894272179139816243609880208219598569111360322174377237388207704803511221039076397392267221257991405547668744464821145897910580694771677833464458072728526125461158264093198244652443686958926701783768360005635260456327178888192778922692973485950655942354927390626795144591150231849781747028738101470844091753296160699393116266962143782396053039823053306837055832900398548628793197169044041263473466372289349078514073355255439959770121012219002667972910775501692804862275467070036607608241605523964772964496886326054370228529619061008657218960843152339668462507796355864121359983013391095787992980490324380986261862663191703238997671498308590913056065717143276432296524624930822309327198512041664655134645927731525100878637040186377978263103234062974554765866982557438448087501226536466907670217594173461572739067462410900663383132283764882705867160842998452940827627310872043126979632566536383068271097890194007017737638599292562418387063085437131784913379935160725373373746802749394530528673935843655401437797591521824195179443951799962141660138155123620269500467072624850467313848718622137672521028657133452312627614247472967835286538470609665948188090549908664717761186589174517336609845424591853029820916282822312621471107669547770455291297649387062088093398265138161482671771211689446466348553849525752975384705745921386815362712926016237382486888083996087167154303734613959921896944850970289681753257655727556182967854826981079305849066814988407060956494486136266635909716297200693140927995359902543837970547982977810220297816324897391564308540755636967911599940803278444433912247339472110219998502161823061063094394824644324285159139371493061458475420918901032312887046780021988107973741357351960771094245376626014766995438666148188028148893548845525168489350349664290159137215371610933811960563511727156642114328555905730905232732617388692636014355981535786698786701682205646365503728195692483209384675079123975427352385504657262452146356699169427598731745365712149470574510825071207951561538252358268088869201265347556586200698838990193419658758485629801173122543323549302533264661090446565831806807294648147763100624221928734283197155081392314687778486101181995863692579730384504524588254299909953158130532158594366564589251568390839875431148965226001261477033910819944283408472011998767166329979590445284728374090506282560831316112771259743343846176176944946609568877627199582180326536955968467563792330073148701574311981622246075016421309829442621096848717944218713762067039987555239575392576258831203679669418092680408850859550165778997204090158238752960500855917076529235960709492113255585410981310891030858680304496449197553982818448568470443078774376269900069169938437395291484126100456098678632288577389098449126373029324728976384807486269584346337944209841827570609788204925338678009411314968624351087276941982491234873364434566110673697026693548073077312501730199066196637549033205955763136468855692833303720971221907582588754427965952731688052545222091262174560169666183362717410553897909539822462443872976626813780719174289332097588719377302632813977374130034797741037375941413510972814156378898575967690529699984622734437294104341198176193360949542328811279732941947029265730435565344004987678953518375530183070346579989984478086004758350452634314281075092078268145597790349537673972155941421670491816564319435277583097884765559307051103285703974323903763401849557360522907914571092322094582469174644573128273790720235284761063345572581157309133198661256784843021390208926019864966869657365431485614614372493254606722906708350914496016248083670191043469534749485491557124689127348365694977314099787655606049775744944358043532644394711307792762915585951949656703569048160240176209737923942483406969277918331118402588421263654981128974114965869433623376015466375847935540155771370128303654560834963686429033576194294614928128625193610259869564711943570138148306199458248528069084258631088661611576365813503722294170828714115145987114768373291416572151684860350432724228193481908085741143263655148971117220309011356363456297274228586614000128992671188628139100473750823778668491724960039635593319346881353377358358563614298882607539245618752944340519975782713243555853388848689669055226188416948113336232938349716409004715339613934972064990963035376426065807827741246219013447695246727867695205444340445571051253599565143786059985723587153779479679085704096849547902667255702666413918891765000882374265380291200421231502772122166670165795247054113419968198154067533495436680271097891942207682209585442196242888890332869385820047561962260616260860745022628664994896191569563117872497074239221271996960731182394603030129063832763742698047709824225717551528673391927731526343428304862225769432062367009220506800883526104783623864006658205001366194667401094435726174792707932371217054772364000987358536644904706094411487664893627403344259368891397470080084202123065363161157897356962766870166138110500485677471141989172718097505398329756622674207383852218991180702150547906951250491535648795789375892059285158531824448742507761520292254166159198821208517389504878295356972666462913143042725584998581802844797759297729078255266261518028789782082464909346858759268687040680716634234606288840860959353871647803208874736894367410472274264434730990407414288302893188991594018249335873830281348489961144980879081512516418140559939287354602935527231399372536026827037025160041872914032148919237823593719054679157787481016688353434209536493743254040593115327864246351917369049160333109832546248891584887278171996939292172915324837711137239649029174609451936592472426258884085216555718730750180048215019726093341199954231614469805455167627265546210520440129926451837537239699886536955026857079610644306693517445601440995446964019771492392047036629987247187750569583153290296228437069750605377012490940691155687733707294340621988103731106767285278992163842018986449863830101847873141447720672796279391153159592727694825417653870076032403863729988265329108009746046486366916856143943958432418509149133386296606690939223718122868484392628058711132623176514151142701929136146887679986891776039762983834724017822723316134626415006690095888146858584709708213945209900626475415579665714881367527248124192021114302283508845403605182208070721229728138978325212330166819962854150800438091937813372687051457733040212977501794310303258842234461861422379554929294609657434677867075087168577784727894394552926251517507715778596500718338217139710899169164998206658564062158340322905019577156530931546475758342535877450573065616099308819913229621817485462272197088143066867814500948462513449189367395603161295050178029960449555972634655391252582426972243800038448993602672148031483723252972707876862455024136750276596726204687453896476172065163083763588980702721453888440385420089423841437946471988362433857488071915314516730993677039732346064601912777803589479140224373502297419992078633034680725607397901466615239906591084812934241439239270168921416238931071956354900348398640678970437486152074112266392372311767971911613425385899016776168422912478689874746152373705003106567398946440241445041964965932568104405362940570214669171793215316952421369137871061773987607074623521780204172302587888511156928117333061954580056079851982577427636103059372703143784014249869750790444768019854429531894969427598044507117077864603314152893596441941079246280780254178846294076366899853525004564391483974309440869204873633630211127524874022328127354027924650845647603534097082715050088141256821027982080853313280158585747866688316588454139828881895504389567439557988454822058334098428953831097931011327351366913855448223481127234708403001363572858195964895883721148761954971451437418629235778146085365707001928733031078453345629262375050624105924319648304528599610450384501596056625239577896642909881592297107193261397151287835908157967574419187703637424252049588888577682166483666663977644922371817219161034613857911513840229581400018027196941841858318684953161323762382821098019249578353919174563367728778519031426390024187550645692305506659836888979536666054713873636406809371381658796638724156373758292885113269227258570293657498059361498004432530599360035290339651420594270779380038210395945503405028738125182570640981385986910775664977180615751837295518392836133275392558725371036342019182453396949255782322095787095345438385683990616188330720485142359587770585819081866003134873776804280351754358941000730089949601358154463002195336083466599693281525329122653047585198175856317919312790824719387003739231413139968782420525434990496145117779824381076720609640463354419628127407605158557216153955226236977696325017514984713403635438197152756711081071823911486102466797952823369576922854835815532209510911121921285417754938611474569933546407505591633097574690413203422142291868476041897394576268966393405399758825785706707023595120976656661583397556158259720261448058364217545587772864761951556539123200664965805564952797953392375817187408024296138500288007972228682457049357285246905691005540536375605451062852489071583141207699702773713419579974471760473468659126487690057449157280538589607306698449274902894069481471557055807407320668366719426836655609233051319850356631024050084000753326203627175296809665820530702522271865498603566782653504716791740985459655940735772403766884763220330750913928686870958422633527298727449164188640774141299288622073486756287289770687516852965878000718401123987710382887876157413030472291510921848148104301769645301216800487533995179664354242953023156490258134761686592753415242752901374261248233403422784969329399410367696281714015662621996883892225181365346740510663957233961460848913339163919869071390622650189632187445620062155342770649005057508865330346220184713650727434562346688878669139620263058382413497143887003776623341375955509451850397177004677827420748041326803641342618402707901921199336954512715634309339162892965585291661118510345249208194598976268410437148733489012513176824492154380716629849926017841264730017050453177550727848940438603255661402942309193558946722531476112410257143677328437038671993489736151482491454419737040526754766418443079081888939772011001882387846654672250717765400856834183634421811176835051500178522479443637606751219709939193252723655100718353750449307004398916286587968530306962817170805665362306708105121028203645248184512318992043205688719380326437798795203305637740766762606519827602125850607990761112200375553554821446041197674683880510554353966117024388385260820807489575259914038097229418826136367123149268390181400276611420009212762731920992716190305910932256698383512618009905544541072666147268905059746577377669486017896008739377655608792575887764535303746027440365144957469185473325959669071983999430267808076598805290546251748520883952651336689059630639948693160016153122727138529043480144259184275858357478093768906979401942778896814871814297229432741825282158643078585213489513769814310013796994889599700774150424819254841578902059253541407428952007701347861704724719312325750105633261737288301166781128577601166659047059056442082045909007358882705683353155612327774351325282163738165245815134009210980893797307354254833574010465581218457224710369331206883926924537023698905569337682254008940561465826922607453291453003068059382004558011612404693351846584835020784508218185015277517635795799970909555659432831618889275712969383873173515395121169479053495287881405621105472405603351112532638202523424528871347485733922391957965310998996086134739464978058893795802303952802988635715547855260367524216855682332259308014073406199406263845554637871014474086059903911156647413172851035361081456713593377124397256663147732953378303346038489709008402388364910306911353535639803910871786243245245215285508356972292955888842918934936918326778143416878122474388737602717132061692465380259488523626752490529955546814310011180573666390480326182967718660199551774269465627678831482314709645464371961024082617069527724403236659307460288530364164016805582560736938719803249637405859139971341457353568529074582558234516444949380764655974606140232898831093876617441085841577292028300225298034179183035562858268771024415474760049088418838326954462794350155106044408250223709270355599338020820312848674026777099113723986996411610307565625695397786412475155838166328521632465429247511188030588073468790983748997229530829999708639533466919384844224776402385785571083894941339027424470614937449657620151722552232449040526766152569909875233083847723625070771208847955862010196537526722765844331486725142052024141725297400836802729243284433909299092683223652054708392291295822861745585514580164005001064641139873662495263557424403765733479912061902624264757330630708284655469625541322397429954489872597186063801074026912323687247134519137166930167440983493088682446868945260048147602780692460558582716092037532060195935668826823690245344915918758749103429059533714594232228650822359862482285773896781513684557062857768016338909022625884150291429162817648721721587586196926247208138821615006101403927303766819195832284375251504455733312914709354947349692125338745127844850084207936921084865480476657874151829540869896993544964311751185436555326289945967010774716216318482233336299474940854679803592475235709446356944881822219806836388042363170305399147735134236929084536795144255238632560411127018155233998072484168468446730617578662637786229315772411942896780680787724326579434095612704520277633924747597707796677070026334237664770188324604771732930610520293494726829801034532111307467255210206294956520156614414803842588207872661412857041004352889823707363973349317632672187879062789174571390899895088766027473350101210515327372442463325621392288918386169285041731377546806221666322110637602646137472442979308953761509127665528096163223336670710494184740821756373332748147661764358153474441617862888613515364770310406421741975492689618277523971011590199022120983946789434843292407168061327013013202654145809446590971239169337079329632377891519249378593031892462537500084619584681158070822717298498356961279198831770845341036913715719437078760769774466705585614030893418778150210686655227631999571974817089137732845295770414499796746282355085723092255435454778053904747709551518967130696752297286850529823120228045286857986944286501158497804378974731480167850387471988753754312635597064399992710329412637489422050244756281417751896332171436556124109579308935173548797940086868906990843408604856620034565148094402914959649392637816719298963769338531079230355866958002014401061070371475502735783198119478311811054066591551892750602220074737817912260071418057598383789955741219570703479993291938624773771214282279203386715435060043799405907550286213024368366279510103282023938580911299239116429191481058870771786855385401074952406615416371782408415527564033459592160707929008264591307594077182385035036371023419941097931391425608815293433234196791240628003298809384715749971404539861803201343531474891606845156437293375037437936739289356725125068949098232826693795419573695480518808982359336521107697081417875900902483341770780195272312995004323851558348794994457351148893256724340798269091330585642460840248174756318267255284596963283639604699057761852096113752292562211109740579468435186905481184058557463557855319334892341524144595417136981212251964187268410260285787421343832090020421331267443456214634657482140816793951067856574238042256609832421101660786994917196827830642276329906237023293476217621519150859105960005787011390418396364752449875706769806752955098741437586317239241005195008410843469914381606405100450493813530607974947860925914205675187745780275540680925624528202357128970675751438374415009011299153050227873173736160168675968295117353055986690299639730983484260165619885211757354590369713054168526272868252401805265109626167465425194883071336301918344946655602845745507783853123148547452550659658397184142487691713435332303714672732769154974654785550344886096169100942862033290271877260242376236296298568849884832152700724374529874743365905195889266548848795914924164703704623572070430045261551727225996033485103057853207476199877135899486279422400962468280899893446881654055581824774493962036911380742928502540826843334603804040215172641267624923723846410065398284023335138484920435523607934385820666234819792483495633407889982182505926985716848775650962974027511107502665870825045981093397317254582787309992758314917072628984161550135814544569648310757465758246371513507787228873628353683374999466500796336479146271525160717099554372290081539971901388152310235208294605612233069263607984735840772055267509583406484895322605958735702029293969642001273080667621776393170694062253385839294144550983298339528320858466826347408251656319454618991900578173037140381284915291829319228873432150864021163927892978185220071126409637485999942049737461876193667660744213021856714225836438776301212956478849118035626062227081443786010249368066381979922188568464379333143911692413340159361692941541823494957684919347853573605853197074768018545928920850108110337584766476826164509207904105105022528452656341928824788635039689235430129004516730098323685416133362680018883901009748457074435996268512971914142497577718997730573776497998346772778934445740411533950222294015905973114843214981258098454586706937102753201403531843163882844618912383554405832383872518907189339618514629986689666673761602931650439468206896718753493995950655234241768372243401755056828806286324565736950103118946124308598371304454937920491644862645828823014312134627660896724550033621922904678119555925686065168751537587979456056277356486481132994050419585233737498464241230586926354152034121634046395088321367306189972523988666134352534582759288716382330360593047190393059561988166195501801615774532504996426183074688415636109076140603683181957953656882234590111771385510899150837783476415497488481827271925907031690207339493461722487200267519614334611579635979026126035025644023648619533799719852817700075856491853451967158828057252581335151992337855963125831668349095193343464031987433963867033556165250174327145302086271079236348545294838421619082409444787043111208201765554297912143687648996088387451186377516847968998670186468652030219706823222955848041502846334210850298135221289431735806416579079836037001612391906530673109203124834610667367116786488251703656967045751595627456409402890614606967211715669865469378000063931655559770945949866157581134561735706409869651103915368431581587667769667860625081790915451024919144791986164654245895471716395175870367663116742130224156745214316217485088703027303732576766479180610005093244448863614958869108096289881742818767416876419755425929617538679954654316641184571379234799768528921878885368437124866944277172278452450978886586242524911274517997272633524109379766848666712562148915341227871075313418385369056910122474211969870832481448108241204024935636667463041583409433423572186944282991013056826843247639754536679226747223537378091758845534980443377637883279251059639360061167488162500924471098764016720244020849044406447492915255202759602064384473300028869105630324422392324691625234759906519965627769833724515294188825207483397009934195193238865171867677357499354436395076491010867825827317520944694261154244987328070489696939889534654042298143154824203510313835926976718138787950020906312916879667659081568768152222645732668149388153646787331148979631483280485278479558028122320301248565097726632453023636667506254500536316743416309369281417909576693059689521555903450506216766502416792500336790185403369700063881190877232906952260450757026709105847425019897709893690463788303734161169652265266751140943048046252728971811223758223797847753526459449690652790162052223296017836267222554660956244972635492550859462629790329295893173832395513653109489688952383141152091032101643337942850798786908530681633418275258142170428526549406840024306890097857040670695108913893159158305152740497836974791817839939480305386558521680288090112934013710569643217689590907148295509929234815864556332784544261042053863117302883998608217329931273684769273738569319333717900539458177544720689296936951303333164298517904977715721912729539841583958859410591382612099522952013447507373329120767419159271174482532398972421476620811300750962539544295031984209809302922853096424996636284627860363910111117244092226009791408086463244306048109252791757629754616339731579336508378962655295460593699527003620436676848055195114174264725331793091752962806431145479878428832899931625906815725661193858062452554487426840516967564267651149782107352312554117239123714770145656766003955139657712612504956132115936864787954337230451971932066498904419225557675156541820194665829342589692348150413185057872342696235879228914569330064127802730305923813050701990164740514627005519430765344475862153322445210778769900114104636801708543482120976989451992458963172603244603953109036962233515875591497868410026760701194426442360415148450861991049504512493587708794851973897334532403303792488869994223664333814668538777978368313531416409261717082788667976524056648439792571720816140657036564156401826796779762171310826274817601773351014281315662734123492037730556089878588041960008483582120973494780209831703086076822488066118208912605615232886633666579477523145424397327577002638890995974337533619594929769520805671671031766508301333907656631906188841530568672268067116731008259576191990771978578786519863065184433069266413142600147475354546681271094369917091792078342813097780258707685319232671887925641909262028855290998126397303569210740012729535940243684968334637354186665462587030844957486200918954185005502673289401053820474182872359617300856695544953073404232826061901747444572288525319627957904640447988363531302740181175941271799475538318164982320032136145414728653879860110788983053074283720475364148318795250547886115250017306393249564395111778213511298743537111890910267115846799418481077187744584376177053087651873637210271866020297442392799287104668249518370307491416393284453847856955948824438047916633813916500623343653309992104804482720719044563300890657148649453275225842540027798341795636609891979534555588704748853388000424705779263052444955510189010048771122581967589144501186845184550554419462592372821582820249986985090810963046743922003608955422483200745096049496226057666520120446379196995940653966158570790070158458471987947077779799899744645685521767793868417391082154497660327885965539644856634213866552776386197332679652657066913172045219990924315729881450584427001602641178064716077783753111715284229867341293833981086591290274872227506698095058140892353302521425730109418302129944264164025847259944955118881175244473229400598410084822610528130019289112682101019320245864307969434554224350201578021781024735750979981798155757915892452179266048243485388874791460289990144495128974071904961415809510155803317760670608953854758983239220290373979602639072539219137583751423300550610167449553134673172503917419332631628701306799313591136155122321640824212013540005967599370681460482297565478222213530031668079698710855516220356356163409813476061323984389760522621250535883723943932309520688296853194289038089915819231426328982921455372533235442188910705768732202022405403514238928819026854553532216467899884953461104913673104471272988196289347291505596289984151579438774472827006770465871270035197847523597958386177086911989865853103122986527252712093466713362733745360566715281571816557136987099782854946681632305980015956291515049842638786589027417527249596359336895941429083297026732854601806178907136004108597278514428034132949681476147320683724092809445727901814434076996582054172920488718262342996658273425817990130537525339422992968560544381607332797229180807209894679564082830031691952006362646312289942682304432659438019692365862783040838251309890351352883480909363613942432100625982710571009516187274799449263292612916804991771836075754133207442938847697504932621285487277005257850684593515707099715204498721574630378598228385160132242070800296506224806482143175224820629364210126886169189032685729645895007180618171127230763442980921871928298531840517335515436637158069177953009511089880484439908798383179090989562575935740653269189590760319273110241632207970454531856462266325484598464390085167718315400993372621062087699676254448876470669002169517626417062228573636695131420324402063857738165424242908866783755077124986113205609931464938893421271973299862282644075516690773884072704519251517637354728489596779221967103865208155265615893297771865121231826316472806941313996633798104161285410429350110142024756214082903647317259681727375497830930700756080325923420913555938431534399027414485229608400194332964104819495859244416226520676230820623263174712748154088152477604824319270229691219842614536813766094444119602484543406771542741707782395322262542918321425473110063183068538863594702794403571168764531470732216538698290222586263883953680114598204561149778570800276442927163993486736411551422173638384453746497309444560168134284300521970903716074455753851471858907999930956271622690034287087816133938607809938547476202284774287729855899642771410345262331540761723562826443694423989357676964438279558948430860157638361088075020902913744979556394754653612502257331895078712321772144420779243088599856287765987498032650210484379879689056585224724805282360055831366414618478572200379920325923337959565850260812871742993370543240155783685904392685430397608408046281669547317585272215601880711552998229862907329900441428304943619707857333296774352436247028005633148299797974261639021570528568454090736253274014949321959930638368480832833764761821113805636296833849707683549618481949095981842604175624176091986260709361715735556223701885627318034604895267234307307542693389793880146892419905584364572149767028437929556470859952341759179428102941115418315826056305037303313481833200814851866243938073314789901789849322151637414739418912860270811350291392284009988823393158856334783186181352737909045251789808369409263765805824119809942248191653914998406491492972815303810902964996617366351548651013447118882389212881050428446888634286497046150139219792839125191716038836807836817088045810659702808107529447620930097760229540871260056775285723434382406992444754738392986372995565385149898155315591552853002415827591362535514949470719908815986481314403541774403213240749967584652961803726650527959252608065697503631389537290534443353823697590753209533958297097186304333412229897972089175606465899959066532318188378511757823919097205974988707964050718422949715067410719936644648751074810442665802768021594100054515469872558661512178379022331776642928263528814033220831675888078163478865939900104309364599885223237430020655849428301598304073848230536690627052146445606403929038329378577030990385306906505400562099248834922031797821282608042789581443017104806045231436804741310161999296062086391932646860707534884017434218053172628774336291089101801910166461904802250222442379862261750434813591970711788148532365878478343958145414587787855340038459725574980396620046442791636943447109341386441559109748073807411512582408080721105507857329603912817737023611812232773388486828637133874705489141574062750872664840225964011509433564694584415813564939125075161770858071624716207870830887300721299328664625754852955701584905863324845351237962818411209096402162506470200360880275117264134532673347847597932467203379412591722450156736138762297827246546381530913580609580625781666511557489143284368100187364373188513694147493683865636475005504128789226007600548762488409179306445693539368559158883952454500577468390950654483599496671194488063806305449054530857382845116962018410195767057688508991825042082860285365430466293352167633429069169753272274914702965673737214115119585196989803488224539559858939821772412623860470558814458928787421304371839611032817562984029572975556237325209136629558617186176462864086644802348463278075600477889035244066959845521072228669886727815274913205577587141362774102804581167217125464283250073656788597027765887933143851705762410869258825057562520739273241187795475709443600550703415636099790712229865050762638298014197591877924668873662557454112302556255698478289326905911365720678630784475506010525935964328903754461472593023069667463348430567199112270274434409759533501828112830810769888529865978926472126182888621892206507502100869786916278192335848512614078017577868950339111415810619127043162665303791267638954994096754265040721345423055631995783777616089199381416382190233110738029064654706796470150655588939640255887444626726681678928827185872860884958311227245149683730711604994374574801872359880320610301670837645772607608037952226052400700676396316125016993565489604900439352823940209841629615350912404617178470668816129295098647011255526414786360046019974118876366850873479113492493301927641322238917607490698162747901776226672583459307272392417873770878638623961101205942748695288774125628299715946791213921640877173682849963641798492069250146679125030523543793752578394213258130486628121975544793368034776717378094357854618677921786389705107234897500965787935357459402025721185292449940201046167784425727295964751023680844532720669971478527227498346372340637181220421205009904572876530113669963612257865431647788290000934094186173138739429317249654736002695926834441816708806688221210122715778335160100580016712730375363960381784144823607609150468124533310505092481120806330332672351748667937924859060599510443151216806451861375707171404151811509863821572554757522660530247864735472766110527911822557321268218587729618137135712370807752329031336483910739925398425839495268772128556803798034017506883872400609106219565692159997707311957038767249170988448322867519371678346553410974249817082912443582338994792275474858878436854110470968341471777895070790127553330888617703850117053605905489685548622232988565217496201850332304822605773977123558292003493375096983606161199103007505941666161244179984488750828020019678341945350025730893210790926226641095018864836869175252565331316748549173525434079270378937694227425307623832117674462943384603080696954638347792336937195847492993893920281099446647855449959015425197628796047092848493578382929859444463865896273939650152730155275199964163638881070189964899024367908103771112632426276462296014732201135060147257657451715679686017189121515089362552127141024473091030666421525170113953839497355934507064569329628460049731578081280425310633322217475647762210321262666027939779600304599726278774886225078815533639132334791772648974528641941180001160962011782770596242408904832785543351241844403300144618721674661896234386872886880085867295821801793163217292110871081034563530545042175730409565867688629207122667395261020594644909702554128148480170472913546575534605153286372470843151252660845261316237694318076543160251538542820499902935340963271214005486085134234595424048103700933617435617438838019386737105762461283621356488975948069230197853798156959940107838270422826288216708334563638822352043339307079205449106399221661482353736350164012215993273693936368415197877276230545602870186916409155301357588351849833804254191458985955280217170571019572730170868614992713271164819670856795873784034599823254379661890351122970729183268919091551586962083618491810159988333111381471413558183861958836531315083952904848464305955975288097449987764442274972939335455607876462830206742053690127566174205589054003022722219278432235034285582081654764865840131797890913689629166071101467326083566805003276054342437073791608858067519037059182468929092545864748752245098452972091118829229518003144586689896227246120519633634831431272654010912952838977360950024870741239563598485828611914719970310004537629249274674495874504735389549319894111994123463380832271469415929927702706201229093998456066128043504088154351068370752454640939003855186916919347365164950343594354855524124861489139291725937740795816416722177447521980982461446294762543999332651872685058369395196694235087002711711716480707134319284814107304453087758382148651814681107837598759667555865674537924467962042585339729487532128939392126269909923729557612202064924059009988037197806193033107482275101756697542889139028124029135024095458001945725714387739119994321993093020612101401106892703461235851344612101284903307802087699393822569641702918573602249066300102847748066390826295595523935742326785586747630230051943059935795669666319334245845912849292344029671345404786891532718048037777413838972752426498076703201162236035469040877115768268389273008241243904104982847084189299820575247228123434419875578759888626324643600481538850169120519332954324501562122241382759051769217791130038454098861941987007570776356902435670230328905281449926116568232695422034679271510295113067967733102556545579092502727105854519892842274503176759070187519580077194894759894869638817805663542904512834862516570227872162291190689559849050765813307048596750365002001591805810384677949755230691845404328821022434591948385990917236585495287343139743660648816128301787314837794805265446806979362510628427883846146731034122994483185825656763699210185804655406907559351023939049574693510904777984366020395498533509075280201015990639040016595370056909845469099698515616238200282502676950760235202519413733069939619433378688565770561277091148507685934399516075171678112133074399298891916355712880073739368721433528757026359644760848188189157079265893978994128594893777877144372976144198723861016981243344875016304021086687790514085026767169906942290473508370735192021342186335295432175598974562550152039820741415811471288153084332354969614798343259137659886209625012985200731514766896595579549438567732828570683185777799013233201015678749170763483562006362656448235402102511044423761540188008185889188964487099241586720984648061966463638477082675510116738799988327604191224367991594052994486375057233126245218538249692911279602490561756370602354017701400321351245715646376652731938471822331960601199278711964614550074166522645557024205782784831161688104094390018312036460792251251181164822612964727760696307997514352512594117234343118345967241143233557791676751313841484668664649607727662424099958898872581981052436180607794192190100343546278657811408521340344094209409151636648945859796414775824443767808198650951608782077322498805990911958376034753083525348904620260027676096480818782374675261779413509280446024264845974138277200511883189899489553445579872423983917649800583979072226416080239594550792677033376497896536895448200868178901720409109916322048784436383638321015983160959545922456592512937743233458736862337923874157765323365039926765514209152989498322967101764369394256551040132910824087893363080333137464036751681357032136179990139500735316889106405596446360767317622949636974853618543287544134682045525455032994512676702070612045309799277612433409576473772973550055679577104452616087136291216040678033338205453901706404499975476209263778981282753377107908941511181157196961138583735389822090538709063213543177902261555381992887360038359083799273937726963254346611974273414529095022875215112897103451319234847009485747184822741098346861588278537587317525264922354376253363179234257596853388390040656085519160897521816430041563124370636955091886315900319537520254073665788464594990178886335369454355054032610481281855165828824710669768332813400711702640056224745562135219455663743602719586648864323394840112009179889137367673627154230600448856861230555559167699579886658608200552903983873735580551596293331714267884863707380236893911940130505948752309048079654547535240041616285038083870732288396361971662974078451379103996797464471330111318272247145333726480607522114521792132012639658772915463529395157873215587191834294258841357903869510751272737521989726873063142950518780287670494366076847384098896165072724492268055751844920479714417667882853503509970391421036476809348133299640976454368327877360147736554537493124651273046015145309994308435562744463107071500422896825332364404703873585716272018215257100718553170816048806415285943886454168921105276348810695545775504674626369520420516277845071663944908845289294735988801106850708244664526374187774117531393215383724730301971815611550918650296612688349876287404963053537731400843824203010466465504492590071045052510651721295308518687589657257507888425492010759294426823404254353955382887063043280022083354092386140987212489958493530017795952555908368729396546913205831386511015203961132299202770298801939611672431197329328493873165139448312810857236635106668362682125791189491990191502531848201833060972162354700519506955288608603852596086519337673518259026080805914352963287496422211292230175640460837270690597925594186771571676467776540354944971625631508374861261081092012568967001423174894183122027217073683052005695971549700178962939232717083163249502586633946581255666475850630012055738989183993426314474532461798214496637624854660802727627800036626082006581604866551597161401276669512029922284842338900881420642492391757270133613150871554741950126585802397221954617953972068794316303971708918776197384517149059106612226245279269174693861486585010594556425547671362804517527241698579342252444071277005965928683310987013837448839847008979047741445682206049908446387625550962559991362767853851402934070014848059872390352333649006432519368376285940537751331806800702879959024830301573591788700906981389140397054765556789268121247213420769827275884345723261611711337783312056907450834758158165588229718260185832448413151232622148377372025880408920076585007399868736156940247305427020870739749488387568863342917319464414938799684303957826830172782206885134201238777919878771162147101097069916346372464760844070433373271230783341706479241647334454123949888772405154134036820605573902248164701452643960659734584356424807378500258810285873078777495675203311088928611423380028079606145554500665583718057650255244478067161106130080195444003239938666853038673448644863295582930521195257921135809637756063678998555709607092401513395093714564269343286262432594594257135158773463759592060381875943350567018460868335157831707984965307571364801667982578185860526546101035135299410428717815425992794309750535294177294259179635219386941161556650319101405393994756696546663648102835617305995309505439662365139059972817430642500435234158658266648494659853137540025935440432578805292110442195375588741941601822232891799645984072069858595620017593626979746532271571719191830567758092493105452816317238559350889842880506444559574987185048269779431322649370293292236242276908579576231177639277133821541696428043573607335213865803940292620446488782562251253182250520973990827581683267887438319478894264580253785616475435832218822263623307870192854177260316697846803789204117596378397919774622298337037047988973377165710490443442208026270300874080433305203812014732460969765538522982413441613218160721326062482260843588013821540593438555089573841513085508045535534083569280754100772861921268361117426491871343978597327904738829795059178480360442544196959916062435950339214027081644133308053751942132221230661345648906366193578619806288332750635621597988694733979394180463456450794072166364704130830622160542236861251639473495058599719305370755317393052537376917383975791025769558640762231290353149920417275471405169869880349165603968225469781951215134646440562093280700291071860733730868864045735755496491238493203227410713519939459397895876809877024503966523272885332410587850215221271403741505487394267787954832305784923620078571339992664108092975999553548958402828714013172779759559080492792883479082605116202726480141934604302405266662592343557677762839573700401682395886626267811090771194985923065970509730142549007370614145919760200758065415607612018654229934807728777684514944278311292544248324959514303890976890500264094803292953188525621314993657817039971932126191999461069873396103765798376774781476577421685415325099893691366057309510450655990232372988412340053092449356503757961524370919087541730698038025523382201475953192842531451304270275066980701869569734145786023017976552768881386173120292891248297222032511223227600944791915611435762541459489179130219041158548523265507146349267892361554703245342865100746404005718767917507011000555752611670377187326559528588037738721538666891777467444674767876738308528469091327319905341936114769514438035621757973830920365794763761254628194622654939958916755447521605624186037790826116654808073541059624673642735343080954210527477244649280446297483630520241702171194492213842702447485353898567691486021043492036723248539882663817326782522690466092124755709434406980077912038931070718051348340047614746411481905945949045147005769886303366947275560114933426651167866830266440954558342680546478441768417727063813555258367239282771555189738204348469828196129193591131890808783301872627615287876970782957452749571659275286951481076988491177569247400212452361782338984716015644217715380269648902895152911163359153851960670929482778368106944598271250038560698704119560766542970771690970940842771740907912146437696095470332526123703399740126401792456397140229439060306087736487655750849367080182765212662828933845055272312564296459246189833717313268659032397040949044911140055767497454644478589330751163442072879104144423095890155893817327938742516326233867760587731928634531659835116505504519101844726767038547267795070032408483077368419670130736499625626051925435252268004209606212024247893503415684233102186356195773637332793484080333735356142650140681792775586943006797710301188994654157488610643779222014567877787751865253927371921843141542380951504980865104905976560051490383286892395536720410493314522704015838353354003024892782820547829397046422904754917782364422454151145391726286239303407051872842414426191137330621983623070063756758147345519471188750045742990730939565481948639960569724430593859702687551906971035358980395446666699132747540026294208789734643831803363845341713051770904303721585583733984119501666037617555404554976870143112223342808252042213373226135402099108984670998490319408319882169138397867115386989161395571165066274813918360860168971691347831202577718574391873125834595285450809609405940665485015089366240579620766846541352093144037322685391967896754368619741086198222976456167887505669672921213116894138000200959707487091275811819828400609570941628792329300504745329538121868050940993980624703497409764681527954470507034314301117609852632450435365759320499383746280495558886141867095160438827611017322587049829952923302268793490206016260624424685951670875083450310363268559614973135058543067987319263658839452398184575934211952387678921860469602612650300501018996706262819245882814045575214493424635691057743148195145780228276209594902629644426923419688449180278509457812171768223126969142781401108242227715151346974575574234020438921843038927719198831330129000181566537514923398679020878794806230954542447626833507450924598018543742238653216202163610754028069767559005766005120980463944805384501423018116187749161054020909414459275374892208949070522446460116773512752054371231322580641088154837847881549804563913451318250352689084626403990638669116242217926198327813775405356645583614033399478835125899222210993915351406189762920125650217052670899043725226558176344547637097859003862427209534094525016912935743818227211023435434156495222535445721446157787411189481871625974996210816042736455480492990484573615677569222714513152179275693937439776300188014281205170002180326801570186136866618130513545958883262659053868803563642858899068106697949476168437805695937207514089051926931830393394369160791655695825102480612478017597770990043883584919998556443886147859435125582032178824731308657738802831375571077107561279523708674734226851179825955289663372712613796589339423010550985412004853531729948972844741983689533717124788172982469896905380900597769535533667220131422693033317375007635091162593085146317872429953313219731268718700715753036998622197358898168679517580297254428357389552280021719316730727319027577958523396290287594315921926954754157235563261684869158192958520922972919463433292349572319007138557707591932253671585614199785295525729066539123827556044026706942479352465223033558878261981624624754938720566697195642197433995515315467562096029798885806604896999838448633890065995569541234838882658132012958483767757679712143432904380785439050394733623667783556802793566506403951750438394018365752296222122873849069017731538092490809123641787053944823000506064999511006242954948670328582873945183967426033684324549180024379768390434138551646802162191764719348250230609576448777475774308619175119032226784110527977168327289894809935582006283327665520163796937878831655738847483058945035283539436633276133484522875668883833093146534175408670767673206479994686090928578174864534982775105197760753202985776605184516204948608892920778402567177803951037000736983489854476264890362535510621754377740243530857319773535339762571554320309330571160379001976327566615561260659851106965615012785950048993605759825893387875108341085086923696797400035389136284835207461183942603958519373334983661457501790192744594380960188444801394271979667957263360184030805486737914416445593806906970734139296991965112307337254591381940330570961150137718363882287581335030574755141838554416038817812860622978253557646715990697023592786676432181835394550525626305603950571244205684202789872792483065187630458788628830586353800831121780920526706798428996324537754035934860199425867231251725372190016295787668039359292776247517162500010666945919527331576640646745451433867973815518720721339957492245892689404287843280228389559769566201608428199541250106943489093527726180683126668838068808761992513062574278520351482514181985176183808780182300875893355698025759029076078942587315208539243400377383073949769276416890435296252449364656092696617124701466712059140149541432873694340485933120685320352205185346036221560522862762018640406513417109845297876916728390442570306204268069476933986693766208813086612107020379816589706457789047011966479202545200143240946056996472170552241242885944908512376130694331066759020967848782473519499899982669311191771950618834844732361976649637371720201927152819584696457054199085611146414327007423713353898306052181565209803361164488125110766697465565219312305109072006597489269606125439180377676662368174618435515783417017178381464271820206697838556737648676239027798055439736595405330203849948084972828299098089516317511891356374544546859774810104162767541291983837222728079439011965501023072623813003816054136965928362634489616597818273969155820806083310982032057363429659540831640660704091730496631040880469248013787161342982478440889351278450038362367667351800862390954852606605895264975024571745233302073617629179828445760410128683739837812758682916867632909407946739713917953113364121499915334657723827577190630039426384071775272710193687153404934162299715979559597447227951038061699538731323901938011287191408788762642690998826573075000559069353747799555784845834465533074135077246707168324498986691074291535095133657739010369721143624027144705337094297231989687677132310888529852458693898279437929652992232725292338964617564653537042474287253122747815472534873627135352612449988991697427579046619019625162138828421450666911325907600041627882212647847752591198213311580447874924618492563041333086975376774466561982234822701213962083986636077042035943074825458331663895713076089767504921508191746753540384721392791386638264038411234700667288040844560450448562277901571941668577457657667813107062398159482375484991185434381958271626512347521504194855680939840832839323976565159465860562669255541587361836073003084673392960612651439329192581510613348098904764437381726738495628692328519426654486376949567549661328102767655768701903553495350680601917053965423607503057345035521351486028449245956439862337955776198836098415427440103762749701591082263797314433852180759767332045844275437909102814882780812171506504587417855057538389022369636044761672336413339961796536211367080718471184064718758276592457313678710510866778631661063494675795706702273705466106539215583432052757267875370816259044310691876606089792140856037432394271706431454517635779167794887709447052519083929866741340318045120252797525677597359618997783148067432859570501291336418665645249916620677865637049453078266898449745430210130291917413184488208832629136768453405650447661120004362236171568721366605693396459688336846227809989372278760229620792841476479233437545667537980806398650721466485197045934821093600618903489968140200753427172217428439985438876837663924964135036049780127680732995169831157263739597189054131394914569821304851729913790867782672193755936548406560352288955289622862497904330644305092612565717109358435924057857561911806676655659392647878646007796002394707184507605304323231491890701980088242006717026075684045460568071846422191879604964163579851194757099423885850769797753227269406060832275332683657676935884949446530036726919078605884585016251108938127337503175537611443622410356494354080931707614746457217193881378574642830822226184107004103412995702244582792978253291686287142209755453297309139410915825500055912346078269657414990876679795667564895941778383997368310615054758189029114989089328543693386947473601914157014115494260832820154635286963048083258272670466003445632589890114625299182633084339634459621424511571003188501665939840359576988468585842437934391533789805014202329522020744716629427709877562145340684042440034184824693315802335761726694615332379192783849008766525237336254873230151054520424450145063284803607645472988352998342912474294324883802512525604545033938236335351514724178645224994003539140417805682975711350015055693916813171250585898300081346155356760396285553176941865557877802210851206902714535522315418647545176434300407714732899298938369897910932589866533696657376473368679296820262143069004707235455320421943583320048452477992862360345897984124621715304664547136494785789043634151843918626471250841727197570608859335671758082684708498664853156441422975376615626005447211162398981359314663697131869970682101632975814383334128997729986260250467570374371747141680718864751412231344745110952559793156563362916710022074856997787733515967165973237687543479688198967544530131291958207445535503555958918753750862468372474328115458096811953607989145729896918253417141169531023472020250296680967903209345104141030635161744698088880675508375729886639533957083883349070793663702941152297236739411893421815817569703429031766214473885124621075391751839701894716905549575579764274620360102979792184835613932643224968332359533110214664780769158181289636084695730897257953618345990208216297184855587886376478804008516133032226355883217273749502627968244774221524928573313717303507656058090769808122515893020144691817689188028498598599075393320018237742905947121799487075423440653157812222961196511379636760979892751807266244503672195394337050193638696162586860467250361533806527413822698206039844932751310775592268620190831419834120620684864669489151508534122553606517222796587918414204264235682327778744400295981256037070953832965220573461911000192331922770716778828534651246139565261406817714800522261587830682873987197428616338151098166258297347368372566202577320412462524420709320220170534940143549488691054605644195627124500794173934336085973552452993150154251597183114644155150275788715943811858098264916323510416537474175844109494324542903055409885821269171433404501399467277294371557500639729412854743111302813054259608308081601271346433061814749968482575241322110612745591462606911087420118633074631030628999575391999266069992574423276292336104144874355507957130019384230156184544312762265978600712352819821939600531428913839700537140164256867805869128188955068925672831649067636371164042210905146093906879519787987421817955504315210379380711203986462281244613143530457383374651333509199214523799813556628632226971632224733689957633850091964633818221573671431458770335027213198315949993566379867578598488883296971443290064862548339336761963620730837743348744574865142492209412389859020890177769400194760028017103105021737815878436084014218406491934029256190509487765101516910098079250898346805148714383134241902896419773818418357226789683172373990016770486822288706653864610964547769698020754334184334948814875664741434962312586750230291177142144482770686205398545549127442639694190449650626926987263477013316736933146237127396089140022297979155651870977235631100616671754156884745275494374196375217686126204451805242025418251089627320089775641969237975360836319749230801701434878355253745818487060140492454017978450993586178953579056983330556414319217396153214290116310891134813320062759643426741920510342752450234544782365352971612807602223786263079885328578435040216964945247054618929046478672247351320291266438073824057048950504999148861833099910799755288013589876195936848310635719411784411848923374606211887301089615932469250007493091603854033494770122328557437993384614022123794891272062483390914993782181417228317364011629890612351704732024478788544461141963014532308711778351544270631020850870717543856358407815021883143900264882256457205680804877199744806252471512128131662921041004965977250331351392005182869834158956084524826402159517115759639745376250405143964610612950284629699506529088737817658435828536272146352483834458656433138068534315334941899587394822988507580873137728697552294726931889890830964251163549208006942333150640799222848520157945124405043963485032597998904200343676232382837620114076648137410070539526175502224482706917641246549401680938085784104346598601983430637393886388669301399079320670609675323701167702478739313382206745840349230139630909871326548739909983089269609409461425043803315413316014601787473981342155683306274078835377766052210669462898814983458753228931187672787569806065810716574887676698519591248738997553818035383973915806017054108975887946103591444570188236010208288886015073145149176884998111051376783743495200104915098987264209814889301234808158465482354893926721735125035004752861441732900887736148856305828649578713195530320608838700639359830336300870780075549909933572185865343743874609072472489439228441297321785604753777996424414483950501654820672085504203064514821711674000813817317760852620685524328019446603616797937753185019609344985192982885001616956913897222872703357537308710068393929039354642862822512923445586420696665126740690961399380802833109034421131962716613984700936651389492860154417703198469048442846820678492134435345533886267010034460148812508211151145589569645637637478862949808008122185430369610459892432973825545341470943962254067823723142301587700621595998227282387251229154840814720721587198497241497903158289389043024208521028250649442586081280870405861182945732836687456668738170556784298101813477474248593488334134608274469073426592611504521489135181860051843045486217309293920146536854022259310823511804304911697034478101138829100966632786923733834059459166761660648320798995016370401460839999190532054522238683074229762832898144774064160684326367130176091479946697778918574886045120198639906375816276084155135842811803100123154188884150017813886619075171053401148718852169290944743760981818599405660918079818072646041608372402599650099862463203792155099149678060588983202143100829489384192050380344574632420084610956533765050870265087525209678772711576614820018596758562139281332392788054770241228202202251619143710012697979166132325390433426301929683637114206707350163266873629266487761360830106049123040885839814436833577074560842906247539693406019337274058561345463035069307993441900962555549826035908537527834718820458192865967704887494997411629192574243396585012872848799812606982295373184697457408059219606651338406184646853044454084466649853118736750294817479467156356408177749843787630405247608125932424957663744204592888062384395542171116606179283467226350718844612285171869826675413309912914401942539031049377750855481971961240426275104579017056090174070667362551783221370841517981731303815497889654314498255273687411171998411141427249542951269966368595332703503129393935499137209622842272776434181887328167375733753507872400416255050688735455723553159202521575916682248048362273311554659686646460470529553305886457116172522422235771881444700752507507613423517776545660776369156517274296069669532182144963778411044062942361348436736753247326304269037545023361734177794573677041894470508842314812699076210552846878316131370653515642032349923528744171753830113491898195591320926944964986971392763539090868832149988131074867264917916949389229533794925795086489288965757379545562389531219661346455800751591552004571865066623908734390204919552297856998771561314116640694972421486289251979127822206640041365114138674146400257072908188947603862561404705700535440396695067876076860081499251188956417232139889371982367646032636252274206745779469209490599953318902711381109281140649090084496273552575366365601474693890852335959617155451397785972150190711847529989549681161939831471055301004062087125310890094387661062131947107489943250289861644066852314556533221963699008497659148005837387588271123023598100877643259630747859887577940851418871399506114337840002672699016551915020546916862382680034249520078035698268586114619830157558421172798007012803654221757750018768506929061364009614685763524481943915052213260628520934371635562103246164025319007242673440246660768555389343807269880939620905888703670731668109829701336719320101879437424657652522597141833744076737251062110375083840731897985858239600070467114308286381558747233901611558731412080483088042120466053914384817919845372485750739807467867399577438585910219938765815029552240193041954035997157074095764007685420667343979092149259766259582714238475138339698955008125012632936488527964464189928995037159018024404855391239901609261713967713882416028473843374911721682380033912617769477869778672620959484432030594516310292933035791389810286068369037556354031305209912057017232580222507412756056244363389910943416545122487235396217336806822805596621955177763655536050205933375196765506997747463162927835839778271130806187452403286865422221318788764633155690546619531467816391580722347029590564890214301776592582967881143668651653091143807729278059752182270135416074049823824858383639569331555922724635005384810787945814793311445255354021991896936219605977275132252554473234502104585528065005406909365284192941488672832663580926511378637602551368505591588303701580476310566992156630210366156235262418162397527187164616643296532203785792076106462915075097866056817412315972689608891793575560524728739484163020502289655276474925290507658655578949533532841406462364297858583577527480732936842898232213023916519573832858403546729500885215836054151051407670970064940322038226002028071274420104957876546454207121420583993649650422264808720590513314558660295610240794278111455956822625180345564267227211266256844246927648084984857637715073501227748704529544327258972194822650054778925477165720177615451963524486907506526884477304520007659285597738000791525730134385349748073424632419287666733341335623541074801459359631684746704911342947889263589176345192460167847501081957022497510976665474575777532509918263214881038171844850259014757239885123416624069352902228866995120881703473340771371944588471483290099221544739593873454457450111499218956370742273043222750702951842345189069113753364224724550199148001761349115394660227158358584404700119854266171470781993152654684980462291316294127534984462229857909776145693291258135006083223912956259589327430516692017221791972772868515483876554169248620871373772962762761473552547964638049912535992243044902106271290567479245612507651735399584550199234010880518491694545968700932164710392543170855086886132815705054987080606738810189697884179289684327166191108457551161991467027506361418019165266730848829070489402785762623281776861766786455606817984463088438658825709832832834683900088041863827788018479323100946537291151105236079070207601448060300509746393967234132315938581624702069820299231214272646056160473693081602821269793027062603949964614689185635327946457181551751370559514430164611860706540004507818365417514424593298042123305004281085768433637624144593930937004775742630748098495119866763999417668832763566951345776050668629851160790167618863298048432625165551584668542088348024794393448855325001086609654077048925043143922344823088929383666363614223008934213694112660119749374669271019663013149980363244940264678841299154418958615436654927486442134274146332010187116515570498838159395857143838050836039986979977426476598565649481668077421418033832470559933194629463925877973693299272800357321005988715016862404411137961835898487473363835293445831033347510638123924952451928540711363541395071463282017238980350222404898671110438950450991689903187459451336168840837849060863870356353206924454650918804451869659983099464108740168882837382931888428478889491258529600831963590920806948284772866847290583139315208674989284305724741480576800116358829775977808098611782231271730242912164389483183596393082708983364394666484607386711522118102761831069608297911358291596704878294724269569874604361165186367925215867721559828249032260515251128358113557183681150832347317805252608866247768116722121890433561168491273200681821503372177226463346750369361462826184135744235479520956995254594846340779658876377459709082931812165647026125444083399424398924330204253709438440874569247938344715166503676297713328447244375842273357046456127091465749110356956818838068020077146266655602815854237598672646367496641168341240916971405551662892209734842747740455996098498649867587639833744849464270548289028817700315469377002043611280346088885768459874649228036059981958223653728926026909471638292429069807324640654735327711227051423390541413324274974150234397599934277529494405465091457215890442628726833509998004610704433687287466146991810227050070700858754111599058737920102676225218681806023125414380841347809949278206571992019338927585623251450975743736692198472188572101460238298188599894478062637786902979014491129168140772240983427658599974159965379745742806463535538482715151262864552400803683348823270996274627018194149738467687280361692749444835851505611278475188294634440398177829807903948575943499767823939136314345510377326947180698845391124452358582906267469797500930103100981794328193177216949289451479484729103880346591942329491822074751654914934926513999390392550265897592385504045626821217791806512143855208620495987117099793941762094992974457054382072442111132486551173205207368520550730561041708424943050873109243305792827167802391885685597679227529021706729708483337445100173919129364657497403127271874202606933963372279291011478428317756247889021531368543999830613132195269550213159825432767222834984134805480165736762181557451686438322467871509705281424933280148057821493842850205415341425754575380369824024466270865171512854430167239465522053950585252642891897427367276612416221096952955205506706289658582310292325525660945774748871875076880389589989487443744210604041914764553119237741719843777741911575098452234666840230349998254142110143522454792312848707170128612952482815686132201394993868422609245162234013120594860926626921097122746052653350802982188710895951690394033353980647950909100648926919734128745376549218344378416074444268891289738957090678149006884628530604818867075296352557166845872087362474318740630971078621326942993355372894426622167960305688820344859746905090332937935992288200402227472821900753565531433198862345943093802993906761707044709626664075858284261007184415952541305355072149288360023718544429664114163435712144648987987834832248083804974079949219616818598219935064249695929985204281213383767775335694521842370992101411346863965843440600150950068335912911060820756221729281760504382693086116565450270956974741996041671335373296500769229691840451777652634540284246658783639016081072767830962608535398360723919560275494223001257808835875264478798964877418302290344863550896321730621356873468533210749568076019061059808455516466858713136913097468286109678423669186649246149473160314015793382687835597785230153324232459718799616471996980773710512020078670107135472021259690497702870881030392691807946390278999777730957094738432029872948931360918907983831155202369239192554698141742558447789934061536247437414039310638168777153175592573851677930607838429037518542425585565055537754828438507104986130003439095879734911457031506786242037605391812031482612117677832613281267609901254032242115411336895690136877114705002760482188112217185324377621946507529577171160355514588445058493130134232811764478190125962360865161645191736857929426237673164304124265484655581980791512370339075574467261803048538684558159424479560580917623061181643198179625090125480402912972654244224352756994252535371388431229456484151644857926796193503507893315397132122631790321153256411807363161406146979689521182232778267918968881380010737901677490881540652890289561041624079013672498131636874481457644172371617451399233102683350381124225329678899561745282369931483457489917290062908356644204938849873480200618583127814816914520607910784907491229064691325606643242847749934476968692642491142248026086771810200216928834657581001258023824904149334779395129357839469142844142263512973503808454743115681774200499388349369840940824083028631592194389172667751577281996932448755125274593417362714164310478728023711554814946046518808211200758137482938965229842477629830406785063077383219223681911963843741201848163917494872257291889532817884159182545145876118823315817255815975273858916958461640669114262308302840924266076644684056062140267405021666626537305756201547917013963647622319714660707405101726173280402910041722900543422065061592649497541875816167788476389747009439715935896018938648505280821885903222161156491651818182603641695127379556276016661960367513346322800154860536303018215329832220136916738461086846980436326924918698092148454821431461802218381737479570985239502678426868539867382479487364951399039463313385074686804848567712828008735628837181344065491544427743190589798726237634270645821439549272216300380403353795967379438959332358083637769661569770024130151402993023589638178907279879837131593989860449421579168804707830659027054973531949340480642457186457378243006967320588497514081256782874474545007345223710365903924002692177256390003306589111556845582729660484000148814988053715109228710752557415472592162582919943719425245067454222724192007565055099288247565612075508384951496630216668897179692702249823057775624792437491628692068698889873503771042138654626501326348610518762192449377330360583610537244970556165368499313260507990707062174534159975940376481154925417144098744258448374749257903692169749914090632776475837929755963243549423812276635247086885942909309671936231411022310772410057201139235610121748007854117164836418030843620111331594682733933334340507034261919975483358208775863283983336416479025411734650307181196926609509262607239701492248411329920445341196349117190487952613164789079243224833646465376548484443064128690259467696685224275207077848142883672492386005486324074088946783276642157735958390235723398345032375958684190671355299400466960657227579552033216633893251303318432175223770955558498464447130484927709164949781506749874717351986251288097429472001798912815710702522727337371907827742061726545321166424374707936760976795995881348421805488702354743962817475770683574029290715001366921377632970083246509948099919054758245671209689472206498168486567217722850242464805077072621630176206246850797691461167636873537343507491821977707067746428743773628229758408698395047981844277492826106457325508582384210045907766254529016306383164803457554608188548188327584032477684129302965910782867049421582229792772720353447527211627106408641719404842453324341480589428277067494831274295428324357484424428749188253977756986707175189774072870015553667781411594022672080965091899081789494448137516997458888163126439061486616288253135915957087789954267041513976649099791900087884514819769012479056401114289641112096339290264888665442593353434762098074752267232029574202929860922351603546840239465023156968680027243057377603060627882711185296863205581512482363503872339035902926126846049391575752100229389136408865320934800159011728270768188994315323211632875517836446566162590340635872532951767058523551956720441651906199534241417755761019177221419108194345980757714998628342858359044823961016869149846753598831556115608988907610034160838590989800557386649434261489964415993414125455498193363850646917136745334898220809543326810909101615200592063995673575848605984228147169697174159284542044079799950799555018570539923319089203883378838229893082209866656148398426603148096102017213653970595885253201773582661544064914651309257892945738682918454864339944206637809858067734525806007850408922915654383912393733422954412888937541474711827334796261143452492894724543174798509350794389701875050899389139780013921799338211402579115732046560811054122164562447844290311443757218323215281136551333039653832032544684511287854031588176429165330867859916819358323728530745368035832486769227516316103186713512568242913793489378672686151586041070460790776344789948517033365788217358758413681453723824106125460184303667894973760011876487651410598008230971240436429426221431636442567956887693235117101080598505348229323550141255712072767237467354589675104296073780218575392405562642925620243611302590958224381828848272072210451943381232162868601953737777020489014962372952757621575107113169542947560282633511548105074174374524691260919510708055731576997021580505638043936251215314590438577293127018063716772894873467596097014258878390155695824009599305003854491501079707450181531004932651898860143383663597188187589697514956806611160029652593004226805485942967703200473251280185369968424892704294086026854127413206116873161482035414167677057116181562374760498768075785890094688454946546974956827175124988830875400592050444340105115984296362570413707913807574911267818788595091737659676911375049424713429687498586933809639460403482967306587354942231253165294849270116927812802597151738662486950603932367497837486804112703417099518404574062896345160165677299403228808259692429980483883519732243194647503332998910943613845537969564153101050046517528683522637193825115650775196104314792046245151320363579317208100751972899842477615111569432744553328850040490871701333752099089567970175867278557220153895287107799709951219937937688693836901342231930088314068974641057093302848834047277087223046818501332352471197948550590925575181726659727854221679720176470357555289758056483306816277050718710476062672303976707600106809712076436417198457017682912303621513987610880802832322280019270317640912768427985072618007677276366535702199892263102906243954070021171463585031515113807505344170134372986852809349508800385630430782401435432326210995078705287811323106271205309050677918063359826251036652557613639878233436832676272699526613837476086159588641300794868173442383485166444916258386521497895102578698999582722748438678433994477441560272247604026032080402097508287745049474961024328750366424986526405543879466279366706442798743099663593135544750996071414497543738535599315531527644273204555948195902722783472612468367059687301831160271412495453491636956288503705325691218417075547175542586619972553947406480886322238481978752221686313173489189180379327940277930409507642498707143031438055253460008347119111519964762875969591034631980989315106848834895390791196123434487155006676392775594418991831153768513084000615127843024265408136842935776803113361383549858183614171516164609387601202442259855390080997161139740756953939485914100522165528477507786402163770019783147356648557321058778735227402118456057544969195071330547410679915204253184431202793430817404199714005062961546300284613601280575156346293328629817767773386771012354371258119386451005295286219234323875842598545320372294621904535938410207611311389905287751270784512668689060850070681189714001766777766420123631247349820944055139671064503620548901567908852693841831756153378301325569066243150110176545633586656806944430056843536384193999474756762417197443610933253111599751337904735756777913608214861435316060639559671815105508703803088149276448349957169526284904332106545131997995250040271325605763321757418616523999314361361335148346203764325243144649677581354936357455849834770802557175663514167333056884839186254646632873425670921089019726615539587066061508333631125044803228204198537087140082240957993844525769071312933675088098205850158962229221874561923647729105754131337022926015557827002938082215927717590376733357737003224417796554961453099099422381602176610230401752007270127391455963817085810113001322435754289819003001365800372688745141721203700530183358180178921210010942648014172276466624582812768854254573577865428682346288569017818511045368841904796223190402754604269181965401933509104715368432686063788969477480853055521812890726770949079466336844682270376439884424162267390317800958262006327343626824194884794222212121085488260060634533453847241414368325813064822549611528336543712638798687255146576068844904930227670577488958650780639232208869984491900146594498595352616240629865817258862178456755464671910351326929688361402837604438592359069899585392452902177986624640313649339258432782305527806196921165927291214478774010424400159228571369172728544905757629287258433471752846398268457114065118004137589466870417282851587324835775864537981357855745985837804150670297489235282288855778584871506159946606797335084451646322916426457030673298239011330633137308556962828023868083414963658154764997224706007713250083684660089066683653924832462616912702190885849852011155100883920995080703850727758736438185583250529036978702555878503789791777034599272637445253277448535592166884451768990578512760269703033413340047385184754485866440424987710371702030302286964243277886029091161651374167206519893102751656525313198703551329900612546742632569700875202667351060626474290509943903350122408950667579318248180929931104658651660957512230459443112985402278475391827912176454738429632822335651352201372185842993401239115025563456357643434126381974259768812749949922657608195386123238260312998591844952635187291084548210720644719636825560434806419059625227386105030032950652608792402002274930139037707992911060799846464745962970928993760687852577124194890958709318727544208737024778580386674151521768809018151934349672641510031412324306029167593872762377444908913457871308756586808933681724248622621702194815738602276018266815135794774775995549650840169157126518980109333282465095985377211329983128341395085951467371749680427889645350189090942201369378681635088876414354223333637662786664060061068360503914072688988851163870098784388235012676535429061252331610639036215490290158159491152713632571154197968271966676356104866570248502552284989878042169521428565693277257764387420305448681261888243826258340442781574276712881933965178358743865317859986562835263886369776698738522743716204628385252912960563729433253846213495817061530475217796661109300652762314936094214181129463765067070062324209941490977692575019796976503234866750216811585340054182666161796150342770330950704310574536344118764957220304357642925125733973654319504638921537491544705150118229717969588889212969396813913301584201187880881756796953691570824556101646101971250523498833425220011005779757984278742169459768118341128426782146829032262608374259409819363672567840151775140029451488946421176859429492119852293063907799655247626330452234303095935460723156811024861959897125117102909950282846623584713003391634893828082515611746285586330854825801043804612952636613883397457319555186717885216424860186212641318933302407745278771703814930962272901298430168941280425177009304406189527524140267725152980461690459915432554937205951033664260813640091854254080444147990880201299155742242843843788665438501738540413352555835426870071672601603474580271173038318096477041542037112197261710036463316849789804102034731311857085066386582955430206269208327634309979514658354604562047119096133336273415034113499154350884327535055291729736354363040152390679301370825696195340100208271424455705307480643593695730585275080166222480158770742114258565194111390717687178651201006331223511203364144329285058179091051813531919101737151860789145292962432033467632502440859173815454126846092090224040078368556924698078508663686942248707506861836611148455647489874477574203616285419205935898802241415999895002947634445844072223067750892528944076337358548498365623930053961381472399933336345444952219808974634424086567060018887264300130238708574571907109135547165310154649319493447469364755411388704349224663964177795695475031496154809692954165911066492635749793453296017391439265566100200641835228999030113398680669209762312725551040409702436984700870992291672268266793974638507234642360530357141925081672906448157544750821213040027068241038304523312132192024551722115322072481624760064308007094069358381892913196105678330144333062027791923985847745525515305077170598421134296955884043045337500987417535475191801839085515368222797691645952961583813943498314569348262954456974443360877924569619668951123229823167615492340157525541407065055005649299193343240860953479799086804446750324561553953885392568135927435108248644587028965109371940411537798093137659601568663793404615218243814349064267452447992582601451287273224383036582109116234569598900073954410246372520168613314867367880965563761917286139398748021370688212885395006502948793541478996917815081495861513769035461870110569885123943633468214356985791564496721191653609253293177236863851687509511366832702457146085628934966569004026804138353577143606725754728435245987827150164582765232928894147227221344168274069865443619388499837908616160058366325980744509713203227286509834052129158737993927222732539197653962491436442084611085701722226398213088369886965602677468413364751136281678748656040797873857676764229969693608144119066783652108212838629395555151817523767474899755799249733674721216230377776537330951425026773815617377308059000832752719931292279812130641397245966675291880921697013076282404723475253847769863591935484013467630659332529327806570201533343395908276246302506494363556470477811518240182962341731971417993082415523543516925089530523035249155167149022011871028468099581514708246093162814653453690676401860864402132357742048988770099477237307696126362277844328297684415713824177982818699759261645109173961094609450308011323217857497436354138849716995443238892569917953047334130916743120266295377657689145941176362297178622055666163333005435119143689652426094267610048110494385003458202119488279787640044698144488734215521956175006909591091688335566735229735998980896925215342213361897813076052494329357933664749869835928587318187401990856148602114873587156662691467527763193859874808812215665506383871244619560161960637162796096747102884452896322342161861980342884269746855266778915830821404395556253117252871242737348793651703809708932118112208786486300517858277655637279041185720961062920554441457204373409209373385796157531090656826070616132127959781300641968588635277794806661618455031290382889252722533374369521625668053975817446060802824788024353209497636926762720526175075687164424604948662853263853173030611845677091172829634949334387012775154186455662866433913990138611980299177841476540687030998663171522710603738716489713532624071357391865520700110628338288244574504837271583082118046967245664634739054970534737420119694644838762049958434784072352573656657905258129784364102832666790524648064038604871266712385678708942673305382271226897842446193887331154048545964998439526732303530282117442707858062592550631913933883705370466480500437496959895588667687059568005415916505186149723645574414387640746616511641811832752084869368762957877895434006933130535264028257541078790515329003458164402970183851773072919357847396227417980064970184366349486566974466247693349352015915483919917125235156238786205183802590317451101211240466428483307122125951890724507166030500211317808116161152812460448218587811632238910979492740544403816377464726353202754750836549737827650369864326585861089378869812794353138808864783914205021753212686066130121452865611787935076305802828878282546265134158892372019999284578741485792276185072974657944340607759787281853291438743595750055128522676814424097457014628759802461224964823212691090570599838921874057665205649050607502827606633083695558858538698310496800824162767516756728049305396007738433670371607114642134807453465579609603296826941656961383621947602102426112430177140286501527082203048636949719658948233312884422730632799652877207378515979930797360948249888992298658200216149510367372280550583090629781824222700939607380666244070359186457263727883555320535986036893095590409748629552032098911789644449847571986930951407778530041574232214111222347997849921872286555769984904088817510276752156564266890878442246661594103029750267892233733647180563245589452716648437947492268810921945311578332466197291940076429508887979045644735741185568749089941992477685853934910662065012515921347336597423090803588181746097212659140231070077538637205178790064331343789795596836829413345311668588539767667572936941750431943355947453650720234898162862972759524872780006988149349253328841801151616542156342680090981184150444542559330206709560689840760090554448494702440043187086585329063594022030649856201745428947934820524270903644062908869889805877339489160691529672027149954669348436494378731804730117516761969906279460590972801260362556213843824739778355925752743537751767767475131723462040386856350377629476508006991635593310209869817305964131860277836195833226637978986139759452318009078153778141960839120772983061881950828758780386363308134634933656612676587183675641716100729351734417549404273083005546031166110019392080528944703075343665339618214077964841755955983252549010374145583168807800105086874331047799414044050315227841229632998336240711030133000661048701747136154881645197586814451017540370794288947774402930942590936182125031424061611306453422703305071763555018371193021415215625320131191398422983274242341167942487678415956420421640171931103010162908737555798509905502384584908865025293740172340948941911380963072162565674185061237369377532546740360040934306060087156513279793987426847268078564609558214169764995738928351537639841855561038733245723742026612355229999213742402952507420502365550665442085446696136281874574473403162411401220159408293285056764424354579854012807170025886588552617797756170143767010953853496418485014084841857753317812429966888281778810007786951299415091912162271671546215957710481541405688503027604468767241834706095518277974298017956193033132791263126254541865786835075295318075006649922370937631783013319793385834031456672099249750677126534187062308771684039422883629724374596533930110319112546210084553237640050283507856257533348012759426088379231707871938004434692855833827653746577288427233419217803879887064904428105551947916210475702623412209280796278753570610690760324590592526621345653467639473260078329933325134141753270034679301827154398085128842994215175951797523007403118854502797448616829931688102246316269204102197475001380713752559794898225708827288995053631265092216381345226935994193702748888591661519027375092452143005377889487430231860926621774277965404355882342313098946502369742354800169542923594178147985142600729832763521131032916990566840670123728077656344519087770175868789540333391141519667672466649579416057661252533323823821800206850052756884485663469048413098899542988644862251283518589572222897786000078588099615742289213613161800927220309329506675201315163152895272819561896580661841039053191345223908922034719284638567826159603589898888812154233489628479317670271290233489778648388040581903504445676294381651696833472687148773042993081509307538173746017474504738349793108333530409581900650154178979586705469785034915920592501087565687377411541120516764043265119306385156701064483841261805464757738038471165369132159211193940682829232193169609459928484420494031867126170814960905367946070962431468342216127001876743499326557706474925629805456613654702987939821152440105604325101704673350730105592771780517626180878340487576048302383630026659925342116267454564165417998499547233616747866169353355664769762524309892006869186595542376169352198464841651683402845518057815597318383691735019209727549946589071628153929426021741120868534838521491374416819878764700845940189035542871443411354054990215154672390433096897549181901096078101325648318347610689810873686692036980024116549911078953423338420801180023503671955643692160607562383202978681965943902115849663944363009151778693633206573038229119705746550130666375484821809662781295319016886594071912344121026940918438594405971620733703775877057942575617060443591618572968427727555643866247375689818383852743387177910123682052142821471041328986196010681993571583720812332014159883158789817902971215352399746991057057384491042681938043786569844818192350827827647933361148133766714553177726358175472456183949713136006618373512502114834540217367027765939549878723394877367464102853256120085848764326489750817024565142098084299693514021328191843750696007805246671747176319810075377988893850133529333954524694211787685815399600635833640200429375592283555378128359334455329452419893663561764845440348055900869997524391532260907892087528514865252420224895312078886729640164884414113303419846354048302246203386705955887789421632839698575779566934040984973346603019437700928004713323482255251196956307732448637258612247616447745805650606413183703040317333153193551359214509543727472695030701693743469459293565723485276171513839163694039464403746037519610056234591633830169966498592382186153032878787051905620486689439353145298422003683078055534470372646600978540888283392137561700760228752350595027721767593497561449765007612627365453576919785149132655457971589200541263387956083113904929825001198853831991325093426146531927421454218829573831496915100392902881378451320824572542149020535542529051704797259871068000281895693206790500031166032396225168170808288464944200200012156123831354323482545205921731596538451253482088057059501434527624383277129784978288416273066038032310827487351466735722850260239608689729614700516720910957968972215799997204703889559204526367928039108194124433367824787306275561703587606421990016645904928183583133236137260051411648105714152330190194618972596559994393085265030743125688229439698231271554967234597462476387526420709377708336347616765716175838701245607323788165729123872381230600140420330219889015956272668663198045556212603203480676179347074122594708933164828677555644865167167247612377479298985879077315339018601047665457231570174942763555525711171660483293156020096766676278343746200995574960397986538143421779198869886146384562702644931563140524851234745611536866188768488545174963831490947718903225911669928782070968786150250663345508790649178550808478717158770202206450734963951032691836369927186716739380030899931506849418407531493766632978607156455404478404819494568762761647641010221535668774793733361431144126478736322880290211249329565408928500896491049326159410440460483112770026029358195792462280483259315305843919697208929663919110227055327882704716931975551153570389876095820133697133277117784541088035893197166188744528668831503418812267030515544062489555629583245790676049786907850779316147727054887602949119654420490296362102212996504855339431645932435966426952925198172692974911756535752149828380725848634860587887204975434594632717594911318503186477036883232838462530210500251555769007503335157960884561223137124896336648195440428710874012708532752632235652214505249291086835514054119355823834831797344474767754444421177399803312020992311114149787302025367452008218895573858284488960551020513882622219349725208217780775425239797426481264502409640859485312122243026525727993707265967355755961354409925319892023969411699388665113137785316664314016814824335157488195177179527204799783923825376966301249624495510710370075447676518106706541302170753006545676328279032946169558089955100997172312122734312294629556541054994988539750073881779878753157925460801575806175310330349341685690347971331926903979173833465553598898500043334874312341571100084279101168210435657645273410489407141215990301227070030291500054054697216577921763876449693524309492628219253481206005943617846450085224754797655851699419137171873088353913901759038254535241870451166884830689694955023793433096169137506148262468987114749047541138639022709062442647544560871305954449667631936317351234188237316668099460910913327423356736697097660892457938939075839962931730569603625932192941684501117562193118343537710779944664572894390669628578610048593224698752997841698871111889252916005917828559177449872491772070463859427823139174355383064224327303012742147281036472397445579474686527674687512187405035498152017322086142878681102810084746065999634927079241732980768327413791571000502907932114483805963398484423748911036915830437144409262796098534052832613190826279027377160127945490839176033550757458555930318627887496882751683536669977919519518475315981474030623483371957427840900903828938435409852387871732170788337494784062343452502973022803939891100560294935548954514369424921335496646288362687958002506289804524114656794127018426157578220258944292132951126726760462995887794671899380705269555236861578867012084860601825042315263938281823642192885857342747882404780827177434965668753714096874037878274714677486726588192445216274599796122714269791302508282061173325544843557996937189743653770052384701233155893468205101285101145511708750130973973818781035766153023203422235791548407219091338633101466815642469054161284248322332116890913041759897352903981323532173000641670822678047750613594629123943729002109272853927809294197155397498850582976117387917805076427859542312222979712822126327470304827905284887480593122212600320054985386016395872032162623810930096860525835282839228112481567990039076775138853105561840463309238803391663431559261693081632241456096818385989756899557641512714753667282427419813652579973429660641911396809488482955640720856408291548409514084000336428095565292818422340304119587105665252539268417322103231400604320167163405778028027589960647037854944841827048795873751448057730364260634984472777253924028011179087084035693266929463154470097040127234627148115680908568725459850048585822933920525283897435498542473568696562990389247571449942917617372700961055172304659801303611984691610068959777127562091882595149553841418863629960748925600515538502389738136731519731271321476858917489540206017547321093566552727919902724707569822351334342859656179933213020742029839532347462115557571101982016497247358019375070638395245801511037786713780417879859279051717322414472321740521841828049014008639903284483715457586868997181987021153154417707481951659437544292852209968454780931986808144569740902671826653185998244986779015809450603060953936703798659194806744974418022377084059070361784467989009608954914724894703589042097689684308115321021336014796013245883874152923022394751606526552863264763208770620456691232081656851720421449922822116727548501554382441381700321340902824032364264762944981434861910177584007510202291618624450035971910333786677748449629072572191768985341077946298902133952286028143099977539460150798694743548523617915651112762353243266321745760964558412518044397738913666874236285943949183541075039459780253686311227574581936322316584319105776381226726794438971531659339984638624247832353328062661128449676912107318763113497813743121715428270912456134896654376186207677338432157669333181460572061588110913839629515515980947349056449845421325868947524520048004992700202626582430850992428049797246665972712615125982747215348215416175033161682232834284083518347366997070642760439340189002501344093638602360503672711343585875055290833755280705110519686392721173987212007443029536431041172441983468591887480093923480562746166677469668783022348437593065253992391010796230007550225278293768125735912715312680724449914631819920835931247850085707942850548722382279402567581045129016201157014593754558467396518813519958477140404034039262096447561043158818382724594977553069272529386592771185949389604407300948509564715378989511001843459081180630693904657124460245272909463602258547787459021581397315379936382162394867501743277684470838047119687169311371912137636337001541978492237329523021672993431593920790087289766115994378394236429708653058986865819628380608912684136955860891807135745826934918764774361098898137140064951328161207639433909243472592687208043341587012169088377271020032452632769131875109833988718223854762134520899657332769248603642328637502828133618578539326656289870732086819501885242759969720740933704398626000693153579600466143819699770287845483848463099298176760912350483546185226597437826213693734868701063615267209722338933958950348069393456629431585632743006182405183326685504456126703140374391606420779179064499754961090643615906534251823732752981904867538922412291703973220131805226700458894790872265174288820146471575089208309303474897102321411833918158441568491319717102473543018895959300686934091536888838234049690418972766977810598985241256948444607821487610741441228670701987086159971304297111646579701901471601221898875675852368535331183320085114487586919586350857239484180659707074399763866546835168718498453971806364356056616383557801098510285170851698406347961533769124808620777946801257851969196034387830555743895687239630518440947387464061572357363493004756685784113705765296106432188268751319267707011008374086184608651234766686826494143049009667394585975213153007522959767315606643419118268851642801657982562512020619777877188471946458920878327382273193734294905881378611411747061565036724673533985582100726451242235449299837072180477501567396663514669556937477566571527928188869772931341279130835121300507543356652116852498842887514087612486777716312948838518225056744439868171904938124497677399854863384970627392262913588834793080758782609978987937733487269685617657523272493560172687906314761019211142732198748170803178154329665147440417642615239303067647116153315578269357043637606459701703303132633023278272853763570703162446766482342321570890716889272091407268230105246092559370229054602531988755338456771380268251307305627886566185690253848175758281258443729902182721652201612662707440467955098273328698608749401636253724073220202502705232201212968911585088703777451371796074167370564790366180631108956376007106476750078342290863752462914652386585395179152891779681121012445291922933773929762767973219982894218399726815279920131300438726011164001827852615394080169019160625648306099830040406852041973976536497698013453890399765687620633991046076237437887219748335804925923718210491755411579889425767527705771580340098704662123034445638992481473154398760985065617855408378160051681570342874437059216565672330671512687190280375864734948771598719305753418128520417543537443995073381642478597005740291676155244548030506301938423177280574036724517639264863942234641971924937367132263283333702049315436706034640226427867558379807426249006452987071302203647535070465192442792376826597277420444814475951049155985985443805555277459879541208701458855585670766546136595834580407274160570442136570067429492865889672647925988233930168569073980086880284010763049148161199782565691555572390390671801008125097917446918241509997581909607849736839426052058059662259434722179425248692587579878979151558654702092516714249504885699818933170791499248365987592507051612948027764757310788732295716995166438764431342434531165688646796789977647913727560697754058124764675262173472404587792106090054841838459461237297517373722410325884766476905085128387709516717605396144735414471638374674175538263982110819731941978257150856783115304406168962856489676846422755514920869318256750812655414084492787574393270872322170058232929542360255079799402743701931477830591072576732079272963934516352231846620240996344846152848361738787653677505453870876253040580374014212345863779898026719523854325957079502023512907167014120963867576737948316138842847276134473729717062046570957668134169689539086964392728044295937450949844163591022621944067531531531813014002694716050622966442900713233931045292715994650224811822409283068174573109084404278261327625080938134184223514712880200716027719574612285916615713876801691325286569666425460946090228381951164901951703734693243606212766988387569980702244625185428311101638850265289502801231246485533339262504350234351671383651107635644655022108661361986702372692431748046721341537652553006199469224896444222351811638539656246934158184478725788712000786575880538390141709273352206218011670518494491519048200300921435330061632457393720121379183263201290987288289909228666365154715989069707718852010904503101799773945724414895024116894157396906403137534789298332774037183235231684479016163643977171500355420417325087881658532480161676846806292201587800516645647001890880775060465140398069075154600633287570503188965716859239789903451962835374427500898297377872494839430439960509336631951381461075557402282622580360393382511119655791416740006950611620989257050369048111183516533329149414046564357949863996167642122025767570758099061560504894598151917121944296832468543109066386208125841864271727485188998121247441561112439205129867070444073220754996962281295088760747642514634362298239448336415678069811671988568121346664452192606065697934740271255452323381512442566187491327576130255189101913979116715671813313481424538096180539380114368149349039988336448147963131631357236082667337161599787107532849567733956295635065531006523053146301276847145026975929562211834941633611910870898461588221396199112440608779237887894862671259152504644447742662332719869279079292632309601183445625386095478719760024316183852292749465219310924911814971841408345665478526593256313030387670437156778807773335175940273440840375123556565833738639767687107000151687526132688752954777777404255839210405439985241307582626145776146168041637486951686904260115338859747982225059531575058671702176686300121670403217549333199327348072564723547783857475222147499794168730695274155827626391578905476996904650533797170435231569925530165682010445024781535077227162268987624706022646867435979977298110537681023232819657584829984342416619303491576024093560054351635884529241750325837927757464367063717662792899431844564325833070867038416520073471737344710232995368991316431104379405243034233102498690572016921849535089563971493690170522649457286300674788848818654758964488329741557392361772018021140953602064321568066556505009149694052512727782855773211036963324558494395477865521234801727997971006180669137776949624238013043843973563250743759767032084313350726155929390965116831414578040345823660806841116773813389931211577828081032407761721163664249189345479760467894287063111390718352631807902570284885725868447385682546064017159031988947362461103195495201830751165974295305550085586898681526743802080689303074305350154611380882831114240638097629120971313239574630685166344367106931535175705004949591283437151754061954575465830800752175051746363785645156080009219230147978824559487251204263166787993103552469155724187939441179476828549017826419363160312220579085974565851828068733570970405490441599919238709623043660512615737621569453674194204937835188659528152132123190487844443985063201486706983478932210696622588895079385070826495264523655903244772281060736943491200534342120596828499500552410589152943814839965256452099388282959014816388885141447346690804255299899863754050755295924309491529120165278594970764497542258445259991750164203310502925979546540332266368037935130982424900486514295643802325336439597751101977857687626063736245162371269713178428059182379411098100414143293708266050308516794637040702303225722151799894439342303658514650063920404369007308593867014924140723457549228798063824942593625738306409994830569886336659261176670132390616292051449097026897599400529726216254175159273484223595434350506378810508396583654374807586690816092035069034289325181097585498659889670645572355422957255252952524035137486961351854096584101176863084743949951492730185429997112882632507933751891764926351429321904254717119898000273237962190529795143411164787207178771106882599275130371702038775576121538302686885223317743141155785608938232532988221450325188770287233574371491777492397724459326345075051806007036409355323959474198628174186863739342141794345871560001080823638649526659255296132787359214464526769879247009210668292165958323050326598859485387357138588643835133469783631161570947010380682369180258162708108468464089218968629613735468640133744670237469390053518413435480675784263839289667403188694000053122297408820553314688438795287140914166554396434910988144683685382964838214422813728410168532374752125961792796298719094556348085407220575308811614078425319666188289512242331920947560755519026144854979763517178501088558094439924602459624302942716042082746704378363183024220901923693387869290714339714938962882119236417510752010676759104199302266183694951833627155513101283131118823360422568714284977835522629375067355404803477076315527656994412290720033958393128819821667845312511914045453266007840109653973692405083313204385816815955615284505360017802461542345780745883825348373326552145867055575667329444680760108515413690240187736655984062257438696244906289086982283726288445346666543333273680483999100394779019479778326874983268880455071056737934140973562499033122785779828881119412416267812475908587303112456822005018435308033132129656592720449185611631712157396587745154782770694063596009883524017799282860926648511995401984604326227234254790728822888450587459208470409691672182220282327842919977339026315873720022614436593479021347017461621653292872530071183301815966313662010262440859022878218742617203924168542503637436897589890481362155190460095721413094382209636360182917472860539592338849169500819620995391292846205542184233328940150502757733440198718679049598831881827003725322909195740701404999590526619131706422739894345274180760354883187225318128791404895661856875146393920178141554171217861051536761615498961254261299351155321462723451372771364442602493807552935767633745885859461366146816168702676650278250530744059732658903590593612994755848037433388190167219827598255062608256030837823070677081555350606038209866265960697694620886543188672811983175334656227570866881057639268412140665479957816992889126335899260608126668146551995263802047811181581599578995491000972173872962767748769663275376421161666721370277592916771491732569951546876238088603338632912901076649584209399232042157995601132973922535707628409424337931716714554740422443933582493676980640146957537908871349080186696097643903657210920619879088710279751073428182413049418235658465849378363914092525800264709853162342454259838245127367624068083596112344948218770135556403804678627124081859777656110366940417415488007923020140750294057798503021085380685727077612381350227680111717704117954070681992732516764122790151554847635800295753506355116119292631330251550626854386154810556763183314202486170452528516543624813767056096505874313742672929874015938260383023374882059073200785370898086482841907395712822993882684968202051575642198628788708021133612579894213520699327186985422148637388276769777071367580062415590881385490118214556642230279346799429931458219911476798565768451058617238767116543484984669256546788383752056747579172276861041067317713607983541456566411283830194173968584844418352144337308093293723885879447095861545379678043896074822061787742229666251080954682045275143477576963834941221653525604023089371565430083987447916389280543712450811528756253736586575969169787150986840556277827039637266006638297569218492973171631793057052599758269826836954794776071582860869352989959059566207106054685986142032372064059143065127823559558557067212371938958479523000470610580975920242489761859239179066521550239631796816156633904253743246935838043290502638872832312466814785558112126107374779133205286477173903739992218238468781502839577665831330146487686183089410630103557878678691148239942483824445944214418453274616034740106689616066785978680124214738359531318789939257866295227406712917441788041234408031929954795367122054532277469910276770043243108114325054556709051767352531309177753073416458823373956873644749084873767732182758564317092259673117619619517242366675119994639799091154555514324768938118649755446553847521930441804693893113034440635232618690320506477301050086458835397570676890109205496195502144357024397704519556322004581395097042940824598439880453122504514205479418320585886379597065854229122511645765975673082204699133709598372447662910838391849390668401942541550108817217760953232278157116135306689307738865049906780792597118520836122373034276491127224683837471185239011132968000799085419349896397876236992274497862110821479720431350752128443663388327897726980383224553686068322138570646114570263062610374748866667052471234235389607691229313456081308254905472614680844788619183041791677191525487490469583431749499269879300006391009943770751634455644941471312174099819987297026035887680466237765013307915998045949958177526160038254709404570800121721362675370294094518684585471180678960627834013904922611594312062352618267237582531123614687415998302062317200968229448035982567447858829124167855728563071518521848349636876711333386022733032882533329263517734701127384847994146090846440496112578162765982518339666219182425273812263123604917317084672715141500968100313454969038641859431474758671074612922377525595701251535477302880210562223979411893761381827260450288290183089340632997639207447903264258640782413372186214096218848534769971557940905450530300367786661714577901476700447160897276943715597860004147281707546657305208525885399682645351828628139599477710647960537170760713019785921042698686269256715326389366031219024633972249622416786669054191558534854154158182830458154526653509080588034423232114063471078085004862047290158962635438695139325548905989053970966873455579963919401702572459546560532514993289624529569848852427841344919028331693468680721547948331180534087179768711771254882707089656376676690535359477811866805102158795644701777768824699576371252716431864941036565348309809454609339209877996921269584904291637400590681914120911757738101288272850693310937471221536051003771000921660028529958363307843729209600713132772899079930329918288744264367038504227560881978272834008610277110495094368057608376039082076456717065344694230219294009914099684069038148141535954531659972688382114468690517486295713446483961847397216267764512505946923777751143649441438181653458493820543683799676145609568646972060714011908141307584191484938114160911465731787572536367193164334882332454307841286104478069916979929687860502063325948253217214083897963653760789001204388848042651851083142638538510501557593179900016227909543530729265414676305449532656554285233922009088503770237486410339696788958257330580457460821601675816114990765092692155725260255712520279514998785956322572952232314942768270132023173645971014647030768014969210534969715347793856556931489319796287550016696046716478074205240281420504042739044811853675281387690223798075636695351157581875421841258813062848790278879318950765140322723713010852677932772345145406720131885048077039956088442094251495725806327167283446488290727172304109107087567633389472992316657403283108417993036723165397081161128056878423108192765598135373103896658038380942928786280874126943346564698873823897258565980441882225154642983825457149287752369794876577571200886456763563925349389783696364901311937297340988203953317801730347016396821270325436227678376689300707088975534305444819281212592804731247425122698180258270979870746674035614496905085869442065856720470283207120853391015226539390552316981473186253640341853154344503070752469146405173282682210081732439199027316983577976638843726798559602257116050738498087613065111002878189650056750276926278924453969860629725750270654306817580649469354210515032976670345120231927694191516071416263612046291589874932066808722276254291089351270465671556565708818219118953194518685742505838352559130212884361547302219912559505696550473689846942850700450269269335416969737939853427798697379093473966650470525394244592606370092370215132416523931281554101041117932638565943271892210560783105961121410813916641407955139456186780054225058032233482868359791361879246448074735381203651270096071806489758230390132270628463292083476749588795461711638612751610712655387961006551729232135217246601306035112581348961097794172383911284976558796027811299564463743397462133956964649851225833123920720945374285594958415498251008455151902817174518936311414776393311431768569544755287741032367045514289463631421379184282799652598764734310251377954518122462376811249565563433417135627819243199684318506110907189158099600351838896286799558499693093603549180606659569933433198135186867205741813569392148801035179350705252664266296811165730865086983806125701419943903838474005963494040678723993712520494476803076138955536600847619635368072657691892707775586386544724201228741588832044482995013310850089751863015878470629196719580830462031419527652057974455042695340503775416143676673655908270147338918362014860648508489604240673528457603639455971238312702427236368784172698025398822489769257588157895282925226189180858747204521968393632655181374655182466554389134463448247245418540525824180429047602706665125849702295738038489389049226826907796893400714786505198898860731810823289785474944756357914736833628323746913844002674084160281289210601179387630706208616105073258990423175515512196387995086089633194895495306949107897707794016032818436567896570759423899064705757446060386395237465946333579323805879757377833468146448124407132530927203982898340844925626717868427652931013206493216284171037157018314666860815678852284108517606310618306872093277367306756359505092207501562692407969261379809628536939475911548135612072777106036782446909235124208197805568137528705702683982075545520331198377404070281968532463573840882200264492988188249139273362232522149664403139118218657995093172289528565591079906151826159957373918222225799404580561623242286005520657814946963267496496151033067408883491437103750677259488135248820265769275948981375888940418711104253927537082475549745162286491368160144254280993834198085795849569127828671142152498516944578984879542538841145396969635168218451177997462009043401922308732266877564752677809588707051482468789735060555755885239119334464808972007120649771926822312714295658623134617525626540093317057667095720034047209888964281908312819657176586593486021626775671148437115562295619920172796446435933676346760366694340009902529871295009033124955861418375019509944429246100411960644973101993305598503316836109444382704668893381437803664326758901209428660504821350081344176919417070808106630097371640694549585954617993674389130978730581373420374574216385536407134985306467193369914574079256052449067323874656420880455603358855472659218162086197481700100673038795504292927377082109296250466740647518994807303930617716305078457243743484074206135760652886137041635075892017185397579112669047352103809707643134891596487741290661320704935834542744998648331235132289789534913403630065834590098733024908339383560536253442117798446195289249040450668537184485287665591289116316930160747466952763849984539880287494048093885857457793396836779347824936116555968486890059724099811830261630006786941480799657399375642650458167530039033476124438571202385967876784587740888369304913453483781537777024537730646379746694566071180718513207169513750407281885872715639035866908962127120123680191627729031059039967065485379184601066419781365757699132953707966868321463808043989560259706261979931996902554413360720429977546088054937692957115510234498682539759070712656622094715815062525015003322196839367597050154325836831966708418572730605991057076855910121753102950351884831106143691217174249538100164636521215298821180157338206781721454884447989077847005504738520382628788641354717784079940175360315721551123326442161968932880025730112341074852356213795997244990081683060698813485726907736624269349375613945514403364870415634558002714113547518724903501805379240648280756860528756495453610755898423924271634831634578657988425296181661228517530992306035715906234859008973065191258620446526890987903903703342602599425479504411600161329840271455258680982018453698437977460316854138566237224011258611231854148986132627431729263087832913829219432032822837205581233250642316195988090305456222848773490995083184237117909905127197339120022141634841492624599182088977851634163405088574518887817618177667470849586094431990804055745805841258102069447122186891636635937149918475619951591051638375893157939826920908157359347391685695134548110150928259661576261506276472191600433355606716108086738291950902537503118926267902179983561681726501324360742704003170375425339057156271004927469804964191144254404123913395985255782515797370456886155309277267822962768307332044069975557674239413495009446723349614698821889707934137697685915553831926419135084725190068135568621576074495781179929853299066382385158627933101272437893544483726058001347853362977416912781456191937766698990633943552888396138604033467695231369360687887211878273822701672799838572203924598401777166935520822165990694755849649551284516058774904035986540635623796851762291971616154229876415893463761688193278863723428102085092448024446117748992519031565779339079553460919099239365806636657703905361770207116670358184092176229460598505344855670404612878900694036054869622590714415568550435912608997069695296508784677452138875912424471408840357252192246944328959649435039549163967173409919201638388186241402390083884420311223861644787588112830152869170270576948017298625761848354612380925479274443917616625571054867983495631397133890838555087234829291806582493883190778134264678661627311760743503308888538059590072259001282427736134900167118045109565721359797936365780016589577743699486905731400414331359538005287378285139013167863470062834722468684439861493170451914322441213276997291438695459028987266799091792914773544361692151233706503813063195862009887205426887590941927748075512910350155922512937832856159079144449159879191478835910023619478932448344132957904272622226820025670875999093837626834147113690414134952404310087480356211208275360941417376459494952262811218584510595759923477133095154365196899970735563098866626694164815018890411229455639758868814842509964229780974881737317173605649977989872660331877190001222053829452950582202998186598369264317981123508381666755119452626508803567942843475890735968081793765660882559562770590803727134632394773098064949426668661711565048523941355499204409780143169647923902025848136428920095485316692690286787458580202459453836859381293034305043752096161321536430292290154325555985666322835072498263150691385286547297809256419504106027518338689788577943278445000900493740967698498965426856301280433807012322447144252709355417516675750825199695729671395975806902594716510321648516749821890654209610398559514926497052540162651499342414468328027824239466640304253338423315588998402400870889967882686432925192357355116760904964611485908382635060734661457612203828515289247050042591087330875785649949765948613427227855483572750779676383839860122971677503466756766525352500103731987139622064173936836368602936898881294965388808425518898312601574412105129538632320859853065144305148756551776066824801980073437390464528227323702426610233850766767980917678980492254246988406744990166108206428446126043964214956922912941133694804881773628499803523973115490754512597605832853698731807413546942534662033729964237241445589113854730064585064696122060309882433599951464015652716813133930559886547178382908261630423624398059004029098191750143490148739344374130372550205814504409135968717082752120556219430595302768560036821182535346583626422792594040578370745178925328391352874943800729758179797765318454420157784733518234998487037867336655695041825259378056490736731715482989222431861431156695473137652756017271218897998941618491441849857320964428038683902206583945728357799562905182945866314950040211344832548613513948736599776406504374008195984429319162754646630848230576721738929547856374500862128073484637945418321724719458545532793239658266311605279544186983309750004722894978520033854182800404037688541675609632517176441790824234829456480588581518651387441767216173274349851909379454734533130186498344948917459584688043956909784786379283629947356520151547831305767442035438206075843653764691030014864954758715293105610524820842719676922242137921572788706604507269679089946047228743857479672393759870678323138159675021930910388192981289500461318907091544291625947342024714977092095409185129726258900400312445170808372808621444289326748318638897421691337124823867786807648049943115705286928253394730329680580244331309042698233965307414152499819053760175322253559513142986206770103953174961251498252430829738480205926712395763467159535495650137740163554327130080136004704000553590079620009388481787353505512730877159506944077775945830738645329126457527562066578498753529430410097319987664596560210940685228199448343795896961049425334949693621263027974866412628900886709105128317014249708844432291370690465653809441671478424533595599522152727080383566623771455178905983794901563839470566429126925544404572432897373319066581286632420983769885911005577007707781343644060404051329947536431586750946869243414898244026055412005702061398102588503728999145203163533404810182393543919604718905996869681794504459625479513238068018238723716001843965105766667024791657905083543887257533802522884503870688155963446273869554201191469178026838183711452495356588562957864133682587583940884286555317573538111083337600205398163938447926635868064437983897128563132764435736080524271484016380941528375252632831806483006247395520235619497357844713040072405003656048080507015712899990389393289548946189981463941113069841481137656910196513729247315806355381866164049514000018698729404283795931831958707893247559624682594607922773155100851779002690381526850940022786354146250002338950981019327564324005301510998763087245273432270123424930908064998604319393384860238011404904155141328636676075735224000979508995304701058442305473439217215223980386104067339525050871534572774383082636875400839416873637826432842905785817362753245825859558943572829926232162546512539875423651731226286054068095024523378001639857360613486753703278571391991775333733265638969695897492135024684059319286629524911562576119432000839049782262975616690357746920979889110194428470998068468670905429073559726438120402702426838480031846999713705949853548139033870368563391799487214285892873763100418644782333126868464137578164255158195826448166631636405870235911826983471203816440748699193637095333250768480016940350299166089141300784822348024525119660789169682712121769527292798248126738197614407730594457419844695037049921156108976861729273956653741702743297247534305412635761928005246846322408997036776441716864628336640442385781063797638647596305500545520217122040992494163536063490294603585239184971684510380551243379835165195520140314815359713609176044381416677855153142597336148596830889323795492939087469126737197317759452250133851863105753479162232499584641417069379658547499767119228751515373620469845771775381979946120909322359650593819996652228648323110738056973719785383083127459460880388123605833357854782371670868278927112728933186280782809020096564980545656885977687088917033647026338087580923115030231907763086394377367090874187634554202168901198442770101070640435563102949875275631797915362009115689976939724254645308882345304973806834189455045527388879116032058362620268258900772177948307607458051022788678989165900849147333842266637282860281316911614220961798391495326191990810387045431039139225446080648991402544559954891261221008297285206013976207768978092612904173369500302256690162088526017171507892481330354882128724145429956894824485572583186955934552964627980342764712808722114352842700518578570670347924947640051037020199302988038150901641635206100925867259272804969189074883851025211137160865448711706613462230046577387936626083739682299533081402765867439697207989282336934292758713800409874805416054920033007843838315291880946164258249701787688439723958946363384559644125710446085983608067424983088795719662514411590276992079175660169126374811788565096785485557762027509184230028643879525999651949981757457501448418396350816055418155609711332927826046003582006093396227259120288703064089513647217350051878339387565456603116135287363304748065148070977667868839486927861197835381573896829383785263603963539358372465088886599454701921548656062385494313379634794750774502839790872351043952174612140007707707709374707485733116582521919366744361295589350563181795977241099182580022917132182622055379828822764596238093629956004381325856567058717857506458941930527103230442424614635710784876352576459365215711432214183169101979440872978155180606767366490570260554063592346310762726645604259408790899614130655373364428773994256962780000143916792585459094817214830344136991666058063501826548122897577879229550502664767061274622850996084550782915316331643122729272925687928909119311211523525833146158783327250331347301067132146364190917252087243587065916570737128401296807390087764730700915369949331478977726690652371768405550201148174694458705286089536678764125277404148889620881736858066242711378602051175358164406658749023493561396916022207805841143517908524879441208688802184910478095036790338346395906431706121658599340927164829201070128085251128380266198701653642008135352393374265239398953701297653658064364175186536410529278027756549728366991410411585819395014761788142124026841188677500270929680915553416801754218134072529527793691188458807736764849978881977354558562931081662696863716045654477606804001120314600374347792348146120921230703424111721255834366286780275080779749402761370207508282264947000742600747004022882443371539186825827683975411737664460389283757440461341780731519802213970782134657857559840926475926197583785533181471110792342194336568257747628608229428378361051133462236345566911090001871817700243125219977976370403479387584276187244185351482491244750002719556757646630671052145128052831897622280300298876436035775619946099097758921717593205075484191908786121635249425085921895753158408735304099365874295718995490801759048823239987667483553710494185239560455985278087238499042285659062834749919197351103873067463409789710580874540189885149912642764430743490663823456838616829709886638344137160214043561572230911680200166730640507983432813274602723286218291997549355275635867032197764310215679806815833244107301686741515317120645449136386885283685683005888993092330128321239533402600714704467617750847059286170497308738415738385529938049172475950853654354810121010552381422118250421031960150101848530253852018309031921958251290171688430151753817138159517422580160843910822371202288299768390483233697409631295671315482253967298950574140495881271961690933344971423275008521499004745494083921486392950686305506329402106055993244328428947471426301684666826038048163278142976338667268723623578703746055148083781194604290482744756154931354085052183155061502864626411307459357754815253374213765954496849486524347058342451010434982488189156537816923821065072962563482018789438462256847821654001158564651056929138881471801962964545157643044218445658021388872713462247587887145798803236886363524300818684246025956047270652847663691702346440526162468731028213553766336062684325996738660409508524869659760950390584466314213805359561580872432084015609975205823043750830192841936329437952823487733557596864331050196527479724387545180290414109468692233678780816107699220298594805725864048108510171321156467458369197414179740986298200368789812758699574871840886846314801807813777668101024424586683685361080312051486457585964304645984377342922282781536438149644300190232400138557278640388538836832180732177778566239112437204019921055622008108040962244371839695030605386265507583248391781719822340998961407697830278345355334784564713506546097869938906404670657660963181382953631664546038124594719357543394250689703550231048095199013556673216033898308148777972767683763924099368183726400582751703100687416387320569601929453839221223068383619329631527128580564834131651613121179056714009763231762594908728747181284594555652753300878479774617484680928284016784238643361722207795299771434291752868640004535504925084689642997424594373523819333457443252824384970889597787807453083557318167900772606185551156762112146116739794557514034754444479516479109121420031043682312147026675669885424549817239162725347232359611398592652918153571138354504281030767665424812126371935735045197387573100594959624928838026182052599068838948832341505544068294568778969020639525862912335927065712287310841459761711848729028310145414381651470322845024741781343305846526416000651960423089931966863031587767802914903645769694617402652261860041953448000546740509834702962168346274123730131463385509506441291841032831435863159640575290029552381122126409668229766849125815068302060119064922676111540325921630212394894930707690516039218298567267911161594206029078901824684201714320635503053950456088575142614996398357544543108546168996639711879104902410553402287817383724299395365395752332128543699857423892527294790901476727219639431324666012504082248982236128005062992569704298298903621934550334115918885882842124808655053684141768682408641092314103706514147382854993653600023897588264177856074276047511921682617879774194769529457358198404645852317521738229114343950176556765607897982353124381677782725497624732116732540301677979275205848166734499586078587024958518873143066125680433784307093582514248018088664893604101400279657740694634692935590868931497171482606638213994064840806286231312957850548250827356253462495333876578584654135902372180733342072695682411850260910110435891594819799778594156478222592393159040683582315173199941850414529255776713795564367620206891045960121409438198994818471945536141045030218266429111491738163357445894503291919150950172088691675179083475021680371843852728269233848473410659324625188865870779300702530718688160801713625788445185802009117750429353080046779629785562082272131735825773727879908837744619686425416227337015858076097388826015271521994385075601189025470495184263522212639222856641506225360108291919444922969392351060769477896318014682728663688936239702002278685362889505052399641888958447664980862514587747339569271020525154432634163644348144926203878430205196899793052678826741297272161002878350814117417214442572142150493496645646403038268264461018239078062737817446279540103152240724169044020007670755462777693360512572018852652126459834329530698889265884553664577400520071725413277744145942131297128235067777541014515969742200806878853563737388535091532787799518042223672878512480341283003722865321927223925235389853310857769971369300779877127300978590015095094289794314562776388033319036628064033480092433140923569630318829931787285167745592549830186282510605690355600112738522838994922993303172151497943283806085287480444879930271753186702979575465497433152532474390060207831797662660982382226777002810845775647826674223302253821048665090991951947220833736073855578369168508768501445750595864487212199886160654705485858630084118604352955335798352431311828312775021691002878736545070647370053493572033414149612786480684044770815825943988565425749682222092889829571554087157719728011618318685938959424367933804506660914088707646698061371836888647512548967622828722166506572322388226886768192601806735074736085544829638785845790746628871156843761492194121602494826314732071689666270442027634424479290439476102839600770817434610697267060238699351655521909550873699944757975170690996296637567484753826841020241377130032925036704991640433204889876510125203267334887832551046865057566823301704358224959004279201528731135601288801461975080740043617198759831747749286102416777421774732855916872164825706359548266134954935464080091194367634590817677452223935922776155005678173001849110165332015169526270072330995897412156621298090999539639704353848416789454138508118869041032461889627974114134145378677987842934509787547444129606954612345599475388878406558527096235779501741246307419140753941657325308478351408023595248594281258874254497566858918067538763119413050568197019814520654220575134368735435511819963814828316837367764669092553462141499930276603582089415349944700308579494002379237595645474732212041142681460258667067947804416497096962972923149832961985797932493801861291380179691506604988441357109307631537999182672255103126615152523134010596591098704852800987944090459483253296355572727870761080124150660153302797073637708306580798110511494034722470650003581000035094636340965726105081419992137774272178102451858039996199092069284446044640690391979359966579808933920877707035471817327781629296646978049197139217227743196831164177260970114932749210265869890450745840563785169043056570464696445861282775260277839495800853475464522311683483127813387014961272834509191642836241859866058983010591904092623688290122754583919784068802079133303293378738500169948052795711570849888867422069268564027281787843246161020888273796209088570519940808485272705036695159133953580937578216899494105746267455671452305411768289944916109452144966017302488074583378960080109183274509072866160958403140026687519628463869231906005513136880332840345809945748927600273783531825464974449156448032951251946185807321299704249933801033771849027018581201970179119027402161931440428855630284757257528948671059866116377997095628345260098762727469533247115688331122793758969797372017254843017395829085671187977751360286261994659859090870074081446825997822920475407943211025587723329013448888235664924602732581171575320744945174410744969075853229782027397609492293046589600736011346676059416467513496305263866607734019207557565351737059994503527010549559015751794127245075059657200531774421167255627526308500625542793551382771350957173078290185824229245034997860943626045628520774152684101372819812198907715134963101596421367218396405984966554409451565676163259121477149814680848739080567989170827583344199329597671236120695648979624363993452135944071770269181279915713863961983279044775287581134003962621761177139337323760233433211519289933100190923510097689382492521024165578250525053309183436349570473850343678869850061832796918265678244279603818390915071229095615973467820931278645087772596053884392116184766913150792773772852184938477786656846865346554379723596331971675650489654837293839433742939830305957122164601191642884840092773732106668175225055713979491302126898255965562747522599286298075088036574710532417459921721883552394422221430155102510927760921820729752034047612784924375554443291390734284410477755821031638948810098300770333240997739678962128009716400382278203253370920794938357339286407122207100193184626617315494986844401366166051685564222951350748053553484148502359729345894726556048063528469952804267507815811177803302320442101826690684337308217670921230088111591319321730373873170652838666844782122795629771045147601373249522421127436393714878352210610274060280185502919257996206190696299983323996823737205439122433453152183516081418699159088354860772150757388868035343577511586606006915524137648897952857210205734398996296796316350978895743192595322722236931667769674543995011500135171431986512205915021835166763896385673550253841827511834184583766823647582268650230445219684740298436765456672674401684164885089415085265716164104125672834935888957119688922985449396359981858281261537904337040750828878393974070402815614502579064862646133523523811734806088161292853633661566941848163310976965700176692424467769478001955594206708994562168598569747538577302823093327054751441593752658614938679274352495327517081732856055227546586541760778778801646969123066327260242795369749512401379678167181452369481837086011155407300643051585204654349003954255960644022385526429927036699626115108287606876491214117211365715201710958379810447061005517941162296642200236047629026172929579351744113841051745847825723413981298803083518029711770287339319764744287608188576780099704391397238464384610496162537068082207987264091994979494531650987831451119766032994916145464789870669895510950957364115423024063154692030481465010684184089698853446337010102332586329549447699268196447943670517028593598367552328196853209552374788277486165275110381462707027555424376020306919115437420853442465039421695709107964480166562395686448431615400530527767787266791249800941745712116769098557538305249677522360473983444369338759583426446986971961215215484865597423318720614438129799989463838510441179678219293649375682710042499699319521052303536717258838233412768730312724163837792686264310109776514148282219204145368705046947897905989373884591456259533742065749579455657490542601175736857265254156791682188322830065828777223793966736244932711750073321125361485049544096847490066339973938327391039224310834181609497929176054526391950892388095502677206488262754135853246531771535545517217458946218261353498789473529589120811449317322449081613953402511800952079247940757878429567547345229374112323116998165717634741149359142558811622405360264907344467808250572240840390786687310455095066259971043875233759575138614773429164129150597863775775146837034594873840047099672318959260051356069306124253471908810590280049504908241462035176588957228147102871899013006355378036709562259138490261558897271873698600672428077260580997610700045944833125829087825940389517881307022059218385071900887497386475912916086085934724353462060175260001590935832747600928894925346806776137440535166282270076027690633578173325716327193327425813956495595005894981801456314294203006868127350145651906918182492209693788055992833978635464513151221496710098976257983710057155542885034106727135137521594685961722064084931384962783538881685642928694314812356326059923561443293753052805643512592656734179889368141064718227205675422557449447819633751407873359598992258160472685257069309371322928459795460764381395373650976150340402140388741628547813685544806311334404511776852202669033920761510316925533303256072299178872725573750019687972874021525104872020595457941545729353315273057346318586460262647175552898897987702354835711956705854405120791577115713784456400956015267327909861964419276700954690279992431592856541717300737410507283076406459193870350840558806492110874783386119674677694355999445426078750615635840555787867467646511963256429099923557035141991459432729345800697546554327169463636304568540662016571249628895142659606873805609092467911646935503912653025502367199781881746577567771650365970567563534911010420471542600816093505396276530385794131222451149603439949147320121075026539182023890040103610233743072850938810147726822228580465483412006661241983453935469230921846206404048710325653021597234118634044116577696618828704953416949132126582317606747672074584192361324681752484293502224787300555425413937908637752812425501885191293239556932964715288481885887930295135739079011790574337021232461488264184641665849586413068561112453809773836081898317128085328710020991730138449725200039463946690807467470885314295014566221537454791532157543939599014996295018647828913897271098147301808812705904189827632756920511756658796922350786050673990148397388367728440212402407939296952807097212735824054969659213320705836434021271964958396619255566077886884089253903537486348664058635220028556705840126583012510184780690625344337628488951200843447322031607577795869746990028905762098617443036856731974549344254901961280097549490484004371216694103911928298297308052853238102830189301788585275899233177016143777677111097285208424820099816618655837739118243090828338376682416118914095938667865491712177932613655527746775916160506393952650332208445945396078941174413598623401216988780180721403601272695476644196343760277693117041418426993390544550957402790746040814022090740779763919845487716176428311231340472504740647445208187948560435878446644491795003883399183409594139742764918016484287598441576352720551075493980563863188736520800656172673022457392412222330262931282029712661316971802166209740321680298932225886416929480543024572542702030386346980027839073276308779584414232528595100096352191280919783945515609093757884289951951063919208762890154419600572799160986999797455580152075305556842232852495097859035558317789133397592203583118994307092492544413061663607073366743450953145998091994972860422124320756875590909899446851400259090755268822072711121828812542030227867178201353717981622854047524543499501659219368427044057456030297934901934491912081527440592561715545534561695380150510604009866697303865351628794287106266424158063172046134309501783109271027633376606129040038186842423508719295137751192986169479287891793832598505446297055094845562278387267279175088906691378017740050735555038459259288171630399799930004750152711212894777956892123485288771708879279013577326538919662977934704434831055161067287253973000941784438328882798628718174430024411272243189110682880265851880285694913272182574137691216805671824388456054697360169665638500811672470716280555472794137664519178593844373502767025507925297768807932949999522363931591020486370082777893129216029917758753843328638691031458577604342684541280263237949714727937746683633079068711633642276308280470277256009707958296297810146198180785280401156676955447535270111344285955500115459865356844721138462100298844892527254074404101514983563041372753326906268578203383036908552819714666680253640621019390389675710150815431708764391637369620224536374756363023482682510846218313723519896548629850810011268510006584349608349732315615516244552737636647504345590940835789445523149163096944271490487170318913736908255966039425107260517349508282866001629965231828235286693915511741074873933020336275426380339207658818853878188971875344682852742974316871265665145670031030696299041016168355607871283703183909642127540708056037456237833341267367347487915781032924043035257409423651610353080763082026494076079936739952749387007960629855161286528014184129574017217551657642245469496930307878740113027519972700175153900780894406487319664428280851689282448546160849306435431152616224437849941933091501585214303810999935723106520993449013939692886684410756254817954940368314169410938048120546482258394909966384790164109044154894660546717862096702751555886841815970222991550560702957596088798276058254713443045974029308477779135038280369010654114186686398035766397741662108536518576269860595931756186510235244030049199325318990369030915611772917487135093940407273147657997922298527633625993389084554061768552024514800027410152124332708270905833478768151788927566908000784656794376463705510265843349653307411483628092459997248881261251440536295281735839242297137780650814273510116873962315131864186854857677737864657600070885610039839901736326863716422662196687130416018872252686053307444246830301938216163969735874520470627350476921437714746381213040147007548811643156807408979924377245892491232055140842199192685449568204434516041796783380813007061611170633487897371478278741164087262039187135279799061362845457330537276194577319377506569919145326666141908814048571048165911794151643158315864884707588491462663923612368243764415991089901763452013744024394937676074789881126535420717772373033384557139784364486814100823350278203913532106274682389380207696481647593458090413190401974218585258813712470248898424344643659421116199989749139122754305548317881064422607585932615475608923432971498890455612006138396523365958066352512216727616824904704645798832221754480229937613026146195736363122909582871412711224833890884975403438357451014336106892469741525769549989421930366425809081701776003778900799643475147236986827110335100091510342580931772129058145161768800406202359175118901290452741885675045379064582097553723031555815753185579316818680396487435874966540316424136962298768444615352310120713367555372658914418891986888072229929174474233184473794733274390097235131924680109688566182716257145636346016372670373140567211324393282029165414697652754191787050966860775989105883714219280712759643391878921681822188548732683480627249403861546077692025634755594927128193843185711201832437389279906609763440278189815751381323927627434423600943020181233394500766121359301757705546578716112561567102548030158385661579536872708304571763055908474557523220393668362721818082878230071278611517695681193710748018096638115420156039622599602950277186199868580780894951069623666576693923592834375390926911665675884382217634586180442515726009339801428507866209966489960937857551524964155022288792741068126447412304314666725741598740816504115887921977619780562795603477564911756753915701917679341725259545175799426331395082003229162238219988248885844711764219228503663568685448695684830907476275444229013212007128001662511225919764416944213846878403718226725431966701773917220238725251013354877794618542657569841668657596324411714604981029442125296745822530200085830586588818489137159114888862499631444915981200873533444532498373691450349587248009071692333805867320019751994653520004329161663525422029613673925845082817401834007208152591351547421922847935781574636157791329443734014550816894070938706751121471603824565352268043088313432613475458201146385842324862739073737370995140523731433067631996189182524048319277386581427534103759165940248119159921536607781647949614922899284202602994654376370311950304523225897334810904290416593894483158106793292546681720030114053031640908900644218767812212352480960607065792956422187239504888484128903899620771392763830448038863302715454829237308114544730309981407124741287645466476924530885200099286724927002256559768302039461947238259950753785715886328190327498878112536077955725720572511444818169746292947025711238409146781547894843497429064841594774904124287874635873122958376040566160577710907383704608756517315169953784352992181204672490971256888023002421070781065286692449594885778608712111577127414789477600929083276322779281412553193210884992568662619841120013662561501200850950030671627651787470981502787873505592026721878015609626641204821844096723693164652872120922578825103981046216807585870601249829346409433493973772629338074534096302477876113447253903644076188386777300361288205781275593532372111836672586221313988605209673033758129109543180053636304241484787168211917947568979085704340193898025005771921281878214591795988334658924689184778101742610916326360717200676906525908153664203103016123444692870719095582693104479154251682605808872873828304500800651094586187811800386747589743976043588585726239882394190146409185508195464300012756004121830621429074186295279855439939022283410488956607556856361709923523301039482314710076079529738093788657133273358872479009148379965427133010003087196891899362904081982910868604106834028232113840573531653204669900191620167494481795676916703855711252280523635555935385130094865341133066957713671719097436452837619852552912511762386673369396568660921007905356621377506320577541421594271421625122591326007037808336223494217058351486520120252785209078612845038356156245518177758482016410631320420129546432486537247376286186187482241549545212784448795918158784359040104682597079057888342615878035804671419667660727296664879175074128660626797703055759389091933717158979573501514585571758032377272175872262442522876645916202556344290027682189380726573020547149496161266640202331918214232619188125955217841749643687182595092377463761070569302637032077291793352772411884424193463206343687827713026628799862041494439619068678158031169789277131167590177811365744822383166696732382002302533991798595504154195534131813193357971592353445867962535208339621222377837866027899510547845719506984075016363193475155363198834185039314403894598075787094878081096662483952442024076287131598112310299748424307429325357031558619206025809205296860051199987037384060056382487367046847074556447664736631504686280789927880448999825560981162583886999804302684300501403274203372567350397079375021911097407529641250663392119727213241564852807729256063625164522645000322232579724200121354715426187039554680281961707599284320082395451395925760496315609313453096227165988279271201135733183919373455954694471782539689869631398408653354823554093317711459954230948520356866679263561964695009083625445860058605015885408773615847829565615728089671311416925525783368995902301857019668807007006171913718431857575499410090665646927913558282221248702162257970964576253204444693611332215915667844441911257218882079686861613534915459826436385718251355076739591964725915702599104593124299219540489113065246069017709013032413052048978396385157922190177130077784240179182111814852188661487149142202445653917131498599663977403679143815500504569296101338053617878417583254520114914509285252266780780334441362701042024580675957122360505445334426126074531199830360435429282359761256268258018533091081113670488816109092041420268809784847597511957488634270018900300836232268206438736782063768125491669690309079685049208918944187761053865580638764119712815453874255683851725585767039851453731761129363598303494893737866141060911636325531484233603363961879267842339234567932203658255403503596403117785108143553286156370133174739384803607222464050311729335121837215735611456202004478389595359105284884013539466091799864331590205198416767015475394170326718870810620555679059015313238510031401639753306382822272536656214237238278458698786710830539520261786755960293225263128119099740490159942059884549797119161513243035171943189693658395733402390451896928232953647088928353246253798562492779585820572736953598108679902767693970912691951759314811275642237710567433201746229888063984195919589401791333441217812137922190854728071168311678134453830341421709686341974243666112466540691241273122801670279442025339394235489823110842212035165792471585311198393269316276297676494453422131773484165166195364982471067862759820907351511434034016246896735507486247022021199652209188978259906673820955207919542372749216100924808670200166263867073064864463453098650002417887145506063984971825302592790309797914385840533253788412901432723190291158479413585899740409064556405440090085783748445107988441875678262589693249387795359016732321815053816361607532769812783209922463018353858965495902710700447700029772907297966869963282589589650863401448307777268480382436569873425252291100837020010477280978482304578675516566744568900182700698469760882608876111759523627612380732525697717930706951434957945572780396535777421929563408662112845413901026484241073504305699994035860232356824198580142894251865634651419232712630204559184498385456805871081466122063707193447594749226171520426808373750473546321371453359282186886273467702995627615546535670125599806739672068091183039805290412455811032151894310154339226570682537941645956363608036535202080266732906521800426305159566717135331097606704232462207147990814679132857858378601505549427689545566247496242732582557044517301310242570729181035819042962118391162845340626216379670713232689184921302637133699048796987644731496312877479139375481259416228045381839755449297872788527862371955077461838979637306437079867351194874553088857319885317984860393293887684915649483456876035184765335356697989810504272389261089897845058181061796849542561115151273973843328523190476490676996664527433102825426338640674658602971216133714093527657062274264592631773157033971239779365105560173258182029388137655730248857237917487598992682836836104204963797091916506517691450502804702764019940784504067887485954024846720378434688513270615416701542365952787288710154639939570131009846458017142365613360984303983567071533007908793811190651408850626681071885807164546925858785825923845173569769480132059823908422916883206896337346715785028971879574090051336972634463824663114321328753799719917007208617632660293637260208306036693040990739705339013987557775352898695666653401404535444628120368781737123858376753098935125851001407141991762471187596616754481363431504692267868979777236074384556741842013040550931399692718859124073701486562210483801581279418048588450245369280030599525591349511955478695021783468003327317127967624549139773721221425676897238178430243810120729483870411254340409364971008576851195848290068893457988110473721418242739483000841225525647654814388139584325471279410617991244661460833675068682640068734533149303591166774557701882344246783319845569011871771739819616451123024918178420012193930938418404611845457584288347988074179294567492199921615918326606325915571043114388795115484401926180999590148926229243400991000182922463208154258770121615622068142709715203864895706814254673560958653645448320251383504296541298361398278218780084357725024871489920511505181988612725294799371465506862620425834071305319479266268184541395069787282067339512284877333187877094988539297750824769863633512394161828709612311479313221928037240479505657010226341992377629471065139507909952720006897371897199430931763385980070242097020099156659564208604771467488867208340481033097932972493617819372772711055284920555705405456785318412169443577532026076978896977522003005570873748812456882797989834680838039127728033787155836645895906331746929301904262919668580623120357478185905139990577908502244595564833815693949408864636994343250582034317308359509348657701093724795412223588006014973827953180801125287598146590148852032009244728026387959430885926815384324134111708477525626847689861378388856804233550653221437841347075459104026794248674889737717793023821514709596998838237269784790060579517979846227620157899795380050049761104403284795728334645044862390752849181105786840196647161749938845355167195611350781632102682312882798878190376722642966664764796552815296961068319598390643755518283441098033651285699985589421818578168798981349700317769366001533131196630612496150938499514179658419099958411108970033111375213561434082465776331126440204996128932063546014141940577673516740503296063722150258344088627157201594615002132513225676215986632499394103688466123167530053946018956234375008819261064671027488331005489757734324732042366698094978856241513414881612710173413300194412997421804353183135335789355935101888424768514969256447140790148154482961758765637923259935957335594290451681155627028715091849330656881214957796488914900589825087048903923247839195682694046257399946410649291854923709635587362264271895515116048541121480373610395625396409502654930421797420219176863261579251506333082542732119730216101451923776811760957887520353869739161812211763382099212728175436963606946653642055332391292458380496111942032522471413823825514753165635242505410475690958292587911603633761090490566577619514995766853366711274656301065952534342589577030060521237329887659598572402889336902288818781301186106637934353638053859852053209212968868446717144322016432887607007172947598318064859426790780658354203053032625188513931187341757563973546938275240734559227238893464245893000910332192371116560999066662610886924984946945626616727378834984979176461036030040662598202173826869599087276698635180845438852819615663949178991748039425928256370123402927073220724930676290514493684983158909390417173439208150909966354277765679110437624844715473758858300398589390269673577019100776166541763869483433157656314086088149020258160860933984627406554893835947857037710176968315912124067897841843048972420883793484815464420992635851632722333182330527191208468156519792624946435077269614345235173956163183908400704438653593798783034771491763940537980891713654598760804825595208380736413339889412631432128722185782182061976648130556403197838047791798208949655501562243156404375285129182489630079664968907780847288735556481679847237630659357330405979322920378101669876679839784989798424633761171734021543380381453771272530916387125883869371361595849141504508706415501566842612670790634821759697851138920697937944766730570158333746528209431109297106469200064968063665821061893229775520630569982928477828395986406302728320235848095682238209864675478352867210799724034706924071730015474276589407908465167824561159011480015327164183547625394129987273253153012399786475660980549123522326109825767853235510474083039441546984591248448996343494384308443382864113134662930067111822969243053821875909435350952168051677241126875360025767500030098671344698466285813600262824429665791681454382594861946673274312768102644919488973307806951314986632030219530282677927259391465462008045202763683574453871842105212961053359773667762786886363100475564808789687110496645947925781865812383054961790194603240634010555415025640887009085034963397805068637765626868336030830727098621572899678686182516793911234748304319809651693052993294041075394283884994024775853894476888050951769682929302201358953893707778746149000389351085524467908088020006134761054335063954019543186981991905571771655844669514713679250508124163988043621699890431320867544501920943695549243481336338632497673826015259055716964449063099810777229995326063751157607677478023107271008782853949394471957690822886370061103014366703267539362360840479055204964106631755638770960689684056382660827119899690449282701584050892211010660956968391761930542946520509532814243096353485564932089816416989321592133151947676277271679740043154618549822810361890697099218760913779421670150877899444733485266422392758439854666388647149332001328682719687254927837773737121692188685517938343985090663851163463143541578116898600996835580605601929026023750039070593435016082337915264958102004897325677172987318862918655542419374250221584689697184384053191034253374590230976725956557318960222287617838603567115984652298898981123409339662569796277212723538960608697210517250479151683598155230143918499948993527712561057550240991931552385309966643179561666212905948113293604674508543877056525760441712290234434279394614570607239680866078400888465954225246789198548848354605210317759258939538684429967421063652221599037003791518230734191821202136384938256286896247953949500234066502227098865848722031754828455795242996428080050885009427815045701211913518302631521853823551053803143489214405239844365679041730060664409961677098511238444439751056560801700523442877417312695036094159596935528002052024056592488476959279345604364194387276473331455939011863731850907267223049979251778469814400781912989839402873256643602918124224472596141439722060466388113565609143549740454223529783128306062414218373820369847064052952923664964882569422599086659761810834758253516833370926848957447043579933781044595741384712532679838413710257008327566406441494732839058945405881685869083616615041145402964751611452445527720984049447674618477114905458690352368692811975749921775433840914326024458419091082426190685562740344907429928673351225541177305572606766946536377469675434195686412336958557995305852760865222810270074007341858737594237926072370550762473994067369340067025931016807857018411242906339549729196457898440351786656587314807813946918296172041056150839081781819818463994582430586546054061686417406942496879381886928127003547431621011060332032542456202241807782981449404199887463409119478611773363193429026664587249995434303756794653251461613257270459517659937228956150760634419146856729735341892837254911693781355118283888855467862005998642832970716155206576093330790370804733210863054718558916617992294366866433614230685704887564044636678431678756281483429302474898494175618197949513069361736427276858707057501600516374758844097200897201780580760705254016479801145934784368208264192375879769058854665368365104119163283320130368365433506043131020487484903161802235394400991974660870602211574637694768837478234562478630608815504493357131592668954901271399303546628868264958911472508339633386111830413385107807751689214184128013659491829140293520919224047714976379721971672237498771402873195628200908599490570680560196727566688587606410926055814567420942613298961619294467301527418881433177367653453566541906252117552859079290820943739389921418787030401462307346232759703478207334411289327248023603046077087708688883572158687450119339286452480906200092980980673093842737200704884780497073355197059772274605183536152908184519896576786356443405334389517686653736458751057676861738365513362805221889811248954371608602923928053349636120685285920553357312729268949469301419354341286308810228777734227445001353277137913440025337268874929520471822621592210508477876431771487276354040132394476161930946273134916385719525541795609557333082028457415055027006891330965057172641709415006488176195351898406911847893457354174307934290513855152776698058557376047720671355850749765902514133542849676850084594825205809465342384890947763825855388537467421354974105408087552528665358396154197866886890303842920377913094356132609805846010860415854918927749909193072263941635526214416295403394417813364921618231403274002420634017524179086094890164010438968378162561613027431656116223667569310223675343692426366267842675059790743151306779088710918820801342772605486432875033812820170669500646801690721155835413939543564420890322215165847731616998087891410409045606787434970890118336999231352822532655382377777014975943984116890211564302387455001440640177600235415957414742857743388687261960148963691313414397780221300198973081355624024691916754333090527761356989368400170532003101541861775818971640094252571726724563426232503136479337636005954682983405007097817887196434628095865537551143991778083105991944721431194407652203239498964747796924416520794393293398173272204316700831822771020499387682210376641808037627948488864977613600892622281896825070204412915166025568195658206012302243445551984779981825258099920839176304244695210065234865047821526923932159528095384136974889019330838663531408260232566510268824957548183773145370191728595638005680004984513026449941216185748445066418384075182805819763624818599355732823006701589386680080746317434354792339377345463405557209924465111874599585988685195075702154551691902149500915455528733759521314819286377709616744250700902304223164343229893350847881609300871896552913937236643703468401614195469659843852799860138377153404043085035866274406136075414539025678355520705142000163926746243217933400191555762192250627405138013413155644918112393056426959630336021186787847871218773599165151655689284604617996739040806591591411809998942859227180888455278162243693407815115630671647780037877142681407313532824991924389686210299028459649253389330828838472388066109704871574808780485801740333322334702024160314361657933687980734202914183533015346671292462454424675149993759033452880166825000297855068853836336914736216945344392668517388053972122280167674863755412060520780432953205172764261335395603419851007732606026741898934903390187907849294080494061166735904834331342624829800671346761124521570144563321216801138727410659686291277177645097318008702879235698552937014520217366693980448507209071269552547851834985400427720125335690033310301123500744028581057346065813239841340956628231219233993534381516938327895219577121414931322127467485503576433309712679550474562753028585828612541708026488876174857559458126217593507931655042731702008549982849488879118598131187090000700532769779806423155393633639053879236843637730305724368304767037259070000047991478706641631687199533823460743165857520910481464247585121874262885599853701894732873099382424679113291705555347612035661406612669664656268262246887400413879491393433294591991954699925233880955188310671974575508928096919729396554867413491631442439211499525194209333050107438407209698494746654307077721605552128486542146543387309618192987322138800857430158028346435257102896361876543039721634449784257597825897656505219262992658481870126635218415833792291579694365808907650176023365997009527135674373179237668453462117475998481279954790656831084444032412318683226738066111304276160058889221313657327279413221265306363980464584829687890624375812419138763808482611847373089403782057450766099892988410715422721171580544669272131063748434363566801280612656658199756386807356706354301665607824873575883823774979714347279665166448087013794726574664715828649250917373687299144849128040466318410896632592339044172898978072484220159532306903143567065518823211642660768277597333219276794966970018236750698149174200972476385489134010837394402723683382635030667167572789117423882497094228596524575686182220646251373215847704377372419008011680669576693496850632123900910280573216165494056387264030631830113257689399855217690021341567395497201171776352723345988236924936997237576234858775686581600564230762583398068524081533724687546168968317575693921950578667338680166884611463571691422061141511755089012896877960695742594846062159270319436500394571789866545450808344278140110252772449595442671413052138780369266405707574098728712215334462796767237195570068945505297708650425336592919907422596341462364450523455273240369359827613962486065317060409402990103171122132713267073766773795585953410683679781488067874813658050492691584768804503404715395540189482212031120092977296764449225296843049975559754308658178434504323095599893167131324704001069865570393742581628369155075161865458860696313742684333925563199066106483770040439640048041329185159457700909683112790718117635896025250025916640115916665789446962079889843630306299282798570397390808585538478147475798394310204071719502471253587602232443654488405965223639909559989432295934132581634696672082638630483577531235845349791163363617218936984755034766761173508979573995905792220734350882927601018745209977600095722214228241255060571561618384994655946971881545759844644766439619301365028128815322637253719833558882877196999022728680000557040168259248411174049691390600009367298148032155803029711300256823445576456484685340578339539156770879085688344315098412594223547479889077439629801088144767081979594392221546966705566264519675374661463352967377376939111851855462304826732601382325633891894742853182173537543069652428902269911994686199441726747124353316223927116590029139494773864280389087822405336470183148739683169746175297454900685846790083156705005859249215015042368534638027479638758987465953258705400992952654682389170179419506843200440264708586153446897234825703213229727451280292370991438711494933902538692074184419915036076487537002441119556647940869716740540697596388962034629045862097327076918929818508023322169869391407796030367722530304481703854553355005375116595877336558830606184780865880247718649427822166850173591844230841470320427578222315114304084283553968849158010324093780349753703381014357857858358513421679605557926420350740858449759431855543053960228546488535477063956989770309558967695065856367148513654273981440596649233249711381313103853205658110711764687613768961995808408312769793173176064501313744337799669821937179364788536808020048311162660530019746546439229760180525614351773155709365658302060878192295726857039260592533449508282487680121199208116736668494274074064168800733653378784359785535173189974826731124976977145436388799016549113445413441248265272728016290699958830367225346040137413619674864113720486343554039248952592522023385900356276881312621226315801247337199745160337100741569873720683556604337969211084202572101118322499379848225582459358036588760999513778933557785734905144134838663467543877124869287076382839923202401039295276443382652799707429377971985132978358254954241910793852664293978982024676494230105722816410042078629704557382208099568022957891177826943404555996437658388521891844721384399412111603882014963480985919962573816525658070046262867445329222181807985109705277661204708680689846821254470802226809755666342137338538999085218079755021551570585503094603669616662360322400801257404484448910688707139288174249293960614495594004077552330624370869982242130537747934259417272892695053034693456169754886740711234513034861991470107900519966305890493253993471569562094863272342004688476045244165679167575852928177368240042665568029843999487755933704809689403219879632036540298223878203286828902554419211428707854542325016550008618242709986826580737355272000066089809612616714443927939854740399294719924943645089121337313304334318363216757592612285876024268869918307985697223869373495153482318850047793980011327733515550794651348114813717231994227872294444390371759912226193128520493767059092031435344854818406213037491534022589109894539003735376967199665185575401263858823795145991572955420708245258459786557216069892249565345851667271466043865277710400035676370476276811685136665013813148176273114564379029725812552703766843784342945665408959100567396136913364422920206941629307235101507186787031930945069670393861482425814395266787172762190693022116762655485439097999948461542963509494344623459593396388548909113907118559765314582728271137153640592627070399986918820336509595919853474372727047436771734074424099710048730548337084321782076780585824108826705042038486520258384905050412843490093618493519492950513637191979348973471823704949871974117313677946698909058542764378371914005681569354611792104333224299974794115962211027800869470526526038895109688615930636985329471557626195509712775707726296394120904120830660401047297038186865596409798767947210607667533497536470509975110028650467715626706370494858491039738570753519042367255270821314316411333553719918797869768757309236419763416574681996176695823394784368934417958181439134885442558965309069216971405498791638707017934662448308092525159593312721180394261582363376319826753769091967115358602098503364667447045392384135044732763747027053368720715127921467158329718805926362865870595641936406630133617912566103992368086361184569920783369108431386060505329847532346098367934200874235574054416113808641001611026788676471957796085124132349415647852100361981644751388933473773818933868995482143863055568384806987681456354943209650691481853692066978515099730037423287164272469996708605345670519009281201505148639264291175538554129177547617871239414650485809686943550465061243765557017216805830855837469157577738166614207962526500110089325290060790356388046614244076594056984209326319330834483490111006148777247713609170552659788232032138030452439529253587625873999320130939948671733615760699867362627639997808874499889306810812048133891293489321342391856365192955842889199536202924762399752008512286984909486300195902311573179126534965386877699292691848864978142297288825740076313613378636963499870065589067982996587364045577931608582401820347313498161269676577734793135359553324826613380340574272930471542095630334525598913775521596293184649192502589260252303537115836716293923234755599070574515483858369937124801440217123312652649230239111296591624691736756553162234725894767810943710993686737886218996615747372664005045868980079922210850670197521719385860507351719378038671778268803408049816006265317902852159103876517622065884384192506926574314422628531704371001011749432204290218784465643479836177608069694975797740632204836377165539519393119497384709493249288221644758331804347899330329359591599981923643396808204738680643135378269469926116459002405360992319929241352361398222695971803432115798175645797633047868598014946562053751061851968802006632730592359003450949781449966133629648133367035507547147969949979369389049053039568609387025515862890195162511888924894883019031786583943402612459699324829277211245324990456439501080275596489567608575284606944904771513627274157622036237489069859974132694723013378834793595997166639837289624260904251806263681499597539633225461856424672975300007064315638037445207196596369155519128860787903367220917392318402831038704896700865340511526858347211337555643627860703249659449703013347189217025350825979501430491816825568698576225978349459881323240357410597582337984820534189037758916314694894006005076563249810887555620679974985224826642175922881263958748173080871524860176148745886000985612402487256321766404320244836116153640422817675158793878089914815872678015367000392568897009414101191510974401461930909218757360985513968885376226181241176362716586332839697343937753385421692898177766062646568742906856075072269745685008801286240680865319442877170234208878426764144048231224058793912145595981111486393651172219154732791810217969812434860552687818550351611486937751568347987302212608434735034210547885313652725393780166753084820835861616686917740838318903542155624205316643190013023705000597503163993881984429179286614634279004026339715345481067182322173480632674750185163636342510654991645456916240910129095933032970373086249500198473993322691635811862757779293666612310951579105501509535196448224908024844065419523782323921060171097244574835200089425833162820292917838388809738506405942259762931571331668179212794370869545546830224010705285457749426713949563686052877355712809210433149615610852478253174395214079546088378125774279991025750138477985474274550779306003976255194390256027632401195775784121960370396981839220020936789246591954779632803111282490181298038580617490993605852870965184915841711527307711172770887933872135075402586184085500392677124696803185636169488511631558359216411095292065927748260363652647288871437430385928423599552753535046481120287388424205867373146512071018621648703325974740785601684747617320191288814292168891052148859237661477972197484047608453808442362015666575169722661764035472594623273326710871030225322282543157566662339035889223019841883786745191407000148125886227985389017446759026578457282454522383605341092464602687080543020090512609137515035367070216268965516774126581135295784215796618303688683582254609983973885085621593134085370864356214802142372456542090071951160611252899630492623614502640745285523252626111459253507640603423919280629684638762999331803732330245148474205616528203677304481527037674656074203657085393524008224571984457900174593084465089255781317865138614206405912404037351327997009326515821332555891951809179771329697705008756200937905938396428538426911598339285597044985973042646500500550972799930307551447385193521136184860261416923165568557106099248435797563876489440790384440790082482810535898245273492883964486401517716852852073980482404771059754012717171282799981488118192406857994240244207119537904421609755717752812481108453384444692460574623508510529413993751013869713154870873474164177656807672699555353290348283891647668177278155268762781936799478053497084503987497249373578232783854291278212045779580983198353556675332331110143618810505904113473466578453139581159440179876984713176554480365978719233000433520940470444081399845146173638096321858551798325926865125288312529805560143790602783283776531123828012857074375047475913695850319617044443078046592199298534989878268472249923540419517442850871384795286722078695147497508754220281599170967470221994569608875166304271914647531584852393791676364145708206446823809375591985314879581714452731075956797419528971541565868791186261120084818597695323649402421065038140663479324745935259987874610235940778025251705035197483250600903545166308026135551745594618780593833547594855319830908913594788764577276457396180783942671195831340162282213207599789029384341153913739676878311098727093556491137657284727076362921799205761403646960117153763352831350519450796216465643380125827169612432128672255742869609977796770315592280043725631998323609922663271282719541677199955181107597286100504426000403052589419299721447380649868228040615109100597885305229869636923816275336924903364048674525828128781171892754859705857135380844010711464521533826920974076730495452843250231923630711787641557539853319026127912853664522182730562817373334083084125661230834748002725520193869432773942406575517949896686346085240979882294325789455036304414480634846165390878913009033567564096761562626676350440215821060801266090880362072469322077643134600698361362373115187097348171210952056912299832880255587502674421328093992493607798309739959114880761960899135445256264416262643403180895938936429969477482677725492810826990292146933752149935538449064736459962882880395312190179755327467538550791080161866166883363020045326553717185742332286941723826292393869463644178607858368281207903404498277228664199848377638818151665134232414696152775231458288176489730141436861908638188062579726159674087951785472308654258020689195330497815227148592629153531253688802203044677136431608105397128463321403252220135702666389467719055125798098572292720931094089178326456213032428940358076952580979407353045704630690162651105598058262471862994251056741299371613069540894557607254436107904526924364217668460755631577715770595792582212178958408009775744859928570894871264756858489316001356331554884808375212581815670736993487340886066524804138195806262790724809385566021444649345731902028533057988817101468373237191284872790520078523430843052303681119419321908720079021295401317981755296234780566888595997540850436453857798370499371977959810991685361668854898546713327208856878887469102807946550955990249806898582120985813159158693538683961963141251774939385030610625604551229152277905468482205457651591785454276142981967175223900849475465790246481237812935095173406716976956292840087655344475206607771983471297243756155130105297349896273561229876469870643524480773687963499274487236965885842859028537129378490428612601587553750185391340503109301322464649828785496075564504783127332578724034284137987911378735960260560516594005855509518756228906660967892356339648541333717872219012809814180651006298437744859423331804324010245831991682439772951582507683106835642043905670168644984656721273131858919382960594044026653990707359890303908411688144068177803361383851896984252201975702599065794152776718008125529100433217882838492877961490576852851611249854929442132938721234454014069628738938499484129194266062176484120490294518138016482484927442191735385272435884219825515719019632036920441720208189739588806036579095413782391647867105541312322112436695359582191131799124136238928862883424392257826265322777703280502130808063532413269348056041238043819359194549955080354987582275565536175359496372023458176497389545008564562689032122128450086338374269681886265016826541932146740238790663638489321446197834471879712658638658533346585954597115554230538975887252780993380128896575864653696099684449392542826801396243068651693642845204675170330690828523418453722642267122588093994370603597179560118482621295554152670355252387327590133478281712152382683508096206270846324771194669038261149309088397967857672204728181845271107056299218856448844852789776544576752498797791826037971229253887628478619808936250013469179735784759907950458379447494487592797678276039920153306880419441152237512203029603324438968766107609125293849798132065660285210313717939615446831220551822799516762460315610757973743152152292881711819120831390279279421744412839941147293154127573371525343919420932871722059282815110188085696058138846312746944640411067962171808950368791521338447572982168269900107627464667210634084836310934473799601931451934875527126648795861555131148142426709864104220606339420598613746640820769767911803940802242030632887072222402975274686749400832154804567859920285164387169747508869882607050192316310654692239471770376200951622172796655644526772964700439668937773257215238063257517760211527816908951202215611566882317864065791617556282249960567195600988247394670643158018487435854805697693789723181659412904013672338436252489330704236075572542181731944093397364375895465933172418279029399327360072332866208898407830897931675013857635901529833484985771262965202586348648905189198703996214928189534215432557246891002983548665393690048721844506307873556808566769705501691487829712245067921984677084047726170838141610106066446728978664704324593190887305803367808206643155021277039123203116385263313952844112256680458384434832618709110372027518923522203042269983171374594962134440753451088069167992126516669348434621292045062868228026778460798650724602937680062934266020890877996393729216667561385118449134026403070178458571667050739937237905079465270390871048712556210052166047098582669286253503861272447150580131474615297164935519352451879835580662020004118189211773671952187527421591529197705169509800817252027202803797957760970678938868510205757318459622795620500405808644577866271637302569565131330475166800409680792677191116938034476693299331886767647127226268490574360421260299228216644781100909421212587028512166652472255714597858890427314680970128367747929420052772594862145288676614746808302194548625152294928924848004313995882430771614580666337162576131005238384739250558421418676783577097788373909901134792626928367129736009999060942766442791262508535227258324753535607600309634027829192386602648375349624504558757007685891887385376887199913677601810873419327942300248569575122253814317090236129708548012212826096288320769757431928505294877531954148365450978723635068465262441017149221194126137621689153932861830364726625211399026414562167871386302685380291329033203114149195154963265089052054287752971865545448382702979941402537328275891339467547748915762181804534447121249122930245939269830083696957097852643026415989756258889505851775326273313953931708753189823896298391061373502714241542590320720284415572514923258214698514544892760594864790797063321925666550089380526066170563965264628908350919804144034421681285864784258816482341696113725747700007111309061518583999526363464028285827691573051767502838467874043034449586844574318486763507416976215361308581292188509320615552340391196312092398173510640532740207200579885120375163679278436536934484263826702890403884103989783560178262954135146442186840463063865695658152301858891415853509843342322372981888521878757314373130440979286972915252414318856898739822756041733422289914484259159604289088915707316845399825626257485888396982664163000387710635846389705073624450055434825659078374357436759521495287793185444956365514324893483836484660467247993149693511871763933157404758523448377429690592267635913854589567029623648878262594176316248201274413974206548323069782810159394101890191838081039597306328695603145838224114016478701460521352708066991667428796526777665842520473965883612031771286045099865876677518666364673815886671507690723835647761967216169664216934078514364205687034273017150424488214352435890020724626684630618442934940837467263101398788442871959735782670113046919427256253284615652301544136233377837232045483279463896192228411622372477452203411226614374985364568418997470473809743359423558542117919419920023283505224004930017173280658391954218179183986292144756198503035311673524027319733759752824949526877434886211028413466272193966659906877002217342933113355023395002959383050421616307333690773746591862927423007521229211667175595065224036102921596276898498809838773195309157951859501169877584717826548890861539790765144896283334785604181993863473096205160084420109985317554995346331906933931190597083236189876047694056632863757197315649438239757762654632821585486270293206657915882724493010234832319624486896686408801795489202953446713596022622140567021679351945929981742080934117458884099304776734351617578189034992842620453011560382631415119850662055506195596535615572665745363689927074747158360890437081666935292111386438114290983770185085938055289407864836659979409296269947845526433956859152770589143946546506100408784902388062463193816592295259288602896060355015167372669085330223636065961652658413565204043478333272462897919730793021189359180217773277760773007585640331291028043528886739820570742491010313072063393266452746848393893509066837430556192129557113499188081296348558307001902205548203354088278461224133335646332459559372634621137746998272197694099414900318167382753788706460561988359993663460949613157247374294308186869721754230390962817174283722208153651281104708289477428822000648339300745467530011674957303262791287969771304996840560382480167653988652119826773502857561740760700264952607477952038493683787175696075860029084326097955226956280682516248296200689629321630455053145418689265080051419329686890361095591783303162688523147706822055582286856053722573959565361127925375083350260216651226227668808176624115699182702248625805405514863081202143734651060821111970226664826999226470036703591824680658277747640407667294842274109953633136102771955734198257516540641046527231128936935805996429171210297989705489477153431516888012213526051359471631301240337581172384682218919446264608090878252533490951258375266860126872797945925078489626726605231896080284529196097244439174188670658621455057836216609233532525632417672809042627855466049247240867947254557144778702805762083083426997186000672750695877933340110952385268634031380899985314264236434869725662809414477466542631796068688449187006927591139010915844436392370512964976517164276521513103121202182295138418738300514495379742955112592549855750386518120665150192050232185767619465702777310464866829452972004335180566228381590292237210648569425578514460452189675597138421742729762771784069070285082920517166741510797242878977612009615920544764218223123321676462556324148973868563213564590373484604780976282797296807424689881906208547695005843971118101728447109832964728423616579566211127718905193555645616204990851060943471400654632429575994150579537435061443183078685251612184672869868177310058705336905470288843102664225171964833915497959891672631179517351840337233599886506142334391342513225879407519881408779645214768010106452962181620641374204414873488009890696348171947956791101369983286916917221555834352112825402212763502065235035650637007713874456187987991072004744759949541577901084876510840983582328539986852463540965468004406055615105882720439833431903776300399123360026259561248630476648399482138987622962715708472320177003725227307646919251416757270587607146623166676130826448720260600361665460778384286809732504282281120713958038383008396301109359791022478753900465315083818172485426715959968305002821472675966996595829142073692454246089772198673249785423167367031390281898491525102138838666761859471527537253469692815955386428656367432513498143251991566572868420306966098913165755806432845525467283542961971016193474396104547268946952428157696745289972448816543902718734031161500399773885076188932948125110565034097114074542074646473859605890622173364800602176917464091005917763931725548255649423899680611526406395030438169461750325744058240360688912839883734304328463024528345968384508777465803166539147414911912582032909337636511622418814047777930933493777276414493307007448934811269515666628852936111574486231862932321076242543923062093012940427095664754444819366389265063127888555448791885945420373024727278560436263616737728030153190530393196823533440116215730754621196702410921121171032505609556642009730261847985421119778691221825143039374475022184678537367054152438096449207167816753407804060605324185411616902243916309710087027602068007512881565740955257100477735007314337479505205299863474883024769475544997290151831272232925889053294015947271491269852669204016550534244987260555445845683505393606903398467401831205404225903444524987750532180729817050715571875208681628229735549518745412390518562186936226284486595407539920083151298905501551532728042357132609547777861682714541273064102945382056772982928087476683230921788300839614841953573319926252704070312821623124167044614687829978350483900735478001697387680081705772429236337374658129009301809744934438002855375659014840833435667754037085823241973811774251247927269058326454961987635322064397292476037888211379723325778104400106185185920052252741660384699506981358937673442060763731920662809414040226478797801540965463734966201231770464439047477712183532778797711692631195034263934545121739744581398320138091716319107573995279651729021217343373268274203345391703933389245021652950578239169920681175481288193423037653938447036057751377940406974340360403236751287197480272975182617625179654601654784401863954199358074879051300905139894039239216205196233175663179959394970187241309094835787476085619111664616058340887738909049880510374520024879748076357926535489190211146418633379042107619420133582328634641921483106949843861549193123462273110473820073832253004063482146223677064442165782212902110545848192616472528080707797600479385007242333727099016286717744815183573354825946805575147304233521547886483659450175372705343275783867843943933168648754562956131949770223443763444765446144603609125862169701910413657432268655271093093221272364797885933912268843984621278061671676708640178224120832161453259869308279919739337023921545429350639466758506433286984418649922693969883483657571500483229842292439099958821724844742169959308021607498449640097089260259505773571384306499061325871010905494527291723373510565179500693164419027849718515046245873483604513413050950152132666222303104225323392479906185875539724560345326168932493504849975707582946508449360565885801333607663674607233797465933362904744985827642283495694800852925360997997242853234311072042489079044833929360335476665874793779346898502569172550439873444658155144399473194511008535691860683729579583815438283503033671277399222209520721475019609760761338323780580243045022791228100024589782773437499673851213856151961864311082391806673006844522203334027374902978037435609341265943505587409365181632614672674381875152000423244356103814006727494613260633675563643389733823876807654425003423285552947871057450052210130971147879998236408045529633601038022941872100917343311933556972900724647604618463917336989505081831913573979067205756893155106868572743536203859835485752102470242500439959511630636365609247916856900201407128330257111389874953605262294699278757545724426776972308979969862703796918408819672142090551898656165304283085445928097135773970499139521422206123061836768689822133903297023711549981674417858028293595795765361024879345435402305642772786204769730147177514843579436402639344365442725957657281559622121926628140841501985068698746551826625252921519509714443522702377350639539374180796538704001770527683547937238610269020681602769702059052322423170005904025399440383229552862674974189317733520805688601973515282574503348689486241997508695379986029909017865065739986956439578573340327878368328511370994537157762905207756989308939162146131771991239805611336597022037020320541578310002727854882086706803873091135895450186982851041605950082571224014373917349879106605326117707721045619550129207837347782498980526586249909826847622500440495860715291846136773896539063759372916289160849736349994480536858322681436650770864842611062321698126475509621198674640979616256355596849409682664693434692081768487966226063339063858730928416344102656887821195385309574119795272511239709846366471695770747855797747645918920078208981890427206764854174841082946949448460210883294564405007793576991296558759068619567545952543620603956508315895785267962077210534183748877097600045967503567740939414353520188041565594688641164684017641026003034490812718476336321490929377109369528523825502657442705737376850206911486429650114694893907711547792632630345887902782822955940184469425141539129561790671208423743447186486183555718574719615154856351860012179961288147564310450665428752634954567557881781014103377792581672136854782689671980686444531748069034774322325399686345012812859107887936816915923265099298199917645646068123753124811222668056084042977095885077170942206402107551976306413882987146179409073558325505440402473075875918947023406172531478070053785676748175294085103874691851185576176221808724792028189934764155754002491860376136661261575973022034545553008051959634692225030778112197742311503216161561409265880981553016330434992962077707314356092969707739446094383989684533823989038105748561438991517630837544057521765765363088898568458223889948236900698017825582110566599353181146439604077417451966336669272815111902899835246954523304976830613155985672534140253805525207766148992957002197412383194406830481197684725627599939419381730624504271566477122336269114595225635315216926455244796341922320263705279963053030155079950346600264710283495533690566692517372590982185304608989433146142325482460126411801912806971063855802047357969801339521098609435641192752382435437280430665565050027593005982964461823100174310497267390428351948764771341270069755327829166491703176615962693849841557471526560873943736199763282640064578225482031676706075812484611059144686510652633472503032306851023851908058704200714202577014825215981589516945351947363395979296619231049583523013634713361217923742858296708417377499295141967422917439569415864196311102511158738130405628418851245545626739531130055140277594268749640853013987451769306863163895559824556843194093412104872902567168794433073426629094010410855974317234712210229897470210303119344875576552193222515150574498957403238526920324588446921669609316178317406142891814455605982699313387019763170901415091499353833982549092154747886218321944774846382267070772240280661141101152700887982439903615455328400263223803661079463011438890737101768792429269436852461031915089913365799020464305801453897933951132593217079158269772088829765989497774023135405135142812398351195494340472006039993496561328838803510917469805952251011524623042032095515190477278365213110165531871204819746634375357273328818310653068513004622251559439714634240251321475011935024536045120236267741636281579353150330571228992542378877898272029055315292428009964052359745458719986353679494930050431341142638582984832478251403310538714204439492263317510205179148224332992875662187337434361794829347419044152424937159496998186560765844362216394528449571677094225880027240760622416144619776288353884107404847424842609407945515899383714995100527587826974354978689985571492282920274793234867641718568103480887729914831736557949316200049275242617186639124999767568911010127230966037721209344598190972505342373890794481740070528429295994828264609888474320927979955237513249641807010892498907005377753150478694389040253224005532041719880359165459404315577417243582414366801839683095865277020817365322041709775185651244733209764471271062289262757030385869631019657235193219891267076689993108376440405177399152742661057780074794054514673484586368868164699618697607456505242797485148965290107018186970210668203774234471097585858884658167874477085232746186701152994080588244030650164812652744542350124017650528609679782937277394314090323962269281144008437546155261360345862428170866245741308842666465903252809088853198638906794904421546872646620575044436759663034338047470427225187567458251440824755855879458759719147332895729978908358907651391907246677278656599483553743384880706634080838627557127747180832333658029680071082169715030057370144869308351456885533874972497632366497484890951984762753459032645767965146232895013674299240580437400029165330679858248647416839761550326346707460295272296975296311369795518627472002522166929960150271602189519418974620119739743001833936864028904490408349229093024918324965910882904466134025719969445521115921091120773941505611827290871152552144361610274523856212268268625914063359645928692786462896360392399248242577283970526323619171786869203004626309879358368736394963033969540143884524543208477144304117283790227286103362694309961838518398779351249632656709807669262897067304146274689907494468984432166558513192378301551824590713390960758615283652179710555303604776417243240885881012594218129454460333843131656172351562483398893323079976319778362748574075929901959532805480282694341215698774025058702764186527933983599897265137371248055144654543411309755225795466860629041400302807559123235558690143098757107644076357878298352343988764317480667594057379770506629823811156475887065002044222523567923664410079788586541253759265172793852996541932194475883894068891239452755022496025486478779873553570929551272196820022991873482046578470619259757203312255669068301765263455523656627830394556035197855603256655646215104215309465130011346053740417550133229029119988441206551463634164114014926752167250158171232398463441691959239296761033953293248985265989256351366101765068563771449157223998115229692464029730490157426016005623126920296093656369594928032625597862093129705281525287383476799398941920006768117328210829413654167575571362838275770105157631779357326085578911434255123715192753349473317717901011551938064383435436592286918673983052164498249497062439193633861873009205416720482441304092807875556817163160525077821424832582216500644629633673276205551843494549729189733485752144652027289280203171190688520229486185918753756617958836172637556764950664571248706034796744780048501133046895648168402106388769977239585239617981808013900290061381824856806340735930533265677717574804329063405114727893006800277062326971843447535634054464261050792284435120153234691223319355467134608907372189496815620369188513641148400157821626162258946728099652266641606597490501319644578721697724881936811779771957483769446927595140059657818473905039361775926933796176036923750694055173376720641525312955451241655447483287181586170892293154522675644299213101663035175289026659057812481792130542848631443934052772274065853239387589101751706925567239438792869311614733244594154380128376818068450985648255495741624485882280396750523599212653255815387903340461003815382314062368064795182828839281797691925364356703472044437757703100168212862224178774509938015487315576674678141912733226908318239723870204110796269359402109565484173099641519174751811503972158889248506028366495547132590031837485027791066142591214615526879342649126150127199649904722376187299992444206185241906379551214630227264862997841748301743371288065007414866810952774452118210738426142912082974490216246810379482605213816169685343868039449803910623211778980890337594218613233745419089563013854460752756737172165193375090410108002746905454580834877535361756016804048736774076699237433918251371214648976071567850884470273164186425216503974653249703585655432589547731619905474513906687725911196643510276919218145780069541502068372690204982818124416858590763129178420446572014654531632551152147050104770936701021579763830397161693555956460282770835544084420934732425368937197656077556864507608898174488094667950991040817932617339350370886787264854501468757610758537398963712003203890057834868052377003018243671342477209932638510573531426963007392267779466366738782297518789581571463272699583299498997291512617260243085809274964548560261212137650558779568049478262776720782430870460641926856293899298549262258403293953952262340332113137221087508324205460349697674795723293434597490130036220903787907036457913071325153651780088737873340660002459613371978677749678589276628050172760856700749915728616119689829981833249641640029636719733869746960360239756868542725159669222386754552117540189683967885545800195357403923135186274676732029282769844999961318925717222240491051910703163712898307663139570565117554201470860802333103378266322803689368119275610429156760737709538707920671765555644408523513832463919935174700147934483293785714377915288207263426771733108152794436132829661230499905399867374075594333217788643928286675311893918775539400801448765352895224979254658132185513411582387423015952814587585475213043457143010408899442611491591285942210848895332616552364479530425084375954032401973904454457066273336797469956732546130756316593973419225777269168513562253208931292278466945354642522533014664062888824140601153623989945409377693782857721345344938865260108758998913643079918660354807012631226312077750791868116480226194358645309884195209538353772764514589474291572674958649836471855785293812297627648365008992055244224826673682094302628701326259399231713277788583025052290818324376089767618143496264198705653746166729189769590393650650520104265994603876527305370826530194510744002596434240414049281381305122546677951999471362509835587806418388408023708930886093024070489987896016986371627081633526767411570959127933902768934443613941221033938652319521756693566134308984619545567745623646985200918871955243196966420793079338261835404919111179517931182813457025754099323666679853908950558139969709914897228762853846575322432794000295284069658632318487730141572870715344698681993242037899900841391920207278034495335152752902873202968099603053075927552807490739196036526354544133219357151592066135322651847061205909499491283025406792798009958463890646355494750515382915729208376477092095313540956719544275432991163603687559549034942798889946523800464971887728103567190623398359736926419510021097013541548306420493522402578988220257637337871287241554234113725521904863615132414696961196679931847864827215185759821989177312934725499529521781882206115968037217678752111390940770571670529923387289820502324097214963884908792443469076266419789117288174832534514258349186033444221332482379241105860493588817189946871818647747927875279484861673025472305389925816472229993532624498627566479974343803395426403823843101681049705547092578129621013939742237630027343147409697270558612128501147745301054083784008448645695167189750870527443845682028658773629814911337505110468928352484310708233734066674899770551181112739172386450245200303234956328385486214154296021971836666547444699509620163765996645586876103680515336913601572504220031553379336571012239307335969624066036962674451156935139749923945028925062744419518637306101777782854565648257126586329651610816443897938173121860266672218576374039867295749158564351183161641187376792242419538724383551667107391453382232103057714836165631049630506501331757894925563691749971212476061927010059635667549964532902269575509732017936037509263671565053187120769335815662541888591019358754787789039313057786741023956883473154872761727467188078526288607678999154183437103533176136994830008255830735147840963017590197504588240590909111609032247847640401744005516841576320123813390969180088205343746037211507589094728566746892483418759258617126238604006959672351147192314692504364879479584240477314821272101179751717328111532154490895816241795793614108278694168741419863314341228185693840283276511688677238271861614194107628411740753422870924377016001702810133518943378053027432438811403039147082464761525875160234907301481934656031768682514727746587384307404288218567694551974502129943944912067827806259297654709084814448125000851323161974076197155286231214573932770186993033375328814679919699277748138286195422628342063665526406848959145226900282964769534713641710048732213271090893388497399213060082803843648795485053931525827723489853614620770275059436882286111214270793303235746658349562382777210516796715810771682776997959401339683227448420931835963510882630506465243094814225333558747469862000526569558104220960112664143971132844678118617946848792557877259879543280265124907370056114322008274679379667981116160604624194912101138517927781150227117952994119907451989775054235491815621843015961987566814686286745850216834055243344990233868688173761165858488234126958473258086242574330571943072378589920811897059459090986449049867454572736087533771211687872248624814218221577854204051081521687617995689334601655516115949132882912300240719191055164155497080220810301049556755989175975295569672450264521280541462804025003721676278627851318115321618268169668250690502040106712393936026943655358198606074000287576816067121736579767363097946764572517788808625906156066127809097433727497417230900962842439835718419638470471122555707701762810364154401182416018760739352433365832882638176632908850422114055288158361556196117580038102487265072869818489607940480998931741199139985684057436002046707093440033454837488972557380919371812231776894337131008908385076769332771004228504828150931229633588008883506068231264253933514028905476114863361168111474215961770701513263875853554557773026161372503814403150554418196948164348926405167328244403407720897915676983042206219385639045293675290830202876620329884176216840163153835436538864914889179995822355135521134661229946275197658729563524181388973082579632879369390149084191389444156301630837608411582473793687082276898617638877214693170785738723618785320248080740828020654943393664569181576446181827544377338003930845849261676196616391165326655909742752760653640531370678228515882008411957475998856316768647684406613962501253462632912651779177133449140994696619637697835631503418452458479723919798336292189594272134811041135710952795142095667146218368561897792488446295110605829240694565375343694313666167440212576224344757148314683876573972167803290572282653013176411223670833466825122183821443802336746247210321766338150559777618470057350681933836116188405711696720374081655552726062156535246812115563792008517960763807756754927992193475614558196628669075433588862198796961974869237462928181068172098295461289197020598073997058424213644591980961918324222594173375200478511657053223714443189168662404299978103449363672683229676448927530039922943641193325205542071269185249904060089239140399420459724252612857794448207265631172320756789493758076479585004288961104302186082984508095964069795603115573214742729407549928772186386614485534631075009172173779172632785529561026843258697954635627267956819874298365190136006198820429456541176290208007458907583515230911189033237481206298286092586210759786447943882493679318021556104148443122709089291255272101870849616746840576781068583116199117585164258438972907864572556235532168372757273553941944660275192115768787414517918813665808920782664496073988031197619712222669998622566718952996868265910431641036078304219223667211465437179869737401961322826877706891933555315841716359608469516646567275643020159578026292661126056580715392973474019472648771800910915225134587182892229469231942265203799086930609439281532717414467333582495076381837387200536070044673359193025660529176246342522294369175801681049025705691898382036886468208216802216378608896375132298414341255446971560545753316979320045286404367139674562353255381238929999461568161940064491425215947055277592511816576207180197392993747336810433998539357055230614293855106512848797024695519685625789344804791895492618376386359622946029744470148870458583152396451571599093665509438474584496436313469452399385284526265782260776374345882749674177937094156205179260569074111804771442486024286828392713951920474810840393803898901776127551995136428129231346148523386631525283035224220853786622929704391396654637689056177782129375013244678351595521117189869085480053753883040692657089838348258101478787274327602718179240877685905371614334329045738077721892679133447528207243688752317450735304548948636039573014691594924776564864909457544525368336933931111188222510654627999434764793011895685874173373395937735043224764227018692156504116907241623748722855401416672078876500507202979493122193968771585938500775065457912627559858512627455983310887880664865301438724365929690692893303381474147784463307457992187493501826097336088815154270115559929415735080273894939489697375262224924294444436699253796548875061638170938850604128494362893736549782986167071442449090918328649578639050557625224105788725205385276298865506341941010209488079637879643476412548296637235493333256853062438455237900502324455571732413602002217498109378232653191522004443256908853985942641728880006761518055155525725438540943779992372957308748280027138329983308620195246452470277566112310521205356027424273855809239328934012617214360345810736329674305661838982541120765941986898236814562093776523476593169566429542899546473976800638238222583670178625568645745839455455480044807122843251707370789979680731854688510533380543831413091853976590476551295600917222215452262249091479310861883199534522719795449924636048401982723813466439408304447004468363207841306967006746697830395576815123282225967724290200001647890536254540841742909695593210872412252628925432962189080899721230679951396246433792372989251634877067820956094524709600234922978312020887897395138616213192136711281397997741053575967506308104306523247204851058546238102912826488653655216623384215705391332035867065342641626609930204418140614444112884048660945653814761846173901413716554238588598761809553136314173965839793372152374294289684088564129519182727201494110654312044028592909262396055659858257588996782068426713240867249678310595677408439989164192828650571424745630625012024714787671232769464999489774498423335468302330935966595882261340910513572399994060570569433650774761819838267782236131069567078164687700333393516582563502755873501594863362792925251610674290826183483609936191043340452084594976530435417497339569367861639908807749401575746274486756582675302524361778052852948165828182949091748468257918281605821217923070825014401126497830018546275068630722149405969094287719287815736118701293158157736831985424280596775788507798309009291923585751006649028672289207923203836456144784501517326386857876829086510240265099514294805066027578265352585566471686553633512179710358722283294374814874041276070620279919528656651916511331132152912351098562609349925659183786381306151432089410592430486475575650154078548073885378024240182263998457731684077197675872795365404925198145887578988973255342896050458158632413141925492517013844587900027454517683908727150156814139340646423193614227060341777267972317970918229173426138860836426902101103013418317137714301191902981990844841487263815057090733111272442039291465876022706946047247489984379750029817110485608341991495231295781137179090032007431786298568598559669063408556434141879343288660252584576296783984348780151866740070942218099504776601069638883609472474564360568280055432507173043265770474737397523643047955638665412579992171918500028650905769555577433348350873252723898594870786002090108175091560875216018039242036868407538701252929440970678411842580442464301299516831142823700728742510412806884407144368969240852592593291273565359077944281427373113649388133229264887122596571819380254406964763918923455856272450577055406890517835503442857960916529117563847777391205585457248056820308543191330629588701611922112964355990616704641563668658929832544919858653244240619269878242112961371241224261005151166697340792932140253385570200478215546788722953488851775907038729305506161558321651482506387735108605753790485721889635669123200706085639940458476634201008298728157671917194426299085202421280519803724416539617785292251675207770315620114574540584212335073435153893488300010796485798749518773510870328098894688646471770651477257151046604263162880211545312265124413301578561409592774438525854773011066787735185962184466045197829601872821624899076265819861531973369586780468097291669414868585991387440554117463932586972286164041362804909432808433578632463532355349438215414998234485872242630884781091279488332855674490601966817265513813927608134588325418427878538216407840966695787394855664594229168583361729527887598837695264916932116114235771544222544724821188996352089945150603677836694726537974742131842407037002411777627880550187552587709117885306503101105832267403582667987022268964735058317067285203255449606423027099543020430178806754058176746999184150532935598981828667491190767872046593420033466798406730294824425532696615212490212030470830092410296323534758043417197514630514737252713976917130837098482030558267837388156541889180083882797874285455011593235406579151821946315755382154375387554011399945808670633651868980886690190154148942040386379632140042825833937138279810111469477048694518986954698295480061608087411963627953548812398567282076983127634370587649071806952570334769232006329096189369497061443316413441386908269605823789346441105247522902495210761128487062310533911535985809259438172729052183570561153618391516135185875785666869316270664748068820179702411548395039356626432763738498247069452533069038806993294380474812613657100562069998619540771478774668331479159963673221792323282619086493873607900854225979094948414361950050391655050786022473787797435433826535052981388400264034543012652694573460396806963343222255045343156050488301901189439055121299356021630166674389597342029436279307943709495459198477140950083987241732566477848534608260067937161167674632367854222610200028825999559137184713814521858983414919431771016527776786953374574044143609275907051264308907843608504935031964356534892915507305052728779545650269343922653532159741860172823732605500574463809508439753419293729140834025889789183843995981703498360837369860717543328007940382443005498170556469213259600552088837678722222426737235389265146617517954053520452660154216805045634436003458595480749229071686387308783140539840991314591453596891284809283898063204588224322575695603124687613941116026466549171397174251773122477733803447335697717916903815483445342452656210093899302921442700937295558191300014194052620289165643712772958408421993789157528130783077741201453221047184373267770930959400335604242017924979347927492585435301668382978235620227887904341191241842896913930414322479052216445051723822843836329883934796816259310637077560477440692640512481349374053905525601911411914413374649143681695377821347532976047483304820169400291277340941430104964237059681042809253694524650433977101475992403675913798219933378138231600946129873380988517379663383100667907609763025526154175957961012137843522413796991285691326145219436567755378839991380909496580416247821225580222244853835459501476616012788917575365584065320999604893099704910277150085128457389270035363024994595997510080885543161219651674352265186447625321300868522780464527488006070332328470902526709118412872467746283101370906891585131374204210545192609055793989324151136483299568030444879413235598715900676154644461979711393498100826702883743221354778064226308450609674382201203792978763482833391412127283686041784728203418299958766587112957700713314232384716073856314197125730787974720637207230837313153092595950296526472758384354472027891579185463384026232186578403254297465990281706211117089041763388751988165695321661662111801045762805899972554346859914463427136046229711062208348456988690645697287439925838340109417463670810695491919903256026588402067810420956600136962765615426886555362014982429126652499963622445055524448995449045073919948181631369507826835919380785089954796921758193015156282700508010808154941601257076267518674526789378504002401582389890642232284001581685164099028669884720208660216724307626671011694048461827345453676147780153649764728045055500195027185835346724069848808830375246002318977352680710758190271405367042063016563994582507626138349793791336164796234997088437570309545800569733827222921662085342298516479395089670932494579966249294717285443166134477380102739864125727834293374752201150862109464871136467869408526724346008132026188326787375126357227492432289869163057853415056929446001866950066333563001502022341023161584378801912495252787064859196482281047243729540592113521735501841391950070364954177610033200604041733490151837553260328163665272461203570836732754081774128326214319112922117421789605184210848440125693177625178565064122312902874989262747610796791586563686110115556904430724718790897374770303968509204850793989587062522236153239656908139571648305158551732855823993383595167885208018506039965010978678906070746388020077774339513819835229909767845198737919778491148376779123389118518600361531250624240814712057015974725086606161594269251263475388224238138808982843367759048663600301623732653786314026666966914402004456220801961571641666375673211158621561357563418350259541022792564002020070031246652760180954973720580054713400961441054344984741382935396985281019869290124631179639401865269470164883307623633745874391060112208231147400813325710617524662445985502885142990563342803479304180522454583729554323389572681342943719928932974753074164300915744389918078490518413678424019454701345655284952833418993744776306720613880551750073056741249337721750188310632090658851153390545086766916531216988385386468286309308689251440378953599470676900469186491241522832641156520868147657114715793554346826614402732073675307914748019660892667286593948952495822466754483003356857998305143266712080145375709800743603660392929933360827986631705337854313348302910396503846364860385496144948124545985249891251264518976520845618780985728412244186823625680221517706512833999899058490615350591509796558348047899421469477993922526331874013674817999422448103210929991332387432117165473451657499801642981144480369850739766130358835374122664221358037854634637769172315007673041469714467350620111488096005507415962539073176680455366210044739569144747746589393985548536338751414072071918811206053584448563319590784846564575149672460648414887719854502280991825189209160298087891934071962053858113524372532502382919683359278016292891391600150330810468589572401505961996184015353340369909021481512512313617639980043079442635574221802051351556310965683062553460437410757871184706166973232488000341478487157433928081601322871214950205457638450765762246448119639301282218909255477171011738124584653698792654642450399165066721513300902997412426821334194949149637557049707639407902745824336020560422098469023994542836892058311648490760734596059668457839020544251108305746302681112043039866951588487846231920253701606506390170883288474565297498503838109916867430605379951880414916420718604244061253096871408298687862839977524841498009170435220173865441928379659978627548859138589178935013506034525844273735201008002767700560792621130883528281613531758901799767934279887422297128755265366011980174302807280862792497083805079606680319748525808411008060132860654867436750898232124627884586973747855267325315135254053913316342920999843320763922510805489822327676081527857444749917016278891351890441993183369753517023235630048764338412184309900512586172063593445814974267978746790382887010657086896724527639465854528517404005146210938722057245151643553003314342188665425898227302567035117969312462375926803608283988163755289327920332493884689327082439946817226444998201333449193400930606783847531769020882684668032169991852410161105954445404512030561260756401057749190908064529941544957542794806082912360430321107160251106138425949711827219862887623342686190918988168514512669723837158320978259303545017479147141260951348840624695150396209029827098560034552068929306888568985729335399876269763887603039786798347791701985201853734626257741371960145201602335590429033413185568209157461961805663440109394303536739048298609529847463995950638205210982098927949940926992826299028965832530332392672950209154676559215026398314738319027956482945759760158139567293454766737789970318916907473865154836509892357092874649076236023324700553397626012722014998972651626567713111427423268222411834242125312727527715672517608956549131794699770906224440406766044409022717106733452023819006515420246418862087409011899471083342729861185232721670847387309189193445999182906327715296572933181345623281388481856219307313811791744104902033918186951942274768023446531478413289258105406632785518199573780726099845737290195714342949790692520500164649342045105684411674537829339115018784929409080533054009057389693813614141418818226785042131118291886768627210386872475393109625512782668582361334573030226081819478039623613807303593853563405147971741671070719162694772156487125110801284598273709561665401082556672988705031336739522834815658966043053398564566279915416545661729844267340145969029851586386500788080784837224076902972817092077622508276618327288332476990087419744324677105901985083236719043737245838884052282291949295922529029533869826138144665137184779584497521121479187965984356611599468243432150084519641248401342369363438010305268658458878239594399598075017962902122335288101131109931889901797093440366052789294472078323406100780134502446163911338274194389128892262867038495539010356702921118349671272359842141693942748848165523812075609587693403760514236814945572550214930001907899587620676409695722074944774779183757425609782610100296362907174534297126027973771522967740512885093876050119774862627183721054207527303555389394599994279857566191068735319042887891661602786391541413285116968931726243741520139704096715717892553958648018260376103924186678111650880537042865100197198884912220647103729757039034008451611912005296722062390693337897592908448402734840408977859780627769531169329689609084017655746874854445169571687313495606419034365401488845619641935300067565491246651928983645733151020547000049130120271789189098734394138250737732885606290845289473281675272120377970161913146113189574612070977391607139430371016519269422100056579205948779426649176509920277163903810257671414856987334833213214616461227820984594291547929345388076297874214318738065437136675548455210073704888478081645218629427258648189687205576438427612995860433223544769291937388820269556193736145779431421206958895597261479380684943187486401663688781865002834382141506760276291857096037357435052416397142952470714233060288655578371634763827480281251625190946147281578357867245686799088391028135482650609911228949536310520796798245798694732121863113819602500996363178035069911432405076955927311595153841127982443654139868639259399667334069143673891400987148302925474511493274735185841705561710291285938045368911633119528686032810306995257764091600445125521618674732589576559685244101267618646616214313417448106511399764707895972721801008011246679172481123495188689609244686439459667229340718873683327868751178937764851063565364762391534089236537585297546659545234970554720482691084465124106608340264650080933164521548228915924861645841508781286827109530101617971816108658440095151581231389284666662414552146866403045003630457663316869640138319854748888839975451564903046644623946154351551629376242241995000057402338334355177179364320191912300224170879453555132064144123819220338830948805511977828351629288821580313858050866082775639401234272866042877797254697184961760212373632158621162855012744824585080679804304379740210099197494576189237961226502438587250538723011096289591227380431824602734648771200625550841925494921411042205910005202786696730030990753652982567022297729993820089030695649152432666760748772949779328090230951740336863709948819177410317726292087787493900051689633580760139918808136017259346900351407819037703137351771102530597504376677952739500694195180007632176755395791901007990077599136470627707812989803412465315517851027700476444534499298694239859529014065512140592065197367725092914769057181809932241934124284167161165432111150168144201433239427884944195332516082196683544743985479687970043920666073967739597428680414005508289443537652617591505167220781625033338549347143311898836847764141826836982640283284423073631024683102037361757057704304926792034486310935053294919313627764440226626173258590411968052437588428183877148466992637390373675672932391352033614440003313027810687385812076520550915617100434563892425321661862138751737992267084823901839995466078765831702375793514150946452178155918730157395336447116194706110876219627048500937441124256116416463429094478933840361649303375245167407922079628281682607680435375120256642990938199792477317120766188085086739459698974534042824635800404853303140135848550348984551284242731270066753611726244917165404314806844116663473208121407551506220891235636311061074920732287362509110270028556241101077353079504595935443599712454811098996496563373315554775331549452071809239485037705983658867569316886420813354252918105353452111496038714019695579005853783038815931683134222985498302390541388394860930842587047100326424009861455165049766733247923122405181820864598098486235356775838073048815707171024089549230735763786515403517136922370890654323586906072211545688452182981465664703736939656482464868431575948253383791779489032642815807028767736529163445511030928291217652748164743555989640976828400901858015889193284549853439274297880653596827064782423481793805718214700818381505141954215194000134399671524942262126192985575045676330357323609349635938440898688493791278898770684317897091317615988393364516187714843527080876476827658095336765683304565211550599505208933586286487723590655698377746197398490359604836952790096508120772665759977588574194724470335490352380096701582597133739021261291021502873178661528071294853525337606314006136777744877394395342705421193659607697177301840276857498793401629839585439400059097618741355887172940018788436475868096611821823802114405949716974214761487738970912637680746543452698142597882870116337304719060893426690864045438527597366459636053727754155441040328351085566491287935918667010870746199094440937123699641808902703147369641255856507313344672140498630101135063633460011725538464702580591123577906086115934757995308541038854918193428043187648435466692515855264211066873633178566114872607988689086816717139903958261464951136003135298711510855535231621199034894402870302846051545453652560627604779139191882445201509521863074633569834940031908299825095846062668957969226503241344125750203842705932591744201772752404392231855819465648002003457053628192605981559464784271263145163954393314780856843502292831824480272096190854346238850862776428359342684245649837918535954812217545207780160025975042152231136629434434954841442490702319357462142400678586324533269830962969661213263546324514654426709315916741248727441536094955123032290679002643182782416087366492011756793300646404710937825248972920858781764511126341201811809525808824836027553812087049205367255524884522007955206717383519799487989155671023579225696650936213693693558816185690673876517391600768883068149930772719370906827362152332148922072789870228100437500783858355078849123938125439786313117014280228476830330829437471506382602784507370347597555619270638846380268538999640005086500023903598430847835647731902151548704121781085654936922351692809536725103686848410791387875847205613082926628040229003595681888551699095063326148479496017075305914811726286207700628500235185651756023581168207246212760834245357888578741126787154792472495689966869409198288948024545478284337782896258117679474230892493661504750237476011364708203437441184861121217126481279750601822177282409892437445746148544089211944865517774521141709035025217479228593543083406386878840986191698633991461392050159641792612204782970734532389336201898636037987251517503636185644526009281776410869128791469112057878741709288524978584229736202543039774618507597232785063478947678628982662091661458867516533968296143813498303375992686503825102746778073104222355483341860499974589541043082235146013283872317154157193623075676702412677975412057426263391703616751175055750331696487578328764730240467487841932076688399841229977700576247197420207651429062136766823532473150726221352053658189316000894424220822566685778863833799912492562625935311958819488531108506998019504676584082828577172568606289522717598229822964811277454560385198266146160983134137749645257898581436916242265554261138480910610621286932734992860268844024747625987924082355812776992075297753378320768813611051044708896886252722040836925608265266342239821331619801519124872140033508228696596647362397926977673461545921307904400799938243510773211397795781686724837414166670567072343514557775138907540271308881407552138466099042701878081576308531151637304895640913099007866037461815698430259735804508752432737411191382631179566507806269117093961968186517475621791255265513310798578000699093999029349921737411934729468111837039267266603087384338943221457091900478879982944364674234380918504547346026912735698815889569421748128966902805398849084392889285649837088819686516307472674067877723367466767905151827918495471781696204698793494661316439305632736837780707369929926409559498466316928198864621259001652610261454442197379923069291998621878815169366409857481414734172582996905739368987601295538766330090607391879587667027182967403190177895409689721508652351916391202446514430351152564351075235597773922943881235141027718211425606142276635976446470330527676338129533454225786277912748845274131354499363075585298857233604491035495127369755962466278982079800854905894773062006788827542284520014339871925580016982310018080364194641466942324203671975063002251789047519343190610476985659185327325989964469316712973094731334749663610120474403733369226208400932160998259430393218152522356414676934293665652012674624346417973095118275848741665613224652649004646303545020885116713366927614558396274658714090445801689779266970513659450206454815803561830145959021857910047034707754173777537886780377723524363971259792496001253634079245026045767992182265033833720155480903513757367861319178816484682043706437762152611286258088358430342703632300005669750412671921294489813975469149641851628304769177559324040388080226662053255274204204018013901631914257989337726209848542158061244279237614375887866589675842563910833984474556727433804358569089387948863097828481828565741447046471649479372292915132963958322670219215969054606154890057989962842128272123188619628459915207215535272514035570242441319395243027346980714748996255944716317596332035862800123192331326161576242247558124096510771545980114291760821258485690205747454787393037078281464831153913406209040662598068534621400453710965453844366903343843321482903827036766060586063189769276675043805963305346356226585782944447998788350431687771525679625380283290115197474250674373928017815589881878643582649132803117192443801445102013044849131516976964854622339564156916582512415189206192954132062052838601404904633624488783456200378624445887896571613918124685316697604577070498743389097838291775049682907588273337712047200945763569355417623491265467916721551507675940186575672861455738037204854318464018954998542884607201397705337692133455025287883221565658316039750489114938130242240995274522603493370334602131358129490055363227674285449892978241005490932397608016684141748234259266739325432406186338131894191723818733171993989607138908296859028554496697963386836406726042488396313171921684377472732161381462685842479411621424659968486995111024113044013894301552373668406217085247017293745920586822868100773069218215596288079405067540261985281771118839874598083422889712417241662420214650821581403320167358414147672540810608642512951286963369073455325254972772103545819495340798831679900151348664276883777971192489063202356184333234574350877012275022464583390806205681410713059397225185426692070630340529786968474216973646252821418087313908279790313824101621266607648910820364621194681653917841260569794121434056066910910871582557846633188931829328763310027667105052405267010992465581534222183082172961048503322984493120945927394283671906074881449286683284515103109999200694263442272072224092851702810394526633199580802209270538905789954655816854997436054178581297746825958363505631896542198328160499952779017854658385602340767780487554363916763493763053940593875426298955989321430787052807986089544388696266129547124123687507129844580731914279031344607820749673746760180262808550502217967864490332624735412457188897299108879945108509799048165098170548336683106872706552891629473419166858327020967412255191899735773076474331368712597271497464738384408368672797558102025771661123720660127657922838724322267339064641798436051627079768609853355129134376570818492140498701540806525835296888184682465876244349115216664681519954272476146009960196837790845173106512267487305178273512574622944372655975639190936983118891457772026396790924240762870839843118339971156327516072018929288392098305793459907777053476336772433689832214746020670465277375019377994317808890404362304775332725087266440690087046920866241538001452270152637823239537814570269620493477184461424363360944493961239354690854666854492837386941280314093873589840293776782735777659238929936541440896119010616497407475055210330739258843828228313983567894869917400753919918020017089658592874763593582569285468042962047417262254839148826507522023533671702994414420130816833115997006015489783376519435190426737100031154649695697175332499418854713283530405669305525869132386407277025497828155200179453772894625179311939094759432033378162825004928842338034604000601027622930286870833379810985826867139442745197936825989347698412913187531679964521574546452185833021743773871739532237997755105842361922699297100207098795674963161344979745007722588597597621750162132566180241966789382311994411096564755253372220136403719859156945228386808110073860464655344004225122887619223689843552726757571882778123196937717046250405197087307918524729163964868853424873072117180724207212856518058338680642536463014575835416649393168048044669982809468845591386124444502642191083884643413763269027471738945155056737456778513268281168982152572808765826118035508494284400057452213967489832876372314680711510908839194236469878295621155577514744096950569110179608324796223746088127309027775205556663224278704622134023287798753839835883993187239795920410655826521502725111646190269204713838740247840220671683999254508577960650396396104245963389771753225050451682346496009566821694610490051548202144819355413903197023255532763860597331816145017605683975139827054814927103320191471886494685863139596978414475884526083121903745603176034219697330158916745317484897804296691709315969140307544305840337411597630746381791472895382352355862816910368542048591652362898010831571612119870830157742671469392899674636760354945598829633350915996183855753103889651049816732493909470233284644575877592857325543025928755989502111155558772398679482519246500918256851105734219468122290402229717148087881480514066528982996015202288686115635443818444346802306570704883268046464909576837104038976139891985477863321163609748623632694805695695835062042194954582909800529256575792042456475029433959681415806791899812348383375791765843608241221525693540516783846906197088540494311891606671374997346188430135889435919762498859493892046745187900026765107471171287703296603010007784734352899052474117027311823315893962894718671258263546231427130052409056512363938464884476828637872503632825829731228152314852083631386860284830192834410322571808913582304439716944540848202645594832439163032036879342603331632062271229671018469412524741203268501691459404924705446018624163353713153302924122456668352466226811893210572305296214493631574658496387140921135502468972076276287149792395898933944682668397572054389268829602836548970780814743090661405341436939832065930483589127415301522513322047014067183012066015938949709370613083942857868739210100495607071536819614385737249274957393494704824746950864492945788201291793842153709443164908804120230106546119162473525479889529152891016818380986927235027987430289873438866247561102102828639488018961491212238575354193709068127181592028586378191855787849410714778232796272937648388831003260709712352285374058171484940653474365399362206515172135050075486937846676198733234123826057946620213048393434214673559978552770946827953465254927538563150973964163699819351192554211202980409879087163988533134412562530387626541514467616776963311810396088541621109748590840738196173377300549174840580766065108726446641647130048974253915836232583564922894458580466066983241652401723951394867988485210776154840478815018675723553743866686393660888114605415183097962066237984314950597454428311450299902748145826138981622474635936821232066545228866004611743138178188680916197931618264588190855132393486240877720711077531257548713398300499265499337501443626397967383800085250720703925555118832909321167749477322223205967581049773295872724411203682996688875445482780271503639690496186024361176138369295161853507899086493679362526803775889297445509607735109034397648457650525491720864761404378407853261383838765398664305954833460725111736663441075308420566681994158080078397583212686401666452423014463744705814590308016639571133188935181559230935567381047691523333061809121392578580314221754675211638390098866826229388470148988568430497212345084064179548461646427928388827792989873765600790578800491443350137618629511519057485579693138583968604911228188746238541275397809020887617416965663882667996475322598239012390271792504371464497442918599162685966326288816169383300692324181325152214019377314948644439186946577702808893981761935178609682491686595061251957925006147763266810709730336766513227345428049240465039698977244246923484717498845100932327716614671498980087149780648558069289312837617546562342493987499672614573762808340947296426792387056844943483160496739916153119372182875541338755228453636949946159581145067019938683806905755855493170192500528637450431052133243835969322497335653590005296285179696796215016011185929914178781056285192155189152775733946345071301684473764336773729709976098144260155449237671178407360421966805233361522749286401228869028623826501357323205019226693389841247167923187172675559721321608047310194955829328533243000229428972897339726141328663531853512342198682263387326795570173568253585985202330797120385168949657225418565527799151319743195904302231040467655887819185888417673819258503860790367462083239970849026462666036847748336787995216685178812116416142518034685687434810693075681463188412690888292430367966467788550327808185080699421301693456609233120589131444001385085527178959974794802325146397167579505811385273939556611771496704609558393877109332095346840083434258219261479373183518841822190785302740151907680052628794436758044939573398258621372146724106103956554693464747607689789068303410553865569780385410187195283006724091583864825895288822376592776275941065695564509808961870292383108391451106570318443618326070820374784254288210179742410133191737429946735597365054176571570046522159775303593957855089393257098754313555285447700486722823804047071359488452499121966576750931633560430955839435930685848036097247764090606980114655340175638329361722390425367208394449159974128147376382827930018293387062985787687163312549853467141283930332493534091677606665137221579463730352325205848337143471967869859313895215832881703985639672348610875304387718985892983670317859259920413582440911738200957594980123986542955655471667015511324695591686747429382236963142358829568733399114506457710301948317960703521006995591825698742297152090413770915183140675410448525870838290349924682411919911474056766434645384400337319130703840851349583329785022725174584540677106158765960993152236521215594838872591469492209408814149717195737029723249972531634117786833033827664572462104716943220417073357640026851624365206005181367495020030981730408225336703240179700679728348259968338496096066496164959114479596166033063404296881128936428339780667062765203243786031012895723980476107850389388694282508137266525748329799875626823114846546421465833510434441883744051030614610308827890760707770895960278376740413446886556677823404716416285642548145851303448062166576279358446337852580437893707361661343643198364441149886412002248146091555656213100571112452913711065717834440492493844398803835532077076705654833807794330204896705604577695488052908016804759777260968983144045651484916175650983695874560281357556261739591961404709015177837553549715693286824590995025864381032508107967098184593630685479122329971253455148291675932650141148092934889098951998467745439501934016046369596752420985035674218020992555672501495044799109779192612674715767699166812797541716487599313796933056287844461263513684416278500109318549158915943472490700735966019844344602395305628074845815811235514284678774039803223733541441881818646529206901011912762252554298750602625792758442224121652499763676753397429066990824012708396964386645134370490340808466945421346196040515643618709132176412552264799348407247409897111236962991487166888876968885216923596849945694158423468009045739995520072914435794893741554496226047542680080041653398850222043346662577627434521665929524150880932082377534477479042151747943543491817295916941492268214489806726745926703069643585841972782490199480712493238085857000227299920305379987102439734869686497368487103065552437936558511831481256288592419091539195214005858534427866011303306946853434401043378470861929848939660426927173014222839671183300436350620877444204352863328423652626952794360005011125716175620719463051975730938518109517841645599511755047531094003420408467512594129293599003781076868262568956339283387229040672756638706277061556928493321745068842171220049768517723170007527338139803798571846750003838084433529935069468459976209384420675129691278166005870999658406355920283401900992692980082218099967755979151578329507394027674426785192406204143205700320388890025130989599658352374349816792151479970600141549623963215528142271588401573373368644521990661377559704157822245648851254207102165420251620238801403570320271621092736124427736083486306762995071398890992701759579129049110721654282466005339710114498927055612743945627550363463508570665679384777028780879514873114861089517045436824627096151570974290018421332468268754801314717926002505142414553232709880008560597004017668082978506390428880989496904358957990982601587448181481164093192570638640491156377190229388128488556368377102147340041416281458128514913758698996934823988388270258564898244630482497361726682356447211892008536823989369436538754315044965213076696939637698065591680026245334157704762701705262570618721151761224718270809176666491277798879154213539998276044729336708336168502959447326237641787044757718506409367485139877334351783978520139738026006093925435933338177272649266857751204891929655945242102950652999198444520971036970207537666446412580619863624533371663910628312530135245382920571722793338181455296595974567641975859452452664398334278458142197921425030689963838964594298363522497817309387572910739815146745929688746132081371690002003157101139450419051266663417758989578681104061518330329414694360481872528402736173966167744586705232842275218655334034814667871824253687234705237517198959439645556597783851727879996578057136477248495797915453068515645314368982587030564188402321253328735298134775463427358465751126849752181337174866945853803582430505792444636591192320466792384587646247076124629851664298084250493210673707629554490758629889962423186310054061604798597243890238916919299579992621020427039241986607635210220738471601356787030443231521455884312166743303087208821432007425399456546190946896122102826323391990611044554564494234268998243298849734379805579191566151491929081745718178518855778858177912855694525399940959748556477681813929011795211460862356167905701356047260487535344826392387348470150862575786995131424306540214176091929353543222319173897014021686181155931617406061377633779833143381667866956583329993576179056142054305113516891017903316407550273593774152688471149928262421944090996873920429012870743005972157458053633629127801038325338407018089320212357011310709289967934175216776587195519760552979799601589867435927048752238428454146258830620099097130345584446098977896383949771385943661849995581897074184292264928308536619253140624161256352215606437990227528748215919539824115394668363391553668770743903110604362430316887625769331190700510056499522326407071408060521483764008167549425083738454442148811361018591700427115238718995065675745205198372473203570810196510145175729952387283411842916066668924801555174161650933986208494389488710385330938048059777936984920612218152746426159141963249734993923964306221400897600266346080088881670869228052032007639578471146606175526461687937291135421178514504550945965505098382895136318402511966421950431607524926457067737219134636312607329601964440977478572806999206678075025476996234251244421103291817605874550759789307382936349333089864669867564534865031564735232034528230416287123825446574003880259495231559477720315705497967951943487002612880846737894755351174447921223181562669986929618667551332647027978823002321551273117514857777499092766294523240918077145660532159699980863093095426006373704335246221680987827712827028896028699940389329189895707155750219122080246502338799024594639929471911795267493813451732977514528863441717426053973319891149904337467905627163316496848642815196565212794580287619063900799267131354127832678948558202710247698791516031550829547055203443035846630569757757044030121915271905184879129660031890784491025187539902606022314998766214262918401741828178365636231935619435901500306007674966314974669498973030917658454896422489396718708152482675748822401296324931054926764537306055532510014978688183508784448068335001372698487842877180723727649501348677443742201285289589762552132142983916015769353846525650664919107681717764097220056710245838083697623863005201255367186190798904361613353207991668701122823820096440605646152918351514491095177709077504811766283347103755650338117638121646412105566651831803770474309253540802451241436254793193742070289026892783184431696776939042285458277325757127339128917952100257598001747259245610376334032370944673854991999352929200641784740111095690060427794972821650168117287246207857349072179119547667095391815410623836487771917789786741426769256669150871630948552334973539894958032206791438912742109790821097666142545585172694643226101886809191288876362114885466261666903033710071243867405559094359801255696687661201453357923104845412220858937285525212349264109763728335045000236706890312063209686658706081979343312487098733691368882430631711987490132910522741773456004981576589224583138814019713919301976745511040406423805443150940525552648346062606771364751631381905575707115076004587203465390293183723006078981823843889332985170056714489819367838669391881971537290017947175614030934081446517355798798253761618938672332013794138364659676413172203334243175643959979040196071040033703770270532881579974032897393942302314074416292206828464687802261930715151027023104267165799274510432685405592539222210755160949209072335452499920595228772860990639431891082751939534622252627855581099372154720562578379710806853543524385063532373694722116712590718560075970147037550182880092424673587120316191267871974742281817671657134043073399894345027237686464793051029946765806167673346521615664632121181558508483625078926580910311128892423716493641968133588950486089620209368722170624210650214868811464963296495767809716768820121021286822117430133116117483207231503853691115928605648675847922003744018054561565655019630869284823011228625582716808429473771513751706154451329001307209739518941070471461948405617443216564159626588508352820374536850501196025138257243090532236171144488961024006460622901230116455431636924674437306298932265635991976785413446982398405945731052706957489514481404875782124540563835070777104750653412552415519066448523727712733515626463696617346724511636232318136917375743896371483165408176020837124591657991386249485767926795199603314245006091756740874648670485928315725382165935060592392471074525382155455621116242763218846522526940273873746751007225640831667758358651513621021850227113333266500963080436257291023126515524679056220558467002401289962329289070202207828265501622464142754600274670744675826843033686066093479028175908835652101423924918106105987596217467229945723209900885653090542757396161048681958723917847801347240876336004526975177061510252952810860276461966116787261302173841680284195319383246342318497335216874926536686177351985370150997966132364305754134423100791470106420736889823918266047381853174593988620429910598996955287509001329377454298210914186412257533487668194548480384550662210400078053653936769158577716781515679058165805757589200787901115536782105202019644310214841800310702634233581159098750943168786039936216424427081424624295227335838769254651673961798560860997917258032170628124038804829498632558813962266388257228769228295052801188842367900146808289654163639856575837867923989749533955087940184126806615506721177022073251273016548989418375951531464027598616686298581920349787511997608291985381850885333616698967736369181218620400099553247581788688494602266048515833290011102876385701138733811051090412935370517509074739880169164281906409774844665660853952642707842102426526256884470549905384737400490016897338044062978473596970978994476298209932344660026100224155143359797944766166683668582501212404465301049892423157374420900415979605740921332067491793804309152607627175985416253827254262177981517657491224129030164930561205348282570223500529247116567775903376621218236913681040090322095617520517103332311109327171892970937981653926974160204066620238031498031933596800918867514022939200557205730633783876350063863376422131781954116989780007188600589417988054430453446918998500517592014113558052285786865628468982680422954711166069101472967081421056320856297069314840145052718459671618520858800807641261821702145386530643533320111166908448647886413129366223109450561694962231586938553249339955414081976045579913010830119820773215191617441563651333750025480577987472619969961025744277083094035312357489188398392688622544291838984067537905240006025692884858700115468455530773981215740470358522173014638249763286417707917134033917326229811997873433931450690186647518554750029098444345356313847094883838185436911595259943642542961479878122005893308318711550712786100892295931369371367697693221823306584344887956678778160684884360209777145459911519098680960806995544890528733383875289695547787797138053525984127942408650149203126084436079880085326820364779626300032555310585736777993672604572595825941357319143400589494723074386119603930062783893969952431271884457531416509304461878746345867088546189985571581978822240717158840552547800952326322926065829564068409585622363112075710318406336993128144146276584571955417884029083559069010815206596659468906305023095718378867969002333574913680962824519937006818677975310223079101957591856312569655367643192352543447931006525542019137936132832535092814628590709182999010541036573664711535761696855310271660141931232621372874153839244561875350539741384459960094078958985611039365254588264175766131618308712565768163563544620955316446200210544954488773788665840434643025964654965193308810601352636464017125428803959247373765816520325653843544395834562340878022813511354085217133769189364706054208462455620628490232917314026447552958323856110233251258481768342582043400894361642835589830247475714312320956765613284034450818988468193358650284282196990139761858430073427379064385305016696547823057155199335978953973451040427680348670784238312911221668962947050903587014469885438848137870681529389682632642513089433261748280634101468858862771050174812232814055927532348701776611524132764622008144746744392538965565617812992462775891972291350836495045043764390223739926297080939595282042111057043797325028558669994204322932659905014421384406887695955105106116525795277747310433002592484058836651653240715027502708874033299601591839320210971286885953534846034235323212734144195642906836285123111186334443452443739301295324112439859924457983852237998547445773277040902038676039068898848162938122816551100560390515312859510188289247930138354667819650170821786807334050030180710252892959184772759321831412666753324093026113172900931594222695178590702846781911268485927393584114474337550939965366119407953045009570096514002475623571094492244518706127771067956654422804543612388374205362815249325147448560140093837410137995071661524107639589660802544938903925865484779011050539186633530922960782667796740659784385698392997494499790739619742497833726018138612746139049630778438998575663830298880686766214748909029875465807448140993842178733036422381598475490240150156447442012173353380115978631180994188480972469694256380814627828086726569794117568826389245038985627824758410325126648903531114993945477520369580181865778993101132424183572349849649410616869534703115665076814562608489289572847622342237126528106966097523896381312882186904744848469632857319271873361203281887699523258366793153281859619688176481318534538102798931424885955664664829685945612328487213329718952379995353931114544109814126143319400143725656766932928709352309635246530878022309450463755672103645991431186605167356515114761212624660779605104471370238512508303561102136364454558765138000774912272329652383459689743488380803107766071749718889182563444726100608409025231010213729346462895355238843800287010582721425330177677129273162283202018700994968385366174541336696924434449387938215331695709834980969575076556369692707336070960889537076889080989008455105547395372876817670204203196544281928569603828443790359165868547302643780545668767193139868323928077930839462412830020514621785071236964345853374442978476261225829259663075418503991977323323230623746791464780534036453803922821733017947955900086405084990538094802580348344480991707440486646933011317144230029599369696521010223893317150164099045363436366199580975734143765921138414583095068618106326269337983895706948134787487165184257227430812189170003596571970016265539409646616394776516193916834354325842088316188535486930444066377642557887738942395828850793612750332191483268773894335361734092472072101412435828749816121551846680569975442111209579842814838538103726110299824440323916183789146088674960916388345540530972106868056484682999514607410984003775899615441217581075345201168092944859472613483289748580617223453765085399096752979238590307733964491070171262537523104442622671853720572112888766702170043044087349021531325285513466506646943571338704992697459363461141680938963946614456561060179518207772946574456170770922256503144230243875239284010102729109507136801040115933766194160371931596099483256540318354728714111568744443030410349435118034294317767724109707654609661236487224014748221945102975133097443245660023208236488203815621383904499338126510125173615534297085597005541794446810381035809052161156273966795509802589715804221611971435107260540453693849082358473191625627851066575481068111190986335986364227884705311944216082229208760545204096454974252869735923884699901063320468342040364634809305644753312187197341266884313653643246562126203113353054622909278828701231667440071100294012246083282784906104243622876830640088491753522204637672989877063334922744008567025696091345095581427282538546977122536457940361967881225841242083186999339040803539861793092018184954663455681727558581748947998296138730633689166120539921794251397221742397773223306408334686702889057840163606497502053086764165993740862360703749669948861732286358578728455192289792263797933366578048841710873822085803840788497434687149484030791350651425566137039598017146965038509737152091758506133141192648202278777436286771629717525309206590746835771745860315122889926058928135512972281015552618561645002693340828083258828142884593279802433418398926254121182304616517841504261242444533762893853085226893362296916189984812789842977019457052113415620104517789400901041135925453538965334346340892971663450341204039063778739352242301774788005317137153376072980093340118866142685841613013585955275299674869428609841050803069572546698656285452219947694360924939500313154440819286742856902984014659890661955629940961893957322907769803905912006026271641418163233848365946932893234099647233492416589251825634896690106230474024312180891501313573519618429034843277352597475829027846022200745072718229769747961256949474156874007079976267687485264199467928616392979823223554582958431781197417313573245861031698070967220784529490658759136581199295423593541614472341880025106232931937079075697449000896094327479495764864868020562313603102349974495878624186393716522714796544656399619713917180408477613042269560277560795791853543267053452111557098525642258289746213176599684965026993246046496193646414920761147261635984793548209236577566138450797839343168977875435102953600453529036083565378913712890255567593967321292816620218746232430900967640938787273421867619428586854627804449056710459523196257926659046274094591658819313007150650488716357693933676008740476187899760313562300179939498494322787142774498015145252377810601070904364321485900390518153228635003047196512264805334308483141935297590100199760120956658026928287167031251615827390961910420960023892282951873433790386511342223428348803110245822813321391709972524741149139558422440928167080695689379442991933617560017620270732868674523507707118717127086141542516843822898048334558479025826316650658601453515933950289739575629279007867956821098624242672658964480628489194628664866443776910818605115264851221260412370703020051743789145918389933980236035143491127933465518880113707392779812917632960873157492131115967655511002198967418304497139859144711961300598338224142268132489141172048311462129466326658057112461696429103190297943878608614817029862783368572240717549115747525192762013285289846420239514288346521044577487708563125350250479530496146307776079102743143093842696461356961769230001794261570448661249311993394255602674785776882539373319825412506942650564485752179208857797842347628247956480484532455666614347051521581433501430954272181928115913466509492455537212724861199601400493903652772484592537850817497205508584966388364102499940138077135494095294741163747759274081674353508841856631916093745410239530701012280175558121305334167160195143371958447013507160994004249608453822289656476307312072923753896481842331631032882961513471816846974494984733252543633581350222213004132175526232320100713560625824370635257007304542396562206785502346648496147740801886939081191990317713847042250120765318825088102252962668412015322904824175338097745433124918826267427627437046811403036862223209557178863817821566502626789549186686922019087387750892935085597192562610838336662783362244811436177364479116689830907112056381028770148793419171001837493177948825822270635917819279469631242133694568905587525440585025009289890695814046245854967131049079189083300282578264647690723547634025775615462606843460483465002534898258024519731858736238233422069602660814969423060950178776914132997591990081098569280311208674946309932527954846036857188716531140367011839430393192480403875171117479245341430382108984401267892282411518708480078272710385064114054519108686617443416962598885935250371584312214491325423865748825973256314272136466853587391529939404632928508842361526425147692797467380470114624281056424528029781932233362826232357868069079698448552630293470460266519909690064407790776865857078142867537683158341518136015135909668283301767975749241661578006906985818396787436104432921453965145787159590602323584914159729115807887563577339848018977170998165283572901516285451664028669160673626795706688720315175000966796472854884558674529704465206209549106753889422342203471350965911720031782355796671976927618919062586060487366810987056704511438769023654675328935817690299555884661257828022359440626934938001194053873450877712183234316725716898346022074105902107182137443645459738164117294621618761963366101721226632921239267546246435963937974271168856154928938934753858750338407641835818101309399128690946434796487955131408088529690926168618818090646388933535775332885206476833856262114916561157432181993291679860732542798383593618433386784233269649097822542195848875409038289429476016652920942341262962907215280318330200766160917379683171786354413567444261637206586273199495740132831170377934462008409523611490538050756422862084179456327760628200155236426971669256855597884867701808227137773965183846556760757567932301583064661195656272997870103758971415630619226834338276189097698246194701428310687984249426376219789674337950786882869724272849482712614424876432699619791513720613159482745584869280173533709312724938085014047485096033950979901984341998855739367151850244290977643101658231665609281817072295610836967241704395554345469697405652910101218051038398250704344965407830400589871155206521854123249193063387760125301084909928446267854172008067741429206875738610416070600703484284082946480716193449380110314699963351665782561706158947212297701087953440868943900533952515970109309485254128304259138393855570491841019076147559875146725236005404102485125925900234606920143161279518263529008625990856136263212978686062870227244576066508116727889792649914916278818923649127328706420258767923943543143573970314321422830709960298800421824324710659263644359529358306203148890711826276746089092270561008797672991050572439741163045604834718455637780961788965983166881139227222139434533608074074634848332197941003680115148887816676518610393518136977849771775334857045745591330396670401394279975409848177011158211461670603228216132251565175864759272362796569417499577036796958798240853869549592938546434822611806185245942349751833577811716288652172549524122349062144260904223348567537798011589200633941678027833227621974846574904886782740050302716301039745449370205962576375959559865494381878063544283103165999987811300946277824080605993981753029014743882818371194803079228082236394132366334398532491173600146810204669466884899490462126155336015052766960458960800257018566147711754960142959450018104603547626343288654575548083763981667025230631203910711194801024978068492180570864960920042262016965405715472313618939699454974953331568025914645599201323364577426645913733064386581765805162050872626527393454333990043442541415177875803308026979515059791537337377343197500838146145579431923682885392687042676141420112711248524804490877581043122803761859409943771085912556636900608253266633299701525513910320642375099023730730915346993195128053717765622138700516059645387470376296481530686501957715156279438109933794363673694318245383246685467060174565982731366404060331776842787791404257510875626590591175171939804729369980857677416124191421432277385495415545555259248487083649779486726405257527870069486485521489399717720426634357365360585115340178618844048639599624224213112602703938564652061464097084776237157436890969976602248382622443741423714305229777940819909945486990006859156256812261772307836797591493260740497317637142212904094916502896851860186488857855502847981660326352553799121077527919127828218024812240921757188867758032341560409708752337147663009278991199026367713111824880771297705655461982610949595406738292290521961041391976164638566461190098503324720665496094400148627501044838325854180392284425824878612319339419991951609799202539378223676292359281354015117327282228040378352847205517818925053998469161847541740560267511399287376493005762776344245569753191770487200151601213121538369263271730304406406804907438487952219900438171805403285462490900880543004056483301616262663644449865714897582504671134178516597794848027777132749941302239564010819857258128670755544358638932987031563710838188854806398739842916653539790435738643561873349929214043231342896384857541076611584029221580250756220766093739281687252126305659462635442059345702315324623285993526269554983566287299995882400869872319180880000000677751232988897877544087885860688067662553468738724761651074077178561977717329833178291557591013614867750276936620749509627129773530397837750044558874616148049710295423656562576256171883570898461771775746339090213529371952105327032681982474371610238613539390310401081133466160897037920372026208866509077980847177961829297916175623593577108662039631319862019076258804728365873725595012963443910916548498185437067804474200807088083962817445470830003507906334780279925884254629988294751537298383144162396282094105289891781207825897214100921254341225243291054321798091514443034151286645513559123579192856778626807858070831751203140631526155932055897607081906116326927630419570306028845343964575310150316437745648539298055448101110798808158299071567261103388497537413712008447184121358625300092940757047849867821066508764981111109999901773338524612301645152318913924656355602805751415910910731634156455594855129457772977813760330212121777438694528183168506067367591439363345166462825456196338067336088532210854706674254656577590289932753223301958932407732603737717021767950363330400307974104329979600218208716949396168395450293731434675597385249793035965079999868688747809150929393779413957462677417972663574635710752662548775498212828290037819757516610746683847104698939519466084655558708843420144390694305672054710535422208112023452080489613024010408861398049258263889925392812108049355610244987759165781616777253109729520408258700628742116393038948137178459082208390704124938043225128776308980966485125586679360647885919781571804329033006690721841160353947450040057112475136793216117081975703206292589809858003402552335989638631946508377113415188827162593256877679965135503715494446197857305496612492151105650028041636572658963062510200059872805038411596359925264851152125089174311354740411974733981191730947666373635744214303809219556771040376389467441828830836683797062605619842905656592936024298572812140251243246050492869272401087412083203145785951223748722076366644484589452458781097945577103456130641779029920738287732783577125377397572873942867331238360747833069138017385009781152768989768077102021059509303469588415943869087781299542243869997329554454588629820830159600555624886041701746395046960230483616247882335418170970255318003820265489894184134280875070355983927014984953613695772333816540579139299914155302112128210927767983078948360268743860194885695235000079413543728855527927354691367148742175059022388479452952477816214464632978489684572466155957123623485021154009618789092875503709022830942877564300765599746544484308642801295581095741977548535107939829953779215416672614718277275199513884293439534140977220549574724520233227028193198399605759503443869172297555673734576406862323783908453101617384174410908535253667200946766905536819884411899305411960854868523695631251513218279286399396458183754101632309353478021292852577155988532990322154651550201077531430224954382962067504724116529984926044405945957853014342046538373806079006949981747905614922728920914610679272026515291669411733368210062372624910570185040597431808892492996891999544244929643366784918802579448728631004554936812010426539018771979250116695620207136805086826950309634682608161909275439256330011016521417376563271890976947334593561484648003033784608224933885138054805505501469619205156480404959462234419863552850832255000274367967153727799350903936657534929050668949797013595564474612919568790912767273892249104745159049036942742145736543206691680662555198063026908679872417518048928513912709353386517098635678467218489768675556573387339352521895296997704743554270189616936568917246723183612272662306766620934354054316893023781360793555351290541936058376492368278061714827123575053121744093257850741777850518239604327599140210006623281277275614636476755783853103708954225691942291124320616381265107624990214297146475575123102549115941653665576987925362349952543683273307595533851808951460059045668921222428655383260345123489631993781199027732627539992308837615063922076212941249808391658035299377345264265835471671866438130913625618146116922802441946060401301110290385518543114769851680942156829539797886930413867191491116190181156338955877324281170381456848379005952935982732245943159371884577582174495251906753001600871665354159330656113983114984744394278203368924676120021990494066056267143777194331311791468742240401080373531019677591229640694817381529306797967490785883234089916445400677241410917774914070440728567628633467739360484005513684740880758188782114039326411716277077743525214204991906871724868567103219802706756955381458016090177411401033471188345905607110392827083090192278563044600536046660820643468041882875724191934665975328811645092469853616104118325362526223684048377779764240423184481145579133767685949795274214869993255048609755695191788855197225419919825080744422318621524803634427804861123467617668042278540320917714483986251786403703412701520189874593003091322837923514243582987688863511045109913379117809175193927901170432750798614510464426160345974516866608657755252608297920927551792454260563346030737432129763447184234522165960773284518746116922406412332041344274163000805686747479900586053675479284476793307450973093012856281845675437775686241292551065154796805905310194251387088880230252891615115901540839389740922299453942429689345441363657621547518304958359804449811206448950672304111290451195013647344109287761384224429017887505327955253976172585571272497221893316028854110241483064712307362841169941886677459901924906721248779775202715945103871930213830462483949725703135484292629513635414028841064985864052042950491667324831137024444857748093653180418872287023125930607091221827630120445096319228337621566971173111449778468383104439307902261926162122251358689935045035565688225209649897550181552699916174699116680903216135996803093833255057239827221317124614497649156746867402075059588942542412249725163034605039330667118002884487414564279299623545615702893676458134031089465209613796836944286819457357202338275126474268401988539389721866656881928287914413940532496475942299727584878959922508731116117687177840752455523098311711822614037786035268508496248699399717159498251784414176223981081308891947473504029990299159431260905220707314705678608513588212503222316967008646275079645040603635303426993676507100896421156229806829211646584703968947169611275882848976900812106483434788721683188822964264522506150939962351170529782990347888834158903310357046042359415671794507996288104632224255393128647704290618314422268020780318910600381792915565591128397894927678024503662337861666158901974256775057919081637870938532072089994087714328475646414286336042471516553950035641591505620251435259642273652110019546323983213616080775732397699016059778821823531100313313464096217547512683573934853117202780422409746486844669549181812074768419494416394058152656109907336285419881183971637630246419345127282221034528712178515933413662427387621811964666959076028222594702173015183861230649183625647406278574036561144031803494449433911944075453858906277310229522874337478518031985700229608160451930650823561328512006906558645931393058729849757432716807428629464638682294004845939978630866935525966449925342265096662676342961731539363594560780386827853016609876910078547911981452692314888073411444108662024075474818140690693442961576735168086661699576995261321142008125925458970070564506943270324612803468875209573635537688113366068083197402822382034163049259710978402221410657525648273530339788685178806744925030800127880398794877639364320108695833067005050666816271056811401904547503230481868692704864416747873505025158975899174286661406155966633769953430348149822939524742967565840494129397439433145033394144919014093072373232931282320239347040208114604518227732319809670394944162832783279613621502247329569949504000005816897913922369893305468694890955948229193366501527028355065644897719746663392791677905701547354149519989741173503837646818329715239393326388901550953486380225415963696618521566217183496269416359681971121410790766029109299303592545177336518866470494784506186566264026603770768362178320453713905126804547452231251293103877874674335548341404916061345927160970597408234213535861560395436840463343030156970816390992960091755408310729889632389690770830999245309309035699023909413327655605463109355812567149217460736488534838069808758790252135844700940500456514196227123465904564541003221866125871739853018088120049255076373017686472021972528844769384377639470659418473403987970623932068063506566039537936064504819005821390487059490949749947508425905982421420749017416300776229065593266874779410864167562886013750593581204014533367486964720571020677085876713343315893885970600717501694960529201786137680943873719558804162585910104229045846522933352037352762335094515017186486295984269402930664310168312764618312240738905660502026593308462688625539421560820369891701234037504713624498754044011686925443881644436557234405185097731640669053096857718201387014532943476688357214033477182961218945652590805298087667355696757007366570915217805130898020008792298865315206604919888794830988395105311081787615263489060190611959668867115792599706017778208204025327818589355244686234134771648647880477236281881907661547534706505620487442539778980959517083200982659767972900977983360234667811003985435270176781995716916378047465105458083033777056764877466266677394674441654959307862992386280921315256704504560300240096236500584318218229508690294297463363574950378000346885804944592975819310534997858313216773917922184898852119443270856133152938846954458011016208744937135264477654158585710251474991356922295600974849467841828678469823760145814002143211807102670636813000557409614344210664376385897818343825807972006411002922787706651476052070247571038826217391075743202369241696887390697414931976747057945230931993067823241768866714395961235528967344120710964743031567441001703472685297651898378615650078929865147236934229186475779936622773182303847725225910572666993913337570575071602109838060212100741974961983795672305174152902526788243181887457615264838165215776140753956262558032375397544993564924872716473458876532938592259763350448892952631642200269621970753046814098755039464902718649251182353702878957505126581836491576411574060416022511568147732896972221734960153785905468767764169610228383452967395369078448733456637212276550445110923723381504510155939125761188729557404017041216699756659329014218184579865592079101735102925117639247715719033264648628606390990694917062338646918895065874189108054592770913343192837162460101149435629564883403395857666684115338369205733881709842256074782033166333787254840288703969808315749576792766753231950613879625969511713204809121207429922995279618163064796811785387810305215977838642204228495443945705962795009416140802628072927189037359295526065404119907108289537276176925321855929749198371412125304544092979934868710217168657642251974478565782955812870990792933655433197302192889624328030916313189030732092005905932437415542064545322216010437993638418280384648682754766972920403312894885958020423045750496718093558805946700975782864748331170608171009739468608254096037785068762594063477148290027917549030601773529350852986687233151165129083194206055677171000724805700392702102171386000738439585861365392316382120188227630351629043479564193688887707116738869378183878201603995526130383718274869984329998057315415882847817537992205039926407970169820248221097231662776356148438724271917522419954172053959233362605452586787553697305954616242082398850152652929131618002904102344727031933050491190246589180536646906321449608097479592082691650932741698882029292008877530591571210534282539747804242287171062936507037676034695092002803589294447155402405026822148145252706909018570504026090558350974874371280046177227410508891210409732613065931613849639266886184436459828116625966462288991693513761916946840049344385723366551107841954285101205938334312665872418552538843110144586620479451593793325174002159946720368504623916508791341941796603474281168857899699713853669501455074860305427893799272676653125965780672191346769839139455628263422619981249247474998820275084211673464468883055138494105627784906703736997774631845873473774996764949637839098741278846978976745924706196485592923770264508172766105270038216920125801060409415511703107537056568745386875293213179078963430870534531718493664852949633352627197353561420665371896001410302072990039107136782994124138730061596298701346137869449126036253226153240954377829846353310399979152487392728158254445918141081360904592905399761197963956316703715211848705534107990790548669311520176471651045651672610194218510653469135658849036953216869443534142241245914257353988072512171815240747750009626974607459770259936737256220720186610331753286180545747593609386886516036170043881169982170669780825653899997552013464783831662698106669359758815465340567204224996254013211335742980223240547753606502265659697902381759549398306269973001376114455757141478822384995577820761935178241321853046548243520898982561068816343929647397804121175926369494954473139558665154687319404351429282659164524135636100898395757875864111713722947523943001139725873368088774347988578628361829502375862720660629566819872665721350900764286608607790118643268356948484890280858904975364249834122297039186994319923983267583851522047633271746114199986044638464285105744622763929373496064168556077942834902002027601783344541816323390553229703440808039446652282177150092860728808771657106659218831717470772883863185323800901196689505228295645758977911965545219002778280985984664773332234892625476601534308211576613541167218760656328685465150890980607217785246155426513885654123810206855174593790238998078466454255523084331838416954029942815332245011485282230997829273090289121643699697122982582383841834762607659919675036820953157917080220628050144277726729072877181459958962217736623132081268622166608154321789252734444330780342846884201013360093429815570955906617409179333999325810988635188125922190211434645460423617505980530595837683406120878795588531288838992255953445506585601458488932598957170734423981318048715482571006048865671250058512454264455030447093567260978017464713795080146932638657130773082747141365708904304489484292653951319571782295725917684461945605168717890785028662959036220346626014495385938209495569496956532031839420251145040413958842237047219423117610626670317395676691160775642958579001716699088047418846232453633490957334359879007569153910654532744466683820069179103616936983161959710557482154696417987104501774266854477816173581248375914969645580599777321703798977658318026838081735855081800285478344937994921506798192462005398366741868450285109166120505389485432331475428169486168879137430533838690255407312620135147507186256100939052239144654989456784467157921420398388351822836137262110757292863363943196311764335694798585134046237629550777751546785785677775484067027058466060179708732673886545281046024344291070343544015335340407355230108143049851669619985882347019604968757187518216888993318355900170605263933735008969532433618464457235408235010299819682322333338140688507553750236436444034367152477472505562767714434555489454271548929877407837255067296238421886477415437218499658286512918221100191238317298185062861152066036215444935052781474806614513579498575952531431970457157420121485003565044833615959584819778390870028074206177462560446550083033017452178825916128890248718500524274803343956728667031529559779068049073797986911149596800089178893814813411102461100184117934664305009039203415567935118808202848158259751914352986782433189843763618085309855236782019159254165400907221641362909153331256466732941135772808717704858574652078181819249899667709644098896997364860465506110687525064741753307122254887912951984998309420702686280566936900078592948056870293860657573895058919584395426127827040942618432862906406924073230714191669001733408158583514049312395612017838106391599846987061179619212862894066886145942769131303319174290754150864773113999160235515848857331765370757392436057977149613137631807652341155957954373080090679707898336729540303406622190851412336443944545727377999926500250018113285262502676931461838090397505561158648994123700908484918945800605232971002645407403048785318755336047299429951731772099008893609388308207252479099503285056022147139514176702947392618391976885901946811467148207054774128992777738340785394907686658337822225632103095076572945612990629522356203573383569554402548718999924783014361366926465849947046996848958719260456824298115853167305711465540410642082505814290879852652611646361015125725505567733518998313163952832229456428908736951786794273744576457395292286756008994114527150498732047917950080845254537821061835332149891438581369282241293737698483393892168333817655316824172381371448028235300810237621562487050413249904139282515844290052858762427824279770609988779032102644804591908624286498707161174125313940239320068559248199693632102304319298278119753017531749691132838397540838734882575110123948029425819360419025409684017371751418481931051867500600799243406179269095326391504768357281161646207033587293333430928022762274300978288798704159837386552201035313294033520329186942439340993108549108726187893848328595881201246312442352202860560736982461336903922401498957272802756614471275034137998210384537434948174123706241638753141602663902851535871018898443201163425243688087250400302839058994726026696404875956689371276036404271109992659730408305938662302433406608660578313899835307880237166791424196255210402794407008890247988969823465949767908029952274853331525444802715697135948344329409212174409607295016636305202840234538180411646176899366446441555136314543304667266953125992118269829930481639426058787298399162797911126970639743082363810847783049976601574784665903681198587749375592315112867792180484296608811988831974391026561821171668020761801198896109437933423175028673556012039760283339026434079282509327483136202631038192581896660479913168494293861760647005243097841097852950781957537822792337305197600660174550839761691778467927437192172066628186836970250151867739402102732175592313117777871719524458907586925687230021541599546523634183781241073938332638834535815402886430993346120419288353419297942187875530004151132826669775918144660974884551438307854059202428182227774719337615064900062336483215150362771786905171170096407507508096713960339098360682016100800498448619047105568609462468874727800659846535984005819994420688021191062027517621778016664392840350113415675527709376380734466707666539309688690262012425410098405917817446532388201715926491974397317873377971389597548935812673944112856701566823480720369388290219421596380952413526485261802071524260668173288161211319447056394062381306768473395785017911799404308879676111104983772913589891665348991782928146758069563887315671976821005818084401998349715847949310051792410173463161586860306157396716227062339112577040667643507058232994406369856419964973119763355230501507498768394131737829005873328556268230686082432647165404685054691374136676774430407969316706962951004893685474208133777288594664180676747692641367642230044109827963621032175277315734455123109283950103178769115114458462729334107979091580484691435743359884024831369726976565848832780646509952652318292767072850155118657323741227232243873673334544045505084640294588386552139602107052566262323902148815090380050072283071674598826317964431927174371243312477093097402149863502695087015835272532489504122435200496247374638193098617559756300423424075587190331462329951528305366432410986066252573297243367687323025481722335451363633864120612729712535846650024279522344284555753955446781965300832414936148441834670982893925198620859327368752859007072730523961172337660563525192152479787899340356318234702968978908390851942932187109352913282519845552801754498031610490288414307861100171279468996959148892957751872635378811912412667525604884620914415742278500142104611091957129131314716147705390912712145140787513752293227679424645516148120671439418307484456795866974247805044863421964064423394337319803181763634957494046303953610144374815681317590588977245838564585748644695817375325929678438564207204833151896822677942186079387367228111565156832077328508772298004436345461486124936631461519702063271381011926473626980380700343301695626618697148161019578816845517399289403438300745518772901329730013557382066826312428692291774339477093316835715372472428307103544302343577487031173748940326140755110217282953895230321793214081803020522665469507523029033225127475074012150126976677525227180899248228994726744637286120010638790250638396459443479243238858530369937962147531859709032559123446543443216299919922543659590755642973014508659386416021062538108758318105025655660728387430108395148583552214443863895707851012550130344463292457985331677003780303280430767317232344486688931785133971665916750167973632148685642896816487548672403824917605328809237762178332925648949853457154995818629398513901174685132172717782944994211118278624533037733546538040003884256101473741376885787237895982520686023021721167669034163119364262016376157022207021645595487667543654042833221517714121429543043328838364397301563936306503313339398806129971087938573688885407583040420305678883244733363410846646190824802902615889245545151964917744005630890565106836046768464179116475776679137914374022678445098814045386032373576885874202495530850891256550254410381816670983589395612341651519062902551232801614041127939914150015608689081036771178111148676019217888454603072918622453076002398639076236418612931647120318147077094265056257666083377659834105614154830846589368735543077237803475197493003321276694628122692006221221767858151422249433446627495728955932864949864678938826214790284305795351528511719418339730101360229678949729234789653780707179480614635101241933556649473226808016355175521524614826917870614397819099719319703238584940666797473542899766623484445128977503083001279385690033993413002540919694871776710980559828216582049966381689958775520431991663209092856276106795743822198575132260418646021394795633516125725517478956178254831654906223913059988199556106254366701919192414903702084174501497897001797727968591342087842703662109167827241940470723922927863981933057878451904841106017312001545664962277891249121402006354452132376911775565758102330616374467180701931252928836740383166856396667300115912161088959949932895893567071343306318397001882084892419021392479459401443921521782564017765024288517938528508831326958431077341771693974208796058851611736114330419049448729129968967189685270302498904725564405014707066591728788663405955810301172316710861274878261813060601431872771556502201725791547998053211102542167234409983196420095171129541591774682451718628858968011880131977997725121169414514549820563733022364985142033447772646423555579618949062788194030042366755855156476280830656749809015860707687832738149234781566764760323457977241231179729034110718071951370144447129384706673572785868950855096702863254427047072153912717760411030709024842151854033042239282674609001865137538498132912239620913884573621411547594331761608866023347952462380611571298569707047613643288457905943842703618812409053127165166553109342090552590143192372106922877716673452156140214504935231934983508868447082324051655952670362583284323089045348974065508921074363621507426033216392106178734661441168245104803746847015822068728731961598736572436810633015772911493798481639571362128961049819717728898183513355124114906855073445586175428604646435261440235466556188386986255143355708096775852597575762861562436018632395619225195541186535237222041956667461988931910309977318984499694908885292001666248850662252905394104448141957310028190309176372992549091642975514550895748384910886708298947269918115476251453632114196663192783923921198480134381676583538803308393603335142536596802879025234680318415383989611827158833031131397881670358747151445485904086933178296037858839596890561743139008105038699402616322085681960371525013495935485704441937547554990095306166809645346324636419755257530572963674606183683272623076694823695449672815632336889343642485848502193419505145250851942180298980999115698812475531917104621049195817563780091786830585398906122621152410656256512169657428768238576662490452736951859637723897946754724234000898268526602283956259948729639759227990170848852452425210746119284917514917456934803323006671277494367945176739789410336116667706800035862715065543110372651525425080504471447895196012489667247792189235441699337219376705391436606924119056211995242741797872348954304087703601537425159229240498537615002898795871461360670365493962899017861532318065124441860003740080699502305796453395137232812741889577594681192110907068141994565185223307333650199586917285769791804105098446841075626027750622914350365775428110287009370005052399254459339516477190073867406245811070541226967402851270261969781736408258064853374748092656827233022779033029175407087016758502518573442016637083706368186526614720887892164455823651454514053963364819060021198904806415571194050561433912716786836172066734863968136115463392420693771686739571378998596887463306760323140404206677766550875847379547780729687389031221077448456629380602605307174460925103060205454769299285425565879459739409958670493918114498456735633920597424180084146884089731042413699241702962657896522713501259733767450139458916410681350380167290711118034405854684687182186292343578736223191486781873635645586664655458682331188737257086320948740699912324000770582524912679733866329109688040914406451339605472007458881529118932221159464478418834683848842314324214406749400747442330224428185532659360618753779781873237124513198121480666693074960873221275308612538964601316910488289450608629008928172035144197331250066025337713000813803999284395679715517166279317689690658721976166787767043844713451174978777028814151807881598667381161417151978355607656819740461109452534487562374218346837941162581308708253320626451538604795700785315198125941669845541428707670012814619845556183583493105931460705452754701541438145343285632760165081936287761681906133800103526694908371300714812476037865020516795429110157614088272229239258186047083189214937829403856928322524600766553238564588210838774665902291609880806277108903331762359326431752569562355802160595125996232646932538072948197728014189721601776552119297830150160454724812231571610003063644362268712238335028694947693340239193482543243271293116919014537354870121236247161972905138630372605997047150190971864326230839679982285299674297466295504394446043586753217638284267864946788684151632682914132356894648021195331979344013541349371287291953011638726324806217774545596000094882180900131718519060077424603833463611304284095165497010636079419340267575591762552038032563631764524860781206029396386134181848090864022184107335027500503436026174733182183111416603203897792132946523361193963627943658961241140811389386358465254305375208018217890675649866691805790872406675393051664640036467897763146155047465498778361461201965042838076352687072475214993945052840672575093330528657804800874832035990827875378795570772557618566202206619010635939149571522721953831495624466728759705276455281109239217957604778471758761409175898307076416787226429080736337756015754606612924866859298562579028241882657386076719422066448839654530180275278637816608646951591126895197993080164639414239201017929195844199703772214383278296201427040920204585405943750065867110830445018737990572328755616477196159376750825500273305565411394377582880157644143483974527022447959059696375211560434683172057013102410437702599066555270131199815521553304910234007994765740039810664848466561536024364137239191322955209178550946787752534628615846714324186695946127811623371997932066178505972935982227974744620587897972690238408066284976261026649111938830954355203860764610093851999089495801304531473612053639493713930828574330766583961522127857541296623726528070694298795464315841570677876895353867158510702091498088564537686336332511551263153538126917810843468532075531106902808190230588136374351392774795885379128212175499270063344165539948930845819238312788337340094140419516748163021427068597878450672124025121622074515168069634751940422587640715215932407560181843378920166766051586667330800574203338219787146627135835553898887384807362093414309761558941428087627559028903048279238687305826492938159493007800221667731268676978001555897962684784242845297922493664228119293922266128361305497394037768496811655521172162841455434001862215384108899585586825909900937021379319686328838706953906592466918202261649911820593211376464254374282385910575286588657616297206127838038135273390214164686800193604974602530315946780339404271234640592530699876613122770307410407896773416781053841213003367338705398843351854808740769129790281306708836178818138387643866395125126696343504420797355207154675113174832951232763051269378680825880591786740272868041905572198464737322848243152311736099526171929921599546083938171942569443328583991569038386915836025024180203936531815054638528144301220168160930976683735666943382107555932864953722370283328237039934880845852879326266252355091504570378987210107861220509880910702752179723562542177759897279874721614523720200932597810621026696936447729066210957035550690580687341502690216059895699933703747670188529722589711812375476327499813532519523502729345765799706430075606502868616387788090879280032446784684084121294771470130910279699651474156368005027867992128006682262741811400352642593093645149755649484324054621211310203369459880566518246522857991872850626700403510164473096355727694694189315281306459157927245595525408969972358021455043575236848235725372031909178635946579454988453135508756223453031318433541355271226030697925487772851881882435117575272511266038210576366509128947700576860758022367067354004841604332827084146860379450925243013183453990159875375662912155395832614407050263846361255814303656871707224851018908169864735292722460436008981373653090532935292596859929375875102453909518807074714270435212859206461332702544296225524433942316671200782704383936195167651514818310392889631345874981364670324060940314463465049056358970757066740581928448751559773966071485769578184758989911303483900837822138489989961067840393181117487525788087783011358189330628125353128811393074990011131546039421844210971162704217698259651183797401790420043051247061834072569247333254428540617926632721649514595539718463003517938330518997554495649546108497031159353592111804974807275771645988219908418457793286490129578951064745729783557492787472048753934188746998903739214899171347989134609288489628122663917780339130122302689031490515995813516040297875650882082303833550100387505973912278276686077351422897009117395613783406981741107127130674583159333973745188319873744907810316122164170901046355802747191811168684797666438657709038602668101050724981959912969527727508453219499374613926056087024736099216644009665257510140753080254866559708104150067282377942314010329629003560694489468274357984134674113594068664957512986758883767512435873399221795099192606464088944917076007590340099566849001417556416877541328430987755851516092978403217151418487082154899801668909825706901966002686359800948379006146781624039168139466146993028737579010073543487667295369583811196869508178744997594977458995612415970692930828212473292293686913962853002361976122281216179306402683845488156307909014708465291975633856962555813457242351500753272532676807877593964649039255245061926765901500456565371066402042123516065147672741820116808281344965017720469781181089789695882451309347520969332169272308894913885453012508218089069165121449427482164820330349408384928722474497108207836755491874259990755618345919041563541972252486726524525683047635202181703835560225100237789159793280606982455139982811723032889713672858573719280533164856695915330168487247203862989935118440030963222680712582082445761621844498994744746543875965237093797421220036578287926683309106597535531429738660376632516737969687272497240791592083377982272561624109015129941983764054446684633624917369991482714340427682726939210503002036947178577398605306407111296281312881740373146565890633571753822230467949269975266816602720800053234927282072816695627401579067990004872876654689178245303304787707552304284327301030476506121718041935564796739323737316653335598958635535673732764408771239332733606091203772615276247603528265399718885635451475105365980901758329580578079720494081289452162230626858409190954991303361399294243110593033440798475126048104354016412203263920953153032603457516982997347095128151702798963181625831525118359352976088677949465420625347835156951008552147497454561088608748979108582250057750678909183262579428562940449517360302721710880105179212818859373292193955958911850053572350947688199567176982762266687160661272184162764027176159710271030560180215666121610760253984337567662929922484918656738582423749552558948488655845353407860069556137360253073660594625825128148328270208478254616454796857315451874548667531634587233843137413530890154240617232753575130129765993053089566105252495209046942723113263313373701954786596358549932123647043997228489261768565583681856538133826675195166734223280251329213274041067974528404471136457610936047343662709004560469407285645962238601354746250120170924698160545463502902383038268823298263136678507973214655574568632797053861457055088410229200911670732935081686636883809132848263955912087432945484841887217547320426803775268779617844485034405453694691143637801197931368141774676426360913198288511983885238585465435331665618980645975740378529868414007074010429687649387908137495994744788691708809351562443088827484727699855621617991109682215357478555649089335465681183913538990844832667049250898708376945933410011957828096682335087933583582122678231995644214219432583269383067192712392484318254053070869415339074158400220887916177968846994358512591058425385118359928226193948447767775973163310645241733971893892336848170428392163258861137269254995624002878737539562180213404403343066054103091268455418700123627649217152013985849538951951913666699496308912208727738182751169557458734898214612991391485234323460522190017706076925284363054888731144277154683692515606682353978300527047733915243845122106750679523664583272009245138427483235199887220877527355724547378078573538001407820052679924615350955414151388066045415789073227867163356352034494264421791774278658873936366009489059639281684331621427607394043446614843147070301359011230855654511686702327527967681884224065005348111993340745199136435495846094114384505758542111902828455476633664934893816519627646591232002733772578594406253923634491315669610591071057176623833779853045262890456715488246565113064259726765571195943562643827710341109869461262600684523254991081559751802861919364093686710579287000984133339896307486725183055924679765032332093384892810193347593346716237900381362752569977603576508248945119571019415782419981430082724505808406584482841718833522600299047447130988889566053499787539810873036153111509084932051002689878000918810691160682319840801331903899328694105908799217785344770359798163819917753532398075721963656414365788055685702846338860826076044349295605069137204714710484417534381370416460234446607604774054229133911183211839634724127399634008592889792862574661026491689869748416166689478949632532068309318238346785395151507737949828632738040024571712073311999315351576899985903024495688103920369430683642736569513267686665995131763622824387035187394011707334712512643787658492286474438606958551218546434531845719410459685303795796293173755075406545790140991710994686379498178508622695466638047686983844895804599230994712696016570049864478099771469410751928029000350033120228015517154358813139990865370835506900091417615089508729332954139893068466453944282034357317122238921200634392960125201727867579915944432188558093989795852622067787647949123864336958360772587190573936999738186475260597441289031922720249109585603362384403918426289485774547721527785720401224672170269385488762094895791551567521056436102525654325836426062725253999121534324326325035803187712259221416515699802693761858725898035128830889764657564119576837188030291819028417596265447479947312035702222880717191988164033583676029488432160380210619419477423980747157401468487075767565809580740919342426217134211412761150863844192795405737129120375085723201722894837108835928330993756136174145570162160649993696368206245014650537660272546949162097217353078195169850055404744016510592635781779314466074143199663625723441574445877606572947218608201179608955031020600642877868353040701627597484688190051862820994316474017242885264347469435816294228786524980214443222039250099859142414552266103062774667935763240340321751579765083305360378281598264668307986769323943504209176625261307113179873718876177142749170207178174925134668156438795427550949430836151182376176456001636617889647366163602221414860661634433086878743298120704297394959317784950639750535306206614732575655612037540059001892375970886226889864903098787485975916615702888196823692092019653360958298496095563008727854535539638290699319783400007176403903307271885195481120940831795685710962071825346344599529433257793104181445262350733172488082542998881392633257403123891503506044206078898980297903643002420792605496352684179067744577174217387640032964154417017970268729929847163616062064425661904121620760686971168717537103191129649838793536029676144234434570984896312256326460949396329588267658139121367113949715409764167961429975490171381275169330568471093624065807179813065786867786111525858907852526900518633198288603719216487192767623520550813922668255159578037341940369032877110698451101627003664729777279082409226210545204363099824479839570541140017755363454054909349248091275917548379052349942041745977575230716877593112216728381152137734042138714743085719358060424193350255256450334658314992671112832530027048099472592933559330196962795754498752370649309710900074592044528747590621547354352964104531781784010273318822792473325595694290228367892628456523168246791631493291285360246959571345762496814751314131262416314774608321988997616629315724877996017614665222675828569013513525798727920001759166250989697182864220921961783047117007770186483416282640036582616988380896094653441954676298914680737293198767190793632670450580755554727667447763367850471789058387006065453168459266430098387103485880493144566035216466904500167967636425404424464205636701747895145703967246823026867895655638735951529495674715169757165964934141685661688645600953739146739319540928659242428686703864725500540639136172725086861937131423433506761612185631158618410334759525628538197210681033316533882347401883500820314994732850462618454852090939698951491278818120922236517060861996531202102436022734357561414933175673351629351138592867263916090601037549506146234988830666638147907497641658913231765032878581432928023046549501977160160351690504389022191934446660977400474675183549417978479444122938814036575749014230948730740423093453960953132767301999798001013662915701830148822040517744621006634235382815812077208905277910386468814662391827128388692423442708714905688329978614961918628015746786404960403088119835019220669019239213751066977820122597565140852418484728972882157882432129453593729872051562403049140217835780665956510431200107862733137543287116829333745256405720332548833378012033906721823846242038608032373021227942166949304777927414695348440235374328020239577116051104725323856301543289227867302407405409905078169501169313551851695813720321918908681004348068341227463971663738949736061948528338276969716704770048577116764294827856456151843433727094792736678557119068337340493471822031404583347869975985995509427274106887785695895544954825893337581565092138657107121345230183284708027510737035639430032343551262816824697554994744897960497233663707519597860740592991950408609490497132059907724612210940418257756316130166097397659990929803249598077835106806272518132985000911998494343699429610030244695810396506536443274013097713576246321668982767386197102408139593634906475704078230067482288784505427229111663196577424447128413772362244067097701181581169698685961596266927130346004382752853313746493529781943165072947798873374358749624189257833121480366693262820144128202723790823917464248309760134490022699817302160115531790679107079433271046906834339771339667728394033652875276280049911770832222196873252277485114477373947571176522668830019655124902421158860348851291930939086706695616263900183328558620461889753056806099127125015769236622966395867248164992191120777717233502282232738266920236128744428501189623355334767270642830436924557848537336666374904648623272865912055958425135549035493999852675782845491308059422827480300136074550423668715279655054341305888598433327286339443042429054658956337300886242165892013315245238977728406147230374141880233598945031641123088899933125875735483775468372121738231965261896642624614888724396582201475214595151649690933987574356619774553644727934546087326977818203122321670098765385315819701618049234069082028240934858053319325881465669942380777711662552916494649083038488313624237084634992494470812398071363895942177849662805392113045069377717821061000210618513967828841486864957299774617295555096221007640151412446656104008102828855040899049756129212115705248106805396107465747830903389532756580208222609565704673237098227032113420983472027435545841181489097113800303632643725304452068689727988486113599380009087779605345730118516068274443171501025619904748945269730034158727397018279606212573280207601268937333257929322557910246232030481002861803081611054676014568356383987961420209911003246855973101342776982218505041424480236445325157592255381407727593751076302251440527550448291501490376895239568200629591621595871581146214789168006463913995346061996826081208332901375884579205353105134380342810957327506833099857310583149416985008276200620447873284576266668458579115645094289925978584480378051506031613494523491360574310553074936317440122280481353105628744187428565543218311466193999404794900557531506858490243704717006450087233096720678413297766086894672401896557081890070968248288560192734289166351350859457405622753904858528146706012438896558036339618125415017532531284949818191812624383034395956235033587562651765113326697127958207919742424349778798183223797661210507433342676170319256372146927747722550366249664546811599130287561651322779206346658841603590178339752072869277911754984292257347643233257076256910161125823014141411756082980289906495442315395692423183217277557303968047314707168644546100443036737425231249756038353942732450358641933822344652235338118978010314157083022078986334318141347728752787717285960751245088793572503099675094812421814175205648802514018356948695048586293301517487886889929262186888951693928358969093839687281378379957070847469596867092691817058119588327730669439370538468136628555593272772605921534231258366752009149393073504325180807467484051139077078202706295695682751388242363485607226191944248368303534564506508352582773117455039583645502602087336643655958715939089473322358137251701212826024629914498817819939921470825697097992298746567334757403383575264553233762807975786571508416347184606398213760151233614317030548866022817038333113035001378461193482726865069360745884876071721781263485183831209061223770520240673328867501259275557230033763377219369011963252004863295078030838443795933062632215326434974953757435769223989845666999174054120092074669911853512421450495319205372409622970519639199092061146205139761399121978330437389899212143386522015968140532237631088336230068886462346492770787832067785579978880766061804440674008925006966403917459344075196260498390911721066078737347250736662224951821670261627144497914744118806984629249894780645085207103166068743696117774527427369036149516157095004191927496269841605761904727235761245811749550713482172288400346293018134599680631989901345548121302768234608706404192378056556065454097790577069935109144561418864837959891668260686557486136597079271867743662706671148510221360374076972199887558015447892026256530969366664925009058372921368336938174452896543535446121328503535271019891672383852681958822905262042262744814468056946033668769062251435759007320594875589348873848536144147250498333241261339231909717224841144725222918047091215245554457703282433897281746397133488781147470878202137716733177090347532023375499179084682636835038904265613882128584145330231460133327563969060699641452326665792915783689650697929153040448178160293624716161765492911601294325200280104778016253685184349767043156208536910000998334520282871049622299047796916075660723372500254049047269959535179319649620191317443443534603492121206141070452784847679890527401678020048761809604718527854374089782999521014668871241092276560276553394336818531710724572994198261829562880083405427770848564765103725021763414848152149692934077605217289730458045783540848699284494177451993821749725175537443566884778612595684366009181472678343815187563202955830742579804834835400341242774560554908739320242308583395370656882868558119640200494597807104828967726771083062891264179953847490935140218379547152355933181110816876717382264112035171672554241381817526119617267307995797825148235535651931425274889459455153058663045568521298062305030129974869699142897049866205029093936259289920243994384089275494424403827697577690284366259215284553354165711042245316610401716478648638073218498620252673938592597916912837639351443110608801167619295693264745717164273093270925832260236645821048391869822123087957298642832168170515294883577501097311717819938253028669940766479637454313206327931385305215697500125845776358474838755192562937215699013088818121770207165686490459938592627418637073074093514725545961848822241119585794224285440410629302802981835609712678454033463781184673715617427984826120149383495283578008679311413819458453600632752026865249432663565391789708513293722394119875696742034192928021062667463641531288530420840334873194967847826346002835319510219723477237379290066340771731260563259166191397694927226967211788700882632716967260223567173005074846604388241470537048160082692578523755235261462227873866206899506784787584369398123361209527420926113340489220674646538139227967427388703204244211842836044994452859024755831114537919736829499266626331595466770959610176349388757175140735280727775419663858075292708229519868530923010184931784998386154009315440517710834483615595222778415794398345835446882953370198064712072235040517127155481817365571527625642565355862082716580822506791908735083422417360093473613828565477220295289107282842091687059727812635229938898883168145754812520916141213187439765792474796640557690854908878551447937579282502954009882306760282690123917233366844812402158568524268267069156464014208793491511975076494706813364770498328973930451993387934172164636024205972683137453585252256710454611140062947063743948879154847366875521738653967732393479125263598251240458600846969626111618624415203862774338138079773671262323164187605824295549305373008803010450791024805723290640709441107550705900663682274788060928213302929846284205392001544495428795434924036639853377153979210601044488285574217991543020678698946115594530645286720130958221439590656588131901452504430678818655607508143934210345398469551667902910402547253665379785692897101403945572634866940844897857529314145352265523907144035853700796250156189089554080859295109839008304175719014748703864821299822666757782075804316764703503130201418392763352268209223696191312924432690511950365440156957543849723867251820807379669562346375862651024334274789828459396303842451187393762361787702323258829870436849937449636243195671579800516023517052450939702543341906148110654339035057338777938783570914855619546717177817641942169664870024338660401614442635132068869449014226379619777110801774391119003059677210982031746570376247365786650630837668728871118511594548792081643034361570443237266799321666081067728608027674200501555235901265722892973741645384798594195429306755592278512940884647630182797892554089493465533027202463286187630146955951572599427404172030993749084967005879815361260727286606841096139347980648743528602394172484660771196548108323248719552885303222658979474969222285518246104613693261738641048832810929005447951206404305933999620515052873635443500101281375729946141069043455021527718620295167701913191187594677543051686631726273604014661068929503786619400615135018693995065570642005782915321973414009423967222618733205644079406374169443691224707833966067951458747805469818127964275661936967285544522393742421933967158170614745967300607881472127278643484575772541234960993357706456011089800258204889654416711252158181234521573783560295787587295579458786264390361448731381214722069117554797554976194437545617835778718892610601609122973729604807130713327066263021269647156877048228975056997059974216052085555906028469033977021579147475391389193065197628277537081188053366098294741440419952433380293309146080153517696000547992670006917071224666286967459196961048543288174121577513860377907261786652888433154313603187563870061975772412588163242503137824157351147250630274885251822028722878884793753842991044687652684947130457581674750666213631491594748680743437572166281708631386349947374166402248662763568069927054364183508525234445748100678958407827482256632345720975727979669248045159265080719534419378223310103404236764624513653765111123794894268443463132573311805634771190892976655022585537556227718367633637706876767681836224158297239834913895982097382137678742413639456234432570098266385042116817313948876888956543660864957479654952741970868730943692742493509486828101377331406795391552823015881236766656805258126430169928120697680629836885621216002861429750910793053164372068223760789080224087699004197755487766886715268888348642162175962897198376428103892606769876302048591517094971701784846331089666404088377862419167523415487146640895986943869239968749622729214429070529776564565617993455714054711050600152313802858140898408345843474627610970184378438040933652423033432796717687692576824532640271717774907088784498256258944006013424023714506557462191368185697175166764822150545637265778371606491616135161794085805357577343706433227247292108820871708671284587888232321218304721867844129394882354170366824686757062503896863731913168257922546467213565042273402707560942395051200128851479772087673035433477371524664447008058286238783648035779347146213452683250227764281975419666904402195911314319197397530307819823744203880648908643244703344531131321104996188446070471949156742736710762091031029224441236777054382671713502546389614863868685700199547661412198435504787420836901950664197607532457579706172639647507270835742199764642084070292423708724763317933415855714691155737055921808805480719551129437526670622499699578326918438699266149628311250262934793738868697183763149571837827581589503436813846683212798964063859083953671627194935426519384122651663097495016539026412018382414082133187118079132711249565388501776905143545475528896424515756953632821895600615061572224424239277101177298137505472989220915242963919164852680281243148554351936293072185300969248773410477593745517338481424184512955339967284085649467704012631342451702857283409359468758254250120171533399256616492944176355530568311051795057345788600234598800870126466102618437658161948728658420198907384263267359634805368174347008514939184537048029458267564984044993718804553482322632818683084208628933056032621145071189264156698535709047085499101090901562713717587862450817580849056003135273908426536602256250969435557394653504700648124223033075858730351110934606536827252641184096867406897979448028395677461549082762753053066919073805544745594255777293569658578439030528031944463158254688847239601080149702316101779901067987106245623900827502780027458344173493232700667383364105710133899154738454070501266019857606474939346061205970415264173153319371422361470042757957802128110913505704354399148866399533327170909729558392962051943450656039984231516949614527709396244016878907633056580072682481467618472251625827394196644006916232972744751802701675918901105239639743889595691768089446059554129969122741377839639136113277128529606919993230708267782584759241109879276914615985252221814669036633610083213577706398069209174560070062647237758311601579482892259929319201951326611598518824627871889711174083462485296539931113000658899680871747417852322649787075609430512398576972301060480707220397888782462335117078678742093271750590968142944981897026657971088999555141823370385982264842691473664370740416262589428993125306691459254333852429902316018758833725718491704990505871156870197965596060305925374293700147699911577400079093673272963085541055327973701650794774341233842115935593786939376274389649387456367454682837163117372303242515343198445717524253864518047680068306237563998864450501835779593354184193319127021729795427058571916497613725230425930750325447437326721490119111043741654883848597539822691053446589434279573514898329049949547610094629618481649342089900542046423119371375291235485657130464269090594693857347659180569796228207676190688127874332000845112943723612803106776245070860197988497865337843830802814004501808641443309328138196978801073600491026095779314776352201731347137391521351354706860098496276378634581370872521832887556450012283810161398592832212333316326327059056063215951014656810213418584715461427202089056909367100087566421855395165409065973852628776557456165106194800715994982290391249097259953571074317162051867960234193334714976519790170944490745603906217096435240642238446312642741214373817055806590185486541685939767310864056019764907611404841987203313693008638081963788431625890289425352311711368410744703445488627690973926068463912943958974492386648355945336113835196945769749429732723352402445115316852256652991011160304562016200711652605057309682690873739222187592050190736272175906967540148120312015876402545297733708217927895257583517264297083860185288940685119763594713243259144470047913603766744216464479048982892690987486946083975390644912148831111086709625520951508824908653620346258049461811256173290098200857207385790819853368784924474865192445148693902707802424704777645654068787642436960318937066913126331122246303707415250576652668293728259856823889604669875258167436490970031913778076633587367722005976388630865965155470843230454436921390116311939299493570354310015404712297719034214891496573843001609739349823422302866992444184562115053362972484184335350458068813617011741490727300053297205667937585962029255473831273373409052670971346944