4839180171676933613837305960154637545662730424785179809305410973638295578620009616597437979977341261829691701762312055843840584611894763843010241556041426475946126502986388412568272414162667370030339078810067994136642918746749873870661778467880445746511296174452528795531329364949590619237683835605269391338822782744777546820491917857080863141316793547230270371167865952266408078432156283220436123628955695403247563181503647260623528088539963620938089454270343696594358344616700519564092126496146681416987558619576075288937542101343041707669626223752645309620765069249905868481866021662624690106120011607455532244301563033153865867028773337551092159552867243830633411744500609924880067892176230581655116177079558554234551175133209810428225170036469815023546866757709622140144790772285539226901671634958072441529757211134824992166551458693845720541765147547763328564334719291356422047702589811778111583402637280584364512494662483631982256074133560021371838086350559784382896153165393577385011176144673853578885424772411023140754211507964843385853195298512598010270966441779365775295156315117134231975143079656276781422044767290387992300275993572715029496115253043284301801268530032982594129434852393583609553567865015437380866196444815861127803305848686772382937418995017897137612471148387681432222734513226098336450389058191423707158581180914569698604414666037752600729821277246116558915529394555637619747461173838720282112577030892776413630913896915226483297377544186550542921612144883212949703212867821024286400989200404374796983676888207848946867817355734423890489309194988675357082565018498446377396785642188897154755605449086815594159477257072448908453461043693008055871578722623468714919388699494072130912274611592094923892842340563664891353503802205585869093050416805041492872003661158157462514104708858036346613828644381642052523418312956617990855293458663826277008393065865940470816683966693393233639216700848829587884443783106570591162256039988776111599810567527734959653552329041190182148990774169125480723628837956170070048564577026198560344149857854968714262075795541686190086861267049576883353817076786794371597202269848183474271840529967016847063047865212640835887873575269976271067589853936415102550086073691807566541944686196352360067437517374938022581191836172179913775503906808167286379986294296673224524205111839577575105624291624076406918102159806326899319581089629321131457338971660692550658521554677713546344510579725880642898255037391036487435417096060350276770519613361115666366073108125803854826162273749486183493316897273756372600074022630980311000728194721981089481755843884084067976359558756695861455733242758446181036801571168203887111496240958052643891907738117838978502697593767147247021832616403364523273559364099891984245896222675003368395804784882206895417775375611541121500988118897349127655126371594644643464344189191857370018167622096343888296115391139130057710929654932762383913136150255926919974378645883285598103128720412310857611100528077898110083024356331002222275072852673771084519153354686804312698865233341703718154512203735905791215659829101016577807271762231363838810831932699379197363597734017909082186345372392029488261673463362670214742082295143960137473819177198673972191615001024872154171891758045354425026239716932359548613428054506009723695398534598350702608059669642912442306755681661922738705769960205545120689846039212092568564695140752820715419331540706663122746712095176617641705876542855129700009526188952032610375660173044054007725521824196123680707102517018781343426835558927997707959750539664906590145947637408104070123199599149254758522263173581504813762787703188030266674023183665941210080309202329096599817174678890909049960103102851742560937817917811808829130316590846849531222013294176099021770765340303526837167674284296364430975015468041867525053472019552650151798592779532037475786642907922191951229172486124793357548341550756878896134746215551316140206371968847461946568123355979909537733628374569125937363860850714498850697144056650487763849821270155125939335990039716091073101116738322365865969830549647058179853685912508094087042006701519504863465615415814628928508750600197434995547039401294044910080190943343997600541770185686695705709044433193258326444912671142622637070390715658293794951066339592299338310886716085570787310270500433365453025633281259991028078022469014417981209335334437344157404305747546667600133677302828668009683337994664778146876169926736694028828384862676253979862545214727509348724081617004990244765237998822605004175875264399766380179062222833240737364893770419427323555848163247973463841882725468824308225549247694078166449095977317230895820689097803457467954695419598070139048829175911616175627586384498402285202704865473046794433982723052572853339887282861205594877282440735069058877063294853231969203386983898676473792177591698628057745024992639918236086255017822597100609863765688296812414206566276246233510179908699830350916534259972333341242001095021122885310208542976001202402914037215847977721919629750001293706437012709582774647612723842213866568749797974449101383767988374021805785472926937075342041978471562140698990683480014328416364510734803792760109210743695221682756146516882903824909268790868134758300988289562052978758834757222163152080946142449325118594316632948146140865009042553412844507891716331417028032288539823284964136779921624537756519502820327730318300473826502264215407530214346186224517277593015565329340885493116578205055457914546581569109511279099604240931396044101021083201111081405509638233754866064485506605755306270104579955562001551211797337965985332238894094250372552285071579003336215725240288433661269317327661382955489508351727844885518384423718266227152225019407069808340622559281996229731782588579313476622550640372356534783630572919672837802939275828296660717918876050840033061543473139101993880586561575971035473786706906284333090247745948486864445135863207616631415900849436970494070401262935076666751694292342749899916109706473148308837171346235226847828465889620504211456079602396078825404376426858093701762991509491031469011706506986053343403342545792693773434022638962312657802481641029462974248045276532223571645848795082406311938692825172246831601109350091285045337845079752913034070180309903446221738714016319827945985876220943026998399031924618217704437421734433373277379841663344887530703257585912650634701035424287268684333834199153633847489818634492836229639655928312061052815265459171045901404345541757938564010927131622773207762937631588099092705978155576243547310469278277458945860327052407138285112930785580066109814154878696118401480038045755646052530300021862010014919484049754908948940136338349840799294169560464259262905730624793713129186222647674864348410890261574492115380047534079910099015263613925454469222629520629521048400793249786608871733795748953794873108077737525798078652548828205626433107969539447212567350171733387707503557491212479204321495834514364710469581838759191231824286722293230298471347266490572000673902326355193328054693651962030320563198717049845214680876080013079398279973968499958936644646954893710618004953849742307771467856228399100695980855185863000795418248168227715800329915216395837762588400282762805806327067650327685435454621911492035841506648307850495968060219423907068623554349498985882813855156962734080424364262841032418933620893302354880217501604956759111191421657146267927088584259170399442608322949731540498824731870724985828022905169109992475553635133716519819325336335583148401925306968949881425069617931782975416112907986138634696499667965516127427216829693163702679475927549392113705765071351619566059713742964334911429564726672387269544840273765807763135703931768622006033410090777190671074141913124838179189256966033130654756178651479497323010623937902488095950107147879271243637337685495080100915602520655019752421070579689770241593569161036289386444303281305465821737930668597241772100231787269442135201051885953163296375001046250770986164660087306044554758374351450066433531262977322707635070215222965218445733476646410917039661858470324998235800452453267223418266399788612293249484810633975801530519470690024973454418815306459500547517529026362814695225871722877539391394030212672295872055233097926056559680857087665870404803596102757716701510377864914394744364540312982143171967358898362798242283472797014201036925752931756074322691302822926519184487563260603963003386579231150698354671741137448876433357472532377845919133977754397733480734071765267270567233663446795869267443969786742566832177856442379014311380964220803121816451798700132271267699670083164810089859963190217976943952279750769745641051172870475860197073149014588794901189236723833640054966425304795913937500893158253650302943412913307068157473299664605999231523963670485233552429999488412575861238386819275418317266107365852075813595422064805632253089574772363713265472853326541840808375612983300947223565129314395133794992322426149595018049589002371770913255870829420234183093320408509925412594437460979288521671521513065214768414512531393560713864271803270121682836976322394680117398625748806189786319649017029859622206186795773404369371173069032262871551028479916843951367361688975031233071962656951097823092880493516924021286982091884284472512874567079198886096274693040392679035733752531240868337632771939942526891055279365108962149333228570250465993820440346560594927785711758347630685619375435928607188263098862820392330973566337055871281077260390633721188711526014233440176216270642761642795406920274381913640605981046325865558585014205579540138343975551017965466887434498412346643199300097534122976416267592167576517616360782070621347007324072733494121100408470605415147655828177680790741689640181706562144961720890974033007026297854069565738718715219520322042837243299773555336958900943247420154574551816449045946030355007113670035216861876460073109619421799792314900197734742152113066235115447848957721205421633049762383838612417180301843016321297526910881022841971066467000139992684662874159256453100900924823192569846362297933253244337710039285160897126810235669192864877806413502214806829396205582970760301752973463046085705364562538679845043399703311982518074238196170675914884225423675572005824541508100598021663031589790382737997808858760827120379258287560259039825691774496424440379025041945937506674124876311348350855959552203970382769401536461456952907237524653930970034771826522713546308764167154267634717479750005635511927643169923405152027128691142235009326318759264576289048253587087020661537454811439444269517326129195248984465519554981843675388297721620067619674063158415954874546709815587444940366108603180545226107666411805932542312631695117738504245326920175307670749261034894328951643760291969033969073563905790965231361457361758665012312892988402548784420696563164396685873714978847290250916223753312809271679553283319300022498729910937095951379600540543883666657650460065193064118273551828484259205301911227738656912104953378398838020152836792483694199426366149052168451030278648057090626241256463209412440304110910082707932679909940294225747749747028811089989974094416091765640452234342240248747199898975440486719244479593467186166063608656338252700669906615332938398164897623993969950621165368298114594366656052058011237773693404964300076672987799812690950201797127125893081760652911017047116939642231530616782973175889591284159472636607375573991479339558974811185745483031420577511467255647855439987281424481232378104678364807805633776214347675596954780171851314792413857615164860248355441682162303799551178554588414058127434664943998006861229171577489132699093483284870093000167806729089098437765152262563670460133142041985661187403769127173286591795984451679310696509226545204384973418585417476127159814334772270512360811568281997978412899116167394485532450659357298487499015855393946192157183802750599401086525810529744552943128178128227979461414398854148460378190012700657708138014428374412231233504670350273085528366808121355616184119147555108034625447673135853264279934544448910464221645130457974877232676468514047201814850547025858116862614018748920315470273768679256527929893786727274292669437453005807897266839566096352295941242833612338012078787313532137361544906149051259127858112436172337828432448564486172094338955198870624968825273990199623419938726889286068695984004967308201173762781398257856356752483313520907175314230915640225564805158248966498911913588500157537052977763413204406854615721484299587253505835376052523096144663611337787271819514767176790266538771440278359200787595175291954721976093839760748598006536721204491091474350324283184847410640180290338873816344653147899954972091035812104738104518207293680990194676996369189631461290669658777135834471499453509628685650427241735272311356606679537002045870053571712858519176020820135722727175246531493301013106110782964782217961010441553963675653940428649336547592647944302877262204178112767516880674005292919130657468745407085143544173374388343090964414113737092400847275100500597948460733532883867584104255205009956939382660957606116541162663668251190467552222934599715072348274394440196328612172053651995812252796715358220438643919008699925194765391213367121523434203295714291831963299912165509939369840360543649968969286737631567551598543907804701729492165222077226081471162632714754070692809622230378595858030416913973263125459596356832735887478876192414050909645238512100848635245586992093057581333543638491025674273472878527760015479228331998325773050813589691249162005105947514810801250220344261462082576228719809925047172508755953100833614594597091809069835320641724186645004804995991885428493575084748258739239729917550409756364749674558572454356101151027754138195640508743188799904017883206125680730505823703794205994215827495469520012483753174773294787427074926037376652070457777245997695097791429094292237014739228097507376429339859083884257180090740588131174169068457882601600775824647764280197033721081151229811276953471591304677776891914995123719167317447914782372464964576848864596241032500747094480837422218768392496647721430979953706937813643992567230483470476747341032397797943777716164201986611814054823528995677294715803574656161544896786253083554045392858464628018787312720076570019305142614515384025398405053055095500771223862274804655250566165626603825111448929394820986593165735018539773666506098086646952525027981858225876475383048643996509297383215893441989384158548108038867298778123221259675439350263049879747569892018975429454471785763747494483684481034089536615291565315764033481685094047608127374905581985233401010414185007745136784983416756968909427028792315984382623399085886738530310542141579841281280868442205337491605763648876995972826057680339590066431328028516708404172205255262915047959801482333750070606132324939734715863007482480551164406800873245731142880138284391741422519834418622811834752192276429670664005968250333819139356008965032443039855998270293129839636239584887773362290219532416489013961340127453772894757009648549946080003758126316781592566421415014024300213854432692848490532133646186108483836195470220383597961679299138421131779801849299995053082996848062140020214134033649947147721628842855976480893267152876558711505880387926006422238415070942002681719411121764097849347442653911083035158325724518543398563855063467982725298759514943799085581928727909539304366750130039697890662463316256792468471585444223390636978504173419267326971303733897584335842194111954541681055344192625110429931126581749955499808161782825719921680755650299189096275457039922181156621641569569286731534437746851524789945891810484648181965551713181085575757806260089275720992211419076551241968976893476565787828736382516703500280637284852535408147309070320459412240626989420335175072015051092317389078020054662269470086285417255252054060537754701819438089705320626133186861232413366164145677730353762358582723069786290767531676943289137300716785315381145302007325249079041710251780994424725568092099904176101289279722295741551851751279989018045017237812078153239356345356151662496177374189502548273818524680839547284702763918846127979438421476105676942343138840547581333570291858443678091876830688722189219394239697406684277345218436457386810770510289616341972716351190871858810938890525612994529649727802693786566528180379722796678359628097754316224252234404171007960879545077699025248799216417214201265862522434069948960511233763889366618862378272169110344610009046618505732569875797822294304309960720293550537007890010450980887869889244297008787889834823911707696521040750539218101684086156925687782858911833653812310936638107985161062156511903135239893713401928124349901192516039029300641744657191191201552166168098153238603313522752808014620520435769539970222507888699161224268745798695728978757526533755172056526395967764540202956321849045798337824690155185480012297201870613496866971490938049369099177248688274871020014828855754672496264182579771883276152628185425051579737714993320045217025568074222205986486718712233936593401923154642390962844178471121571664079444774771055463210432589746243298766143248895116160428493028447213838262142663370322262574319141534351676832270202529786228133386812989563790811074043675598826418707763043125332737004554437188969635040352896169870336770488385258763709088694682615283332161786563943852612180342971204521609356641026298406531739860312482418183286815666319492379310658900719138829495027066394235291181262186968908410117747160790808935153840640481503277093062043947462847801950110448148555760154900184965061072117921777253379769788275771988199992170805133109088905483671581480798778391602610500059316575613792570409679840991096938585057336693634591586575774368216722555214687037285842419856787369515047405219948432774660239075037531381813707550828394427334837591620811292058131971314157531391563555774089893980122537291430587842420828708006119462192335484178411403374184806742062305944362204354692001592177473614208735065491960271320547285656087961567117203220353417146712410117273084704037173514239910152274901209779283990242776777783910300531418436726851139706475776817961012855538224437308056524215902013309963885238069974527948549750190186465998805792155840695670699708345945725395510195165722791762606190773202853873499962141317687207374604880277516502726868527357184555934061723474647324287922731296790196369706171913332035209428007027753724341433876170600653454266941314759993280998069124479806400632117017446546342255693683233307618420164718352677247516940280041884800382117485100961655683687866256384506345866962027585853630356995445189675261464212808271307906451969936563619031322140371171717914907653925939071395323430612313704569962455352581124468429760041497493648284533645181934901915055804269187531805314518009100616296723631485575017568379389451171843116255802313170017946991109283595221701043460462266866976994354877958163509645872558155745270768454370620595172337243728255322278605778727245578393675400043261031608581215863793061601716133246417265497073353759829091605920661397947644080365258257328821898037732597905032557382125008197990774923623227483121443044854643711114477800548851005300885240612733271961925811012652641266227501838025227819910176430557189930023936458239131248892948667550653956591425338553442637593258314619369501044990234508257583414885822782987486410960796554896385977155444182834830910575054693280995549058232716707764360739058157601607530702383160696670685491261422176257595902961539697247363406724359008699885049918733469710483828728698577182073956292273212504377246194802110405035353775935472106816207518668272707174678115425107737489355272453160637449981502275024950577813130293038937187315917413570252675604008801510352853605952088346816327207469495681041637945870462094815662601170384458242729866075557023284492421976790073059667213925353893145333913010316383004307942231546189471883824553863304008221486094042121413969256687087919058757261574625022047615424115120906722979332844149800343764277377940137171365879750885161699426111125932078555530519035204146858070664872728281343357977492188985042439702530774109997736945744248592463626704214214088673247671420777049710141662070838252910162249953925940107414507323515632857842234829849581931763125788974758982465349397490567970548446811610956490320169226913978813405666652301443450472074471353703260936266300756703911458693963390393910640715396797833692099429458759724896435015798067367309245120103592236847327123960690615128139499722407139952258327488091815865737087791797912755493392484060544252032101893178617056395701756271474695885192064779409979154872029599077697893371321229245723935984892551340678800932857429722221700965199267047140436179141474554551171198803617761378383531987443660779650911787925854207406141507585541542721514190521361075236084548693975137647609735943566165629589886499154824808392649366828777666305321713293023398324917895661292824905324737077909301180646876059559192666373063003212286964579435444700348654965386505202659602147617752518014542293713079949254926791942743207437818216200136628297392667088731522353074087759679418675484258300645943452137194046814352878619683278524738448952643089367128197524377850605501765173019722631383821516687237414921332215579618001162830564205798821152700771572799972038568038821046217295452722620833789693485689211041586858021114483452701360391495554140042153602957228354383533099413528734194490212048487831241282544318838377398593442235469588732274057985615575920153790748522840256044616174666682051025987161197701263970347015211424912729949629856144288999521763164437421384279994312112164331657191833072599498920141458882057877950267427466259273418207413190986912764501237155497328069388477079355705928744284916723662509306232712305289608109871148308348062243484002072892770995735560466691049440747036204303986443580159364309384187818248637381730756792123151579250085949687751727306629935082018116601569334517358910914423724535195252196647373175276618980434954579899453291519036708507641046494474320749900814584334109203853300733717708799157691101022318648722093863643568327437640871746519728005470826669403277364539181053964511594260201538264718626732138699859275395558475956719393616576451489929574411916588428789437082230122070412613361214093047746969081389331502839051560874649246154383326576860776923910475400015554996644320308091392340880892458847412844985785915159248338574359100394882460952577591434282727638677056302308655305558087259913871587117457212753308107822823201369070716437712143053746939359485483464118889104409884587412361909256767656566917905453105441531566142807564165856492812357411568172462129635120870052388139285003250562426949036142380293112713048105458143056760909028449611026836381296592168269162016087189863501730480607533450751359178155516789737898541997062208225041693262145924889088785016848442612038253755234142011622316251522726642927451975177249570196349621386589234321939654511631366239368016939471564420881054281904840641245282349781870985403504098063288716040929007105746106505402721502206398308028593103864404677738968508439331180501997337805679476336179102221372471205985543590123741752074112359570078633982994379544741162408366464327616916453308773990230176713246018600355786563963986094775100702573608177733139438038516026106354624532216629662476327930550296758212433106063310043747803832408329573893490731836210000383533366324613053036120752752891144581223695990204917092378557672131354713213333834534861727494717943324745089363826203476125607492734209807734026747195718378028202722602476988563372954781694524796967215903869207492970040592972678300891287107957145159109497664594584702422217021547567407173623181651804135938183849580207670998154334757341150434493424281280195539004839954908358690029248358811811395281782517387489313249031112342971049201039788619034947159494681895825929997759753157963803271361943535525300276692489860188224428772324855982652990877986718251038261757246511800888687268184298124290024686766855713439348877689119112680267952424777702699458379381550686371613091871031077914953118176714885285372586784486871182090772160799236594163501289307607785991070993642068419537578349017607714703168374216170927761672433104585992739261889872658725068489947437611647725613878741257196080834506760443004491266392101710894344910064375815942672892073063597989986423005509867056354760019808807459859319206001646113124105995640626567597198263974297708207771834591240050986284703574395172266715840956954683053301841359586257742748443801107548722957815431206480224615735490262557248891012661793255728378305551375164366522701026699537367812050566003666836048608652398080385342042309992696567433662470509043347688588848595238594841892806140908766651400934883278467648252343229985035138517844680455370515838827330944795589058003630682275068701805285833839649902071299806687867395989363228228526756736404181920518455787509462038702352860953004950438298134448219454731726137623676495319853685630003186899552929568099985344807918326916972264111021019653034835668360067283705817919884298771348284280919389860562450979747981700128229158034191346433318107277399112127931441586129551471199938949161854099257879825972092085870786972481307184067654863172759738326674815523930706182500775748681248720283576646265525503078946161034052319084601253814122916622726132473471842068459861062735918632879216400607452339446729310183360382932092848071026608630758085114317527801619811581455420329941372134815986868016252704747631878081573161758550276446821694772671838144329175102747439598075333427232674691111496230199007530982606874243464603327347248902090360957381738198521265080881090027123961134954707933532621720823535822045531911705159311493576820413617270371542168090249506298330602429566611927737752612231165235477423195388061836008222448962410253672201017191891724978865016042410630831651731804291178689394635608791856020111541759528567921591360555258370524699652408201350596542178905058428493644464500659304522322928761500875212772747778131373665532683760392569744511334572838491669946976122106557791248422271437432029642962527397511364591735578781646942104944696822381555002970145739059543912505733998408706710384299244536896370770510480061190520544008688325492454593509729881835345204047687933383633615503687221842257015708137401762322781503688913624205119859936268547798167958320841362347240977731501317013946031177302026124907157289090485099106936149861251067895795833442363057672658884091770350834289425821598754643142210355439957809482541417981295527562006091782721985127825045697353654353532715813326018613172818283619073244726068770632950242060322329754127833611775960984180223566531954638009276773771199212578121326799500527195562681603850773806575535587307953121281677644034692155704545230653771949714118687902573928551616984189050571340130487770525786485993909957191104142920983552100600090085804915339621729075286356366375955447980953025032561197834471976511210306609212568688462810917669890931502523779647584865867523513606766919286251009496072735186547123814743468679628226509128872594986460707674636569110033810170668214385052516262284297679797764685123639980517735164922892678037549912801963737254757037204108863864155341615441826520250761658934449974146781963526651628883686121029533211308760325598387745358560424745976743875335263938574321373747345010398931557951718241388763407009049842998784865789928894144944959833132001498966959739153658044027341641781587273256171537441844678742911079807123740993637822289163455563544356631631005787915932377834298624387441651130832425663456875738176911086299382535001446133717524126335954982236746991504975738250983489887101786375526923507422410868757567645382935538988621872869734491265793087630439392470766630089105685084858891830078044708716727395804389179252359164534406078708398727644560805722285626223104934817681148128600928490023434937329187291003973066915017360754596405135235633030621122869944494145658182755159111234521415965379935754939545457680133284871318201877270234770548652980467599329517244367845899765953099849772623357884668158134639938913980153498277634459362835839621019035484202065411357631214186388291830260566108243017138556285114307333389090815226930896415027467290529538620142745825476979625345407361123238413095543231104738389015237551493793357771891374203114638493633002347115204331851173646485759069394115735179364582846494070986926338801429356814099648155244936570361503549131530505320945348006042102557570624775217212856657361581836593556024556387562237963012295844200903368996653976672084203898319409745644319607275573904293135076041505036006823371772201614112826987581192884222309629781203485183932152330853193055033264512120424739973059369675188514965288320804892197124092511472969597320400999109922421682739026976618659658669561704963146149736307263238195141321818123848722452289612531046278369272667449784013975228322040886814181835704215602125968273351043561654235666227540037864190395741917430906639383497173592632107399043033706645084702061324635375379683054628227607903046500147674633038401224994785199759774541905208159372872251861736713167368899714742920255331414186502339128199563866882316467976627860772692548925613845491288941638715074239122683068517646531705577174607620898295147811565745292900471233223142657348505070509800947071403718083718678276226217302009259521339711688405138859589790716679802783941792306291140120292869740929313593724343568680700996961063994353626060327295266355951158448873246843986705331967462677512300634218516286719916652929671901974306268987658649215408476567754294921719474339350901758404180610012294131675501602787528037198100429942100661821009762675385206259143454420503704780947586107822737182525685056435420288999671955663926484090633286214103071276832235884383456774406816224341925259737175411198639220942487580115089707358468322254349698446467066047772529461687022081826572388082750913859018720039122779017815180272567468241244166344345136644762928765689714231875200823488965267034692574097185716898147033650463823180590308889568382096452409782091150191989935764063709049928238353363461354930447728723625449374601958083587522304176448092920480585394743505736153807606908957016646121481955571961732323228039694307445541109295468601934837706137882437557487024895098472152876664808564302015594004842057344901491348778089539039414620454855004138006804868861813275211707207621421112608495676904526706427289332544814753221911374954607325369613095560992184322727287920566438838394484793135407236039085729513442981351674225948642551134095339628764922344949814060183582026098964367502097078474493741054663550986746955653590040325520997342341015710385635739761214313048382484055083656220196328769163901149545154429142261894670587977091056662014039255435803961659469664331532935860404094381557503460993046240837877387816962622979069373008181879608489086248545442379789598785746585593218072617955823883661246805464786693955641234613980104795331719478874439563924223233712246427375252796752045577801173408041888314594269564011892010350265344176635061917319508709745861405913577083174916866747722218358940298006324825502187959171016801921832464956407725411438539229322505752248898661113256110032075325800125915872993229930943241784274387989466666088981976391479806345033970646245133331961018099633136534508233847270377588488351675329889703097715753401340185352885863734043814490840975993528817394677081473912996994593956837567924732979261451150500995578234937400697624769885935925583416800650610472859837331934582823514579641688974967600893242434796153117286184570330320745089468183495214932389413555539138084993242864267596447892455469267766080377893543297987222768795472180218997352772570293570449086204226126951139486505853897896416948550246369317968554834624266961727842588410216171565027554151333018267118130857913516262787811222049761674660461812549718509622936902070546583674928900760722925516824978627994497287353326619270962350223923462290925367039956952288311613969188171717410306001330162233629547465636488428129362379502975839676140888631544470717678865358316930918882936374346113090636567161262140344972416038447500156973099303437835087791535395311008317258692486094863927457088199921756526865474951343088897607500775338014561057181490379140800878412214770976685735863787867954806037414502270843330618495181672275026587714899222293133752829047659308089578491711034400682697362293002069808070183634603863599829130436327234243616076363622615639673205928453814422169432793356224554157093385827144097367693326771296096334917732141977737079747877576210702575799886650368333120888509580738307296952099833145234095043126957787372682565880404903418720416294932290457045195685927899941660054374329023543101703483387543649086428421885105275614952716171089632475554074601163669830548746709957413820280407863756810685356351093475404544231607289357883428628966516971404665484329118550323220871569619186725157178024066489466613584502175681398291607345392954313763080649789619780424054349771058466431400372340392898223200306253896047174309348628441761802527917611339860804776521797987140931793836822903370032102990715709878162754044381394505804975446334240425830368407968448936480113538580163290041837782675224235699447563983097181850127740174633588344633033841937959724731205564398861265550644349221605825471811697814479434869791962454092173343135572525012092289434834042486790257400011310538571065460608387302153164295259106302859810648479685901421057968508884775849687646146399594281041920308882850615230979828357451653784573868820454451334260915081459817103086032577711238229838973965685984697844516739561444232628297885255030592165012266790963882561196790759966578794464460858015235805970977524403840297382283707297885872535975360490128446727457235723076573019159171915698343166648946694005011928020689424730405209968369960153965034986460400030936863760875172776174810861965968645921918525803420902998185681455948049902492835836025944403558143058948198472065677261712067982287082902740956413240411628417635433633908993545969001163014778311685075965229815825942243721552711228714347228701305639901157338451332767490361501064054270913869993270929066116212618145236612511939931937548170342256770431692886780874639546580806583527787076644732195050718799458700589286851324544149111091036817875804499522086501513623727318196776125188387047299651934675585263876494333037867723926493052678966505048352138811113852258415311972577312535427548924240091523720078700964506250153577576739011118088184535261376633381065966087896714278894922595934130637236025706134013506866469873936660273844567968319005641629913589616990356143085985559711613961932532667382681170636507778075269522889627985003167727595402938990179031830430847529279719013802929923016150135887714696697988170162474189103781463932502300128135483892712081238522882012024948486766947256379131310611824319267834538353981804035006299720656440893728027107611121840723899533512985897518379591776858237191443731211072800769937613437246490764896093384450454115469294833800399999237773718120776796189569508598411188569482460130748795655504446565421460706729704674139690144701243499560133113570094964978458672022078192403861861367764519487780997706957333510657324885824693692462067801252218051439022482741088295085100432237371383631906105935543053006230078116479670381885439735145879876687335302430528162145660247134703536077210373280494961086799279533230962909328367864962532550413837924224156082879265429774726109802224740349526543095962444065045277641786648292591198333749244861636715379208468678501886711198351032570590447214065243925034870083331390435166672197599093581689023152105722399509368378736895797103323996125186023950724403983794036436049668260565637078477747150894409475202268821639477252977057408345976102985048096712019725575310907618806410220902204186734275375137928569691792912320093421968572375131100379561703703156353111448951072109156326707022757078113009216436351084654366642459370671503147783881357794468703631798949263032321457236682553926096980817210543699412081347639349947028759804173015323568232276160963749729137549082438262489106292677549563317226469396645555175442197143475108854884448903521075285999347968743221666466829936565055099785569982049786468362918524023902568556760739376212414267679060226082768831779490742168935832965573749623800749814030824417603260545507888862844257330781452878932482261047332757581559605892785933250464198473121277248737005508934070499237649877502376177637530938987910685663423760378042896989778479547004356623760664843432410257212012458121407563958392643669490692948761801668963893157524463533728604785941747137443295742195477237716201476199934264838148696429291921179798782218692506476028048140257136015236106366004606501315341164865399910556266737388510154270757397389344971644382134140677753582211245642807235558973930705054286301875156880335222526696292611341439055743786208560130859120255409315889157788645768753666782232264752668446300977742118787010247612988732463560235457335137161833121904241507621277910524340423746936461621494511312475809952336930676748987349571819300296529123191765663497444526567586139152461548014463108660317065689694941006818354674530662379847807391502293028595949006233127908648898028320279873884407829510485264076819937825203653436498436953460151145937468733177716569264510636840334180054461133790617178131716850378374710924303365072996078764891738110113543870388678285152542615527638993371319286015621885046608362261599631659350823901416186923249309273338364446737989597299613644571814750295969667617346207662020212697716203279931775396162475596756437158576470657187803150609385938744592240305024804210380329812787147471402914395827856988879058863500751942471063849438225220117468533637885081466309131764876522486749537146382923946122600262400085038853481674068670941967207315829704052110616484588685406237720790296517579228787655196719591571691242000023892657177749799946016130440543833198906680659544156769813968251661462120186141656233215611447604750963072696751485807368412273658644042211887035516243194312777542047268457250711335755186454118313040985600682825491910556967808113101772731023663755710317098919230407681883240515087128828620644784452631066017626348221193268637082346442144807541464584900763461706450765245909146604104180536606252328842443368039449858801572207430225560906709744739520788918762895351442023098471424592394260559094239531841698841291530967912821344298483642427656700896588870005425373637980645325304063840940493920394182147780320827111116256558698006311199122104916137753309278188810920933153645358034475402310292295389604979505418856306637657986415376873833374250890454229927669206894277515031110166588581258178868296057550661787346294310137024843458204270449273802334358050545890711138273190580714249154108797778982810139287369783608119089867756947950978705684944865864841516111806904875333738124701195247958148748225859232045516635269965770554487062085390852416932929507652001807016645621862566769719485795876577242804991147824706744213800558382563052177950330915447727883621877182499295239330874647325697775493733762285228216771404073841490874140479091922599740147422571658073010020123482457461214461626534846948061309655391523969122876260855661892767297449745758046662748214394570290045919585389956220142681038168262764713342347979984242456363180466847172407104192626861598817853448265506226636998684834615491845672122844418007966459810350435092214599040841648283164200354864185545549534698427844265300796105760214277637589373790231300020697628156910678615085119259262332095910501579430049651577503836046547507765708813888945696080794349109985456347626420090798767102122011567191963515624694461282494706852572678039692151508737977357033291468372231557608581278013717146283110344409269027155956338142871183118568485487292898532347624732054910769207937217160304067441756148214135928650366407903657832546368781374249286926617083766011748526763188006708460178555156231194760178989569406423378994528737204221110076027779106006468331052484696703306083094794340174289438808478819427827296620738166100990747639571353083745819635346336410273131267675040522595129863414531945071849443406765278254505059254761946880131717344160621127142528712391415596321737800022737989760090241800533617307409672461347457572662716177817657625962006852600976147855547312175662872558728815430226770511828395572838700682136258836987070909467750531690903539413102919910957632685844835298230650841833838591860444838458382347421605998847034078561307146370123284873658451869715956670318320758135591447633504090667798530506329989123886246756722592345406038936859248862547119469603253857751447371168412134171131557843619853581707648861389492648333604590959029794680819768023967237786782795774132213189092388002880569738205729940269268406317505651635466038933059086836568328994158605218112517516109866699588904864395216468210831717387236136513042673310131214386024858461123428695026039261790402888734947280159651365291460401699472967795700666892321568619779626922701271348938170327288166039632802020155058875807626542145108399691617112999580242906211822761621793514714763798088719892169222401763234710099898679669976809059225559921030010887844731421336259815818921023001895279311544270262854656858169248866807062480516892267842659583470150957105267847163847112071328334420140767551268543254562694437980994071726942797023579739183971071579651246516328776649658955053200176290952684451025081887493713821450556714160263771960619990372428573144560687965151112001049382239544000069865371592793907845069023523530517044104473864558165077429883834649169517994350276783526505898253260121911346374952305055545461798810901135863268508014668115294075076289876193954755112033562979587105182792187563084387643941899619127407715562871209063457547408321171842498685706713158913754597614799039807488069485276642001772252156147886692530168733943121446762376055725989096969263686720496633349911410419006932391973023797121013264206106800049147549918631833169690201981996911675667430624941900020129319911178635488551055146159261293294302176625580785200915831061381812039602150139759751335531779851054024230353229204347891968944159551085011344364708588784689094940159750895222702651429988897392407382462094275430683672461100451190437636164617775133479590635844998652379740418021479438402087586342679554605408555598338647395930197153513154019568401366105798718534885101503469210447167637509462841461612968990044751514375221406652814001900905480532069591742308689180270371819862179129203534302311349476568445762775695059499621865713469214790967437942882854931512859870250247090794083268762923119197122257957936434861648931342262084300195899532929183086111347655085194674628820849157769903668177786254617400485390176067434351020755217967016546663360003448640625247933744499055382493737592664288081355895801430679053703979307105341921511755723738009306346167601893955121694967877718442158828918313825085482160841696902795597428710319958275259429110399949682463505491318844887799738723692849299848970854343013096869239413342226124200744055354041064916240472194515589095530035241633367315525086545544007111635709035866429928672137637448501182195781423325283406270914874093202771823266885236853944332831152420512948626149735129563846961214275479332047921434490875472693010668601806698742192279727086388445205495055930140377350158787631162602207790715753598503382146262532753523695170520380629934550713088440700327370408570463829990209143123256093033891938220210341255678094603907397480213345370495053963323713543291323657294244750146478750005324556922642166542556294169170612068750024231996152871288206267573359452885085700988117937564321756692881499969058979663420852028698987136033049836803145121424294092806419813806486701324567986496776327319690339019151607306046614357088048081983908069899504165690309213022210511418308358774334464395797919071223063899676109556996565367365497893183041752717416063609346895675083497573744585192453497087644153493240614173682937377075839255594828980397666969797405988904463856744874640346215066554454891286860358723757489085631076556685361397269544392291754962518186612852679524053382468954106924695970148190506835081976397999459046161970020614213310040749794699305402505676198439534519498957898449799267977710664125074860659504473499287968035447955431407467814264283989882437222776916662444860398687676819531809490067301898827796453044998179028125865045938607352667156974886709396901494264090366072779168849878578618145644671279447463358246103964889343811939984630976891401708286121502606695058155735976046975688738909668164079653140755442010884785641558066921236312867168246615289335231833067699985691516187705649262345742511410070122840511186002347912164315313335610672880480724416722163695938599666845894966407070396766269119086760250746397095134710337359367933068033772482995476510246172976272176544792091639380415032220857165720299408661590532035358333150632652593459619772986512456861934199458804765732930692848425518937983763240814107277451393854658446822146127538355101240626181935517732454218144755889941550744205088223654569045533428684759189787500976333337880233002487496375125123766090878892202451291828331953339038026915135480509692535631964978770361985523683653806470566063841877076539897253544281248944338416214877756582936365590385718660282779455113307043692731213179107475310821161966225598629937857695236219435632255805678671467127750472316979295786343110356079844892123721741229854276302919994483696079153376362799420621510069429026942380016296238290352458401303008247258978501420466711662792103928753551401554601273439609919312197542683849309536970841832774983748017492332296983968041328827291092842076305993390195337219939149433641271871110120663485479393337691729907028140116454002931265035117008710625636381881175302806327138019172645284472680121411144867779686840479916175297348553040717685370427319936456290056450432101738871512515261881996532585896979857918169786874063717975555153038820637605293799160968513029432214388059688958875962713126069291729535493389276763934347953982055008557986803589883218913311616127083871462810709120922263425047856134381562642555648975218722518221660716081347901899320103454287443425123268958148071191437955690942555972777681599618762558028022377865032801050012898043956768995682196476581683873788173749539107326963622780177445253537580490133829281460577222848101860910033316335472520352547468654645658090623171324350614350215680255155117535777113175510632101136741263027594305723275338558771346573885534075647965499354122366014392956353918715265290613959550080376912314285712231303698654753890482624042623947177447302778057106479884046441258903733911817537274152567212337137501902083746563089336157391014865956154538195593537143872983460065671125044694957762150448795701378481995455850626941986766337464313402957533506200498174808645086427622476737367416334724689187820692940514251002736118677696489448732894220320693314282941589434208587019052122453972166324367798556358263575721118335067494273039764590948420642475072822250663540009194947001259867040375332696796605100900036012826954487757327098518609712323515201650426269969720681553786147777842884510407379337592961576253937226777818555499148435683218602434002884649288203056615946807050561840314233153469120625316111277361393816132578491564095607835561700092705963812068478049722389459468639236517813760665547875721767631664225907284341805693275352116282704295024459640209537162484002272702214760625646599315553954282452784150212776436378923329747093261786708986620267150482367167494562233132894821636674910737476832165578758240303971473546293887093641527341482879927371991389199454516251499677679307506645554500961587736794461402153818373823819078751421868018323615453835217225090242429331163535180473995717227251504537654018536573972444177903153517373885638295683937355145451712550838492222880173918423069140495488328550738856257109506410450009932797871657282992943594630740634913690866685885180449913987041532802998657146664719600908713867158348213928594066936927808185900745566959818215918511392110701785231837718640232193323544615783217491172046060389611965437905336176294498105243105301944645278986616056977491811352446911549438009705393043124350505206451395105176606910233769820350096136647265825427550927819845944667332058541193848931622607101667391606560670064958121481192359199269815983999485308446656992802728710319618657197941607396587759631662623499218913173903652338391467730079000991209600066299039276059067067157388348354973886804509415222948776511346734123813364306938132900651795369882163409930623446746802071518596703154057010465039720927189938619924339131277781753755463367229121664678796474540925472818531453619177957694059141698989833988259267962622128033203001084383108135921183406209620931039568888702294313653284246340543590389269488820295524059793747197226142180073092654050939303122944569787895294460976979800112407864843522142599686283264286527313897250474724692221648076639371661487424907366598753550224251327575218608435094969225347763806653185055899308895727351128519174592007697537316988623836788606066366135888529118080464132992509145859338290112010067571771032946532465295306518624472549752947500757376817578330887042017302062147875566223057146850051882098302090647369675480065171269579309618773409476024031549675622562534411762600312716971838301558812253439790821003790873714870761987330310393503873861232620696895538560599850238524747919089669112078038023047800385076074041952150053855260051089597295709804110125511148243352311031611591003016677881706042373477548798908300977766836530768116970859640480578244837591678499087062037075132957441100268107105812015813336622367587613424235726038610943616953601462715239711424286281652247517654936559421563092610775990651427920575518665974135213813889031723770321188685009631013491394476744876095854464437649988018466140528227713160604468357269115729882604486892863309235961872445324595033723909340364850047382925385999261661695622018112951144783273109266426099201013318523901329639665208908938030371124424657511487018909792506633846298764415663365155035385958333963839281847284790303842447371677061089274902472503997141979047843952970370527878168882079083778064361398350138054832140149516323759999724838643127341456307940226215197571446758493638269063085706226073228893743016933849158729451059481271645957641025941824769965803030195790564667262344720627218611731211367824540875258220041813086107343125570668183015010201509120954266814870699090502622773795880216998486556556516879157436915946635584149894455133049882583087641200614603048662077956104412177307379739144001218904515066284014742725739230361252614110848240725007571595621747918330415349312922779839491666367200252786728010288271110377004835960149811622740577699736437920416531413685850917786650303005147800952210706797575231261671286967052284354934781304421688806503209437973376744985427596477127548491188425100598041800447160914754973725336486390470525241333719206589122761301448491026250531451110022309449584434636262215361583596826871720273637253585022271530122809982909373008457069387430453734722923950260016812741485530903376569954081192774948197640631068725621129238405800719574548745518180392216166757739787242016678487416748365031814792517728485334076751687291373852114896635278786361420259487762074463127754523169312337376052350806119885347663694838676282527608319208733599969453210949101862793623507967853898120215225312591964315001797187999021544086245431963574653461161064228627251804901259724060276483905878504684184310282698726374665243003472981422441610583120687101411859147280535696755067126846998173098827870340015521234818517435734626314458450012245626487220704177808353109100335897546269340867548373793704847337181818842828683420800170665308026207082275133485565583549180982512311549153491958507862870969110452616522862067917603890986908944205857044350042713102191881786106692407832837118429749827096617286526200594215158022915714476104756487537958563376667148686296671219073768525952628332290810487609616983745241503336656738786447318007381916066390066730518153894704432624230870976550501327717187631894317304392047008240912721484673004734274478189903004277325783184568085423341242542970613291600057866308733857112419481700960076853493367643454695643724821938613952388043489859413796278371132538866670019904846225843780904257033600712602196729313682782108812173254425634317258617895106997214530082545087702574253874463195648646901400280437963340797116671546236487405458255689659470048192826465106651586045011958963772055701212888036731242348234511827398529718521295329653487839012752604586348567009065403287189364625084628584285291832250979916479988351209738257341567664655393291136256129055789846512077507836059675398293872856418725586260975932462292689865507379837554541134481611879855306034927683047151690861958933564267660428732548718704809693059476233285158403285055545505810867581819434375703209853304895971620812755282852183169499989486649730905424709027333283272120895768768311792694438867185307487954731662732001455331049680428114598755939139385818922990033944304270773697626118910200303697138566633903776397198219259519333299853253621260989701636688621950836161524641649629792351124319303910173637702664543889091533563865982245016272637025935188445731320554156773047750253762516090222278783351756521556923184893915142911356432185230923241631922547849974627836369452786949042396071078531315952898076760775904612710663895381670488055132623194366323703242309448353866029438874517898213454309234511223267055516395217563004927489502939634295835457213513015753714007971491984539250612014599971472269309408951887949241600608755971912962757946731756816977752249441647813617390466048746411636680844536808637784389153704968536611075765529397735651931428282943041627170110893459552705623827232394102213203648504884447829652891312634054329280678113805861050281455951483301479290570167362391546032170511759688746852589828983696814966032001875451619692491850541938641942029575647606955031085189953147440397962622317911119638533957791731527790931723935909762157827000253932035218501191077383076776892196309920781991108937244812592812452445523613733627341833092274429763216578951323068142451779121007429086882915211126361449452662305313991292714927563618553710950581881010392785431892758120126274363575504782235425790502525143689036587965299731201362624148407410169865484368599626888392243985901988427963812884472202537926426614467163545723260591755447090752109925279852179239414959768734054946474459677690541037904888284689326772740409554767558946864232165842116167023509255049635159475050262979782042067572445061908504531839718912119866110616807758112396277168380277988059730406327557184891739766555350324375008764572962035011667203335873373159517803017618885505949427865170132922234095984435039971667275399581715214702256759757923641271220402924405730406482274539767980920223664137278916143697574272275397764177905797411871539956284823699017807487238315568564293686946957748587200141608554074432037722496345075080250016523967270953203938446054070172834131969954384778513128626744927340536532970448300612485050452297241995292337177139478983039358082272791035742565413312715641449767947140625971422854125799834801505310482970122418821390274664825356394682604945828957085452934479119678848343925721539175378715737694589413716298442359997769342011569401882401346582571258193304551502780031266825173308128468914075243347463055663994816663565062597922679084641931413189445942101994151059514717869177111716036225631847808270066984705876489101675860540478474172543131789799967543698635583900255568746625621376735509157557683140015677239477050601526282040464465933757705410571623351566602159742028709240307470806962633948813116096921051808889575848132024445055658853933721679264188481835431906881185567725751279018192745846525644190973558676677597761355007671091189434302979629405531141909018226260601898861702366570761673495112282372269349575133209366616228547884000945903526846883454176931610110215715068652331686094797868970002573170945279437147516303290390558966960598432246908638968097153949636795548862562336122032757151015785249126372605328632817622834402926849477748381244435207480920113807855530369483837358106199211602488931068917390135946665587757995799895686426439024680249915704273162731473026029598512513084501828191349741453302164325734185377197321206442772099531104523050870502723377545855818029471886963924197524289875366168006294981373792445964842388994805434922050439683270655993783163617109415458326743719208677994365076017563396060442473231030467074676432772478423760093107243941419052230578320697706027741146387293517565307477148850535759498227579336877624449235399965804726484428006768212236775761252625274716526193025349926492518870408879432141544078961600962759890678621835090498394455552727707774536620239279019565110492163840304067090028929885307446663947087484193195098987527361927322020879298517116005767493696428621709638499200901487137596139001172046995816907045868517221132349654253834435130626488200423658624049423866480442190921063439391806748135784728048130247681521701376290868240145968083751814984112841828642757243142427618017528702995759035769174327188999752523822308301888805338047946911274567807648826616240055750452670136817581464035750866342497655778359118354767343420164313079646482403239716540893800331749604352593926997552631921055139000435795098788433797899095508518662242841629572942621631281043900234419581438722985158277482882806257105258131420945872610898179704515040963006101698959949857737189793789190800970765750746419238107485405585673659235209851875685334984432090356379800886974432066454908107243871861940537980287933323143968255341435599298316010353667064889423667126145987688723090797285137594217921420299161570650379982742263966118138054212387414313687804290801625521942280922363622412832913085638733951044280653894188470778332216601706135290579097834912746077638809422952909909792283468175838719662957157158028257694401995766632828644450362198957398588065639911886221258577362101050956429321509131366113850170286372924967017931177899285292321958140636348142359049067596828923838901545459785799696356949831225015270715794364323059653537759260888860449975317613678932608634712508553540071743001904164037409760625970077252563653170673423300472069076892058323630708040471428625622212418351625795599647899652225446798633795275835799578544766211991754134661244724772626103834023209612188303885353516237510013433304622453841476728451113115459899252508882929602448659070526405431681579762722076842849802553106265322308571889473758749994214931473603561749697062936836357741998259615880859556759432168943032868820308384340925979285089483779652692531966968555474982921209265425778965561317954353656786702354822718265406192628093662242478960132059609329582481858072320126249455315348207546621429751774398333874419249993556708674842281014492943867767122793660144362573023217604470193472748863309657959371141589608946220106436492297135349497367252974995639388508311856796532367555054628556416348524104757084740345807763305040992303788586061095586353794208397638917765461571120865145675405268050836383540753740364921462098804987526970056430576969115315205694456053159702759455366908428098443048464334500555181882625434379684420963324379988166329872300278621717050597486392035913254281153225031080839469662264589918123556159268341288155382830832644000616632567696501049233317572072043717964733394508521863620838043415202676915365218404777750664005526794385822444285752437503904557236664256491929495649499899255978645161811903953527466346371978832459530721126479115850598686560815868831044791613299358117774865342236331810971201236058835212846069603784782912036631424045230937897176654845148712865379902996676493068553068949236763753052610350666511928723746322708103475501577229311294569201481392749399446269201430897717866006270209154881802045024806682292820841866345435630243623382501893887963598032606620992321572761149836295109469032031364422698802795325945982986199336778948729908541035623912531564132027990891745859322714977123647959649738803389321593990703077862727790581910842902391361678455737407565757732932261308566401974725581056820024241481338978176548197202985097412560704592309063972603891390142409579029269176463724113243368618565568495302058431842277504475222879728269564407581708569906439727699525471812660741698589233105874736373465721706975834757168656030768114687868465048424231196800876688156833789284127550660351339097803596865793206962039164207107998248924504825511724631051872661495298748221783855318424611878927556320253421717349281642830622487110245588769493412587870843181893928586352202644803590684993183575333969280545936295353853261519152548577632125754390675991153068323171944157632161139638844250183401695001774091205179054470598839998509687186307924829267216190090950919637268050442479290910920015107070807603747984814906998000511218398169433132623114713614675807636543496810172594975337704384058713062753761020427951632060576347653828105307349145219526573207972355175706541555086038696916713049567147892947556159029611382787644368148332188704716677716085859295100943262043414082863472057976597682908212554953240597892590259018208139485881215264953103238139950863802391412049534954278091996973364503645859703198616425614212659009474969940269031783245777032933981377272398201470804381194398786814641871702940930369488917795477831029199484477504453254034671365567586424961712268593096464690157905557054136452211621277736752442008803216862183256373147822077377157489075284619247552245542279985723730359720745501725289506505088451587469434984067595446196605440698344388777173922577197868312372206635512230523870680376207544765439080203265653612759379124500154053184410076347513551564925031437755197204838690055101693107341026646366850610715235495815540652327953538500571004644235780856188873227088036246701134713898406294617425238953523747228507458188559291724610963347060821666475330269441902909244041033100858481408452543843868272376796781529770515770154441268506276954017085146724739184200161788374885694108870253261692709888616094664075853988305575846724595105661169655943784331815497846466023239204799177501793232026772475709629109117977046370572249587068021041953640455182140365313129922027122597532141356493934347230533255504268573718358641175909963298749276134405341116334925811231015033646087611833476968459673784297662261933127464051907865133663429656840162809315405191615072415380065081261202752261432040291739836344471691866183337632761834828452899958045764007870047130613468748643558025435213317030192448212087432344897418740543653807629927670905384135000064420700573476133233762175786792234315473710334757123341920699922454901272205781494829921991983129529657988556795178070270368781643618306161731258056174210089143414345951125250166884205203128579904509622258264953373904227174175526498713540046473863295013520072722503958062600087317918270378640800206103474473114806733771636726857467805252664054728105369931617363154689946352824745271275437164489957851496679144671899442159507593278427195010587777612837787537965707517029177945606899678422129609451163171965436025082925147008043160577664207910419701325136930256304070501392343214456069653788319726876906240562017713789058980962550251975932233914382397196183448473660154377678107337156774018965322348785553464208913590002999522767545100457877669028138428370647392802957735401414227169907061891081287050501742165982972689869967195801951035352840048306293180900590686899334619723554283692682641700390233695667923351610879144315444477847303096321593580595936571928602332741484633992042545193295065208583621084483688833443772278708656929038576844738072440677548414106119977662135943287254909851262973871637840334653478979964080278666729413557023361168055564682458031083438130577693509056414660563771015839986656006911562039185462664257146811411012279582491947214730444026167379696544784888610093037540157995854519088477349358662416532331827388287135969895761912666800083811649452959949416517874564572854028964269253105756544990357642045941377393713299943333479144448943181811282511515949286101546440858940178330581176004725889424510315322265323431131613101144506537070397839282396558968073523286094024817735074629416323686905614017409173680153105738097787258750501419787802212785695364199075025277146836058337996423833830342969684368073806506248632916051248206743540921581206179370075109030605969052110331949886983403406577063079280314508497086436887444251658587618079919627261949693118284132894792793655482576545857785299589059228693131489034629408028086981814773096235249602653566364063244611020753287248514860497903228680792868196911772258208998210189159445254956023259179978800918924868494889582917825722613704507083923311360551244826087368818527910241478434668041750596388130931966014958324229304353981705799985596082815348278603092262842731390009381825642412822048232516645755684776331582864069993244808484042520253312608115105430811769173426441883054965576029001177195447082270675072520132043250060514223440508106468472686902019160683937098909556493662363574481559853652553508158524851108657702797153418869775537012123098879158964306192160623424747056934959845276895112184527991607390796671208998500728170960030760849406636526376358275262265242336287940693220865783319535160393921615684907094673904868475504897069627028838306607093931491971687640453337177838547831080177345010155489206080834528627645479081006554575173257700673338875874984549097614930701768101989577965420439291795765842663851709405058002022191678253529804985935531341644853920846198079577060614758822308600784494302259066128504396627487566015446672679381141680342091748349993650928857971139274474658593492858951736434547565012487337776062857920663028885386534367135741026828985298176604368704518192205988877306214885311192644564894382270910632010542751026472852280508509562864928194296943228457508368225502994714234838251006857683516166356737151644460570266935386903639202028183639697713416955656919840143951225284066407192767359243257553785304711351161338163087413268646177658883009233059368119436291918683462862786082029830883413605463810196475084386270258600960517808918566164503220246117114266956848604211771093128830651077662356227648825925347221286394161496128883666269893526745485891031743522998525505867541080570773848201401364814391145354311388772503743889270710925550992021909269534822859830922488577880970806850242427311403651509287385375051175318150291666827756584121636744386291221388970745304716989663091611834973860835475847445401801063157544821915462947791231422629944699182273829014893917160422316786795923305217796198914957288967537129450981661371172567396283937659695684850088195452181809203978937406992090910456774855886173066717416616707852429915593101408189831502273959291292741152293101094254472878797917191306636947057572029216086877596737491086792449752783492070730413253352031286251429868166140292617952156374990143139046761880042738053681181105419413199278372646441810939049690542951889726980535717810815784839124312294883946428219291769253166598817396790443264283360386602262143883452596823341777706476602817205651900692927095876523284475206862963022315025513165594942562149345647979582033450009493640965909473261229433878878828283389870727144276119497384276005433411493108625237287916343043687028177587350974702494138533892605412261006004574723237180570740382519729430888360784403551635764926998941939765844294640813389882471276469436020459914995334313551688324268860915817307940371627795628045932924515346040077249028681485089271733268872889614616574623122150223640437626687048706268681896829184227080658453333950818998680508020739705640074479461351129189081165045609717155001237359277176382896356328133644867592419237865045680323236501988747099012709304873915239990199963772674954985373675208198217104471749134633161438958878699400957122046509925069964842711762767570775335328934831316588755931788766209832625118340908874367435211832825098519443443321757500122215498098859704159581667417520751300110095076491449616358111186317338438935684729781327248357098722676470939402471613437263062945102749843793941003456273580875485660655925319520865483841938477944019511043996072621906109947631132093198597105468558269263936040340669519229866621548465768463508564525547434196251198774611971728270735578088613833600072269342160243701600471855216323540575892816197257204499011743007165645927546372092542453528939745210703567194404759904366159124756737083803244719600046761774159822531911245717688692368546951944197289414986654413650504190294613432483871447989354314834853324778916394548237163604087573916483385924479202029480999746148787115618156186499337326291905883505176991500249272914644745324774291880041075993294759134776144673862967075564884369373751475833219515313879368704732118255848170031663950986866340651486961878981158444543139864839977674762660876621075398375758756514991258336908016656483069934696185311145735646301950256250619338869074558012742937063689750784560568013824008392098467332410867924726008518348657594237589565368731342193028893643077835792328191325544957837292690373942174094237781286070890059197482700100623302431148227233143991262372344775928032955778092391518755080457949853048516426766927703301357052937242104857423016886117352058252077297672425736425147872187903101830608941424167771459677467788871942836988405173329296033811609803087776626144576405008380551441850528180804252802313241307451636699417408924114445770901646800560401151044465900577677732423579510736931387987935702486738085046110714842541345815063636445049750721116461505086593957601115080163374021171680349735495517015132469962179248382256795347059562719715023058886011681216911978159031633939718429587719310408223227390783665507466238169210132565294363639290036669586417421787206633907937931507556197940018749412803606399450115725510512496337618978608654665148799751991534396184055810377891661646836999328047442034061751918082766355398293947251668843935843029665294114419234301185488963375241771283634658188207756643070505782901275630559379154819117277755046263737882820745227239957732347074358136419493026749645329654352897611353203605280254896752298487148374604975593529008784004842566494854352801264164042443927184833219754934160587081336629437820242127511038186995028791635427542754505619427117629508662214968134584156098800573523489600107010479994504485442804143114135936974974424873427707112523047530238725168555898668489642057700834606223088678535384349554225308779491709676520168593458880311299138319287939045805240038170399213045073777782262796790607737659064672940718945114893864638403410877172144948450840237690441882979787092486331426549219363452749618417666299441096017954399563535387143773617827529324754611075603317795067849602534000471689149471241857542402765276224482397345570655310551737354076525865590047003644790873619127879355905919620095564642914936613658249730703812368823124518189455379253324615842734047599307352880815157528113386780549480215404486991754665003672737775796346795394560937437805078745325959638177624727471252769644277772736553325798545771957911438116480145488058813490585287431352901916554450242681630268912157447548203659683842016033934149994659570935803297499002306811800275222216807136976886127708989917430752332055753342064735633624378444688884469894000484947319856691059848394274674712117848824583699683412949317788000784677036395264606990831500400489956659299825286876969020171129015780600682211999585598505718729297268326548637696256016688451480216049794568327043654312168206337032912468201006361793019840573377578715635735471541852836894222989860334908445600895079768281480376419800655215295702689507646684325205371892412993251102976534067597125204556845161382579133639398111642197882399527784797061000911085205083223286964434240341333541172770003431137570994039272527744912922366479136236749667910784185378615253176809584550242221639277138664981662610075190312585413137093492659811818327469618260573382622987878959792439490226384612985174851746716969809932560031339856241315087683674567724828951946571702310079446802675167953148705876117225169759027533328733514001613445952837849592935808160660832176671865649509892383209266240457024201765726706934354380905950752283360932603207643171271776842170416400771091865173200387062379321072149258335942263301017245277384699525458953280511612446974613172035571466884836008242830302619922470526205799399114408448600602940902622191121042583337298268553553715035248352600043763699555800182786210046217311798058003694702981603717339070240155066325796094255536360277302317914656236846361824451589329551343708332016653835381430362327452733666978533917555609736979614997264952715107862422406094965455282787969470266509749458854490028297083930966517492437222762774694393696782444293436168435712172611971659904323667373227798016277475530530963339167589269060698435989042139473389138155062131974563577781728056079985482695893340697475557463160058607876456780750497052808115221182869504183258208914294115738846033094402828659540979490964759462761212495350205303242349724760947168417053074604938273155622726443285980298659153070395858130875193792812787603000030625538516035414796965735036049012665527131772251848412016621632809451174242568652504706379432713658876300657422773253891834016472269890956608985201680774285823049039135705593124293360788270685589592072622045474701870607665124074371643848395875952913789301718146201696536023519810189119390205836005659251613504623545474595189789355381443794266611168627235104140778923203629390417389002623148115907237500430581219219582896708209032882936994025947996285856787680979262852364858658276862540209206222518744130005823410664695515238489264677777250601678137699223062098466234960030207011881803110420377990497490511222411692913066093792831671732865107266468874574853047205388674185911568455903389793414953810238720986832322761640082587868982864853536778945019128376063951138523877554449951973701307603817669056711256242339700841611992769675356571206449410494666766032999434182203857808858314980584884837345676961641436278777736214607332999585740993620497170792252086275234818908260319126205421729357981362252089010932653105278213001138454752664657913233861783093217153529885251053386773942241672388740629245350698365669884942280054117031577636563139118612831936458152319083630053064825118202847663895894167173479852473394689445834313730547995980128557925860344786169224913401523379162758793271887810212552714152079344124441639311442608970385693527040484548580634894782721381643348497841700774263632905034198533382067248315731104305809229183421738562304978098528019042961213397143383771580443345340546767097701140528687731066690655321030811926078947610726386442975088179372970864526508237972170679596523810807350010844632859826775328609790535537621085270152839462233213266829582790217233526563796118444027085254386100462019398000954456165690128839875087926736822268974443466349227835527201983110907442798423355138691412501922912757936878113727686838199281583758452139950332091775684513761046991105191234533711270722108202902122742865229690727800010941132454628915437497470260371466589825388179722562210347374510178150689407480737068092720281298104173123861835531441724742871782109511808092556790873348535614834886076875030710708132986558931429026614227299379182470135929062074636158987824733981094687584881355960759531015303402971639118244731816870071512953250323235169543634311429670876291233666173137490931173031029748872248955278918911129533745610507721527144946847050913288749709572634449844528324325744528509556829364258611543986560923873729311348864635890288845837115588429663440813493412396889500159901867202293633974104782643758659745565784158445955334609975830714271850365109795339799696170252780965901422492025905864581616985981472614864067557144503764463951108360846253919623074351897183393230214939330203610056135953283606638121165285546651274770198569222045251770234990028595515461384688214381315804916766228774803372193632863353844511133011402839159512798124508059173575625818824785965877228024041499961553436814400997720532936186173338672253793793565518812530148581349575844224670132014367482230475422917449807820131568306530687220411256247929943199929682650372324540164966951270163032397424766110137533229446453866006749125847961624056990636023723308220704591663178777831533816246068149698765072959643897288802518422382268865061025315033924186028367593470087189621134527046649585245683781490463676139833498356980549827077123481104087337272870925818616339778888287021848136239811783426393171000713807721444336504846486704905976267049284627278753491071462960696300329782519495735932179375335075117096348297861354672600143741262072706635412558925286201676702019389043684840733361981059730931879874133617791027126331304398485362885147826029731474504933872318697102994696570717177570958189059870069539197169976633728647542520536480409125012785068922787039083731782694205484090883161875884157335505926574073062379566044460293853356013411817055001616052181467802403754836641242413029238474154494770263928052393795728566982432919935228033372742214161860013204198720634071345577093170171402912794858256481048748155273323515784260196735849723639166598959538064084768252134598414064960914711229695420734183024530937029400623583135209627930384487180030193552966586449142271629438542561927113762407421659711765510776969680067218950125007273735702409377474105900013623440823394544572219730230332604049021460825372504577500644814319212368440988238796446501092424356592446534368237882543642995330999133887223147826080344633176165189467199503396904949303720437945891610661090690184125407540245825996052152221230743293948072554054769984207420595815200017263779146144674317466058579580317795710325782223960676424482524293874816395617004071724162414844122503242803614021293700951435958208533814175687816287283426021842706187505174855584312655368452723331192709194753184450987832004448557738757122541996095778988423289062937640905094703271079911349255548313313823394721839731965891445377618000430813096979066645790327198999042124433020036691171103922812726039472775888548765886278460632346283461959803680278996732806031669016111192461488377950231945011923634853099248076771895080582784058433843868675343432031180469864707192478235860114427546682569940759906830417439881646304551545521411194136889778932562928173635776986309997974878025328135408086675205205002589392925749399297865486017517766795998462391311107645256008784453052899139360481146771472250605001391204131289394062109335496096126256660899838235456499038638341976643723606439075624528491226314088451712365363925378127349081489334406642279561109921765774823856306961288135356249315993475760390097126030665399221820168644774884506110187716649822948712280779139841869641205298482264593660583568755619830359208535984250218665430001995931951804303728859716260361550053259339869142927999625651707812137161048062265054917583653445668475679486612128619468734078544491959907569781553590363871635075161151818886942202248626889397914029111990684915149012691630321724745844903495910911271344377550034528019359950941169293731497490952754799684789906925299449189274550929998477367959589533552479925928917755592298156100565702705297099875324644469070136607987407216193635109546543656327015856577287551161025680056788599185733452217424537196101880630648222578899632095805515794768832764922801765974554005685062846112614894971478824225883489773385647137524772564997486835702140705418171649905394143726206410581133050115105645159432052604762975281202813378884837133304780078606726017445234727431872251358118891593338861334187265590625547427676910797920349175625798342195863564533236370297860439264484960216670004741861657690617165662683351451935112288947019836492661096142345857185980781765314670770395629115923421500777218675653682144165668000150128949717272641866273849640666778573544372637813541826880857434392756283457238582775354440193622807526871595443720266700720092382134722971426898924595678687915239701908041630423973540318100733604795690763815203558699500673933412972048329840206075926083387638925220163148278875378076305178971504510835752539177974614122920180542535100354371169520043246354308561181127564770723727151886227184292414170647719092818997629437867108525680352362643443115168944655518077113349504959271787672148799506217552503908925004871095865715446202552853745256633833429991446176321606971507270654996895040657290451158319037002492082696751580526642574578288437746915581749892567814272091844618310878042932288960487796881343274262066360698594533313091125443960177814883633186528827030585972090872260633952604496290258856165143379432728998338058184979685200637670953743586482291698667297251918004478737486606876742461197298199647421269830417091338557286106160813939813865664807753471191707888182163450027417282520730810699517734180182823651804978969039991674082100393758948446233237136293702912952227022966680914627357627829125358160357025017589215988770782228044079782384032064663440519832646044022261775981448892854847001616029356423021276056342726427698301336989381508204838100753422363406195023284104588399375728954204924437855265724554591164969490983436112749211776136342739788877110732007938005729463637515493105288599282092675511985646285506025985804013381843032506125775488076567969308592896046769237885783449145176935124839505439118697031945563156679152102646667437130325971296963879089354920763486428916145741129038973465442791433235949523746640447884429708842275760613097652706485938808692810487559958723993642146926795087135891787550859214538221800419222801970626611643106928109250172353550513185249669261172098006342697749167792758675882191002636906680606475751518007326537800491160121879444506416249902683722939952049993343995619619977240534430644634979378830891899613667111175639136073867957036997364185203867781389765461165864601029659936704843710366583060520632697691361856138174722129171144404263300585199916498701618832383710140108728619368238300283422793817828600572408322162281523703084877737785035868184403666937345733416285789375294734000694329903254973552590019593993063506507832320686935947996396702153813597830808592096886416096302783143826817766965643395905645914228611392068765220650250714306738609739046812435501526508039612573557451143387937199840653514862117863077316010729704779121518830616924755367439310797700961745707409884410164196175956942117698338226768884394902597191403172905837514402931332592202442760050644406846130374623954109485481556096680394331794180600549198243952511641084164672633797607432827078233341767125499768538281463271195439615327977853617445692019129762623266064749100854413615537514777003700184095180622084548399777477858866366885847156510340217965750546273951446252803847979666241206923229473199379764551428142372965288135544481458803056870107393922745290748884675071668778508900175704779667024632798575326216234814382258961424794551094716440821350575371414893349558929663655781838375517906331286089046401080163001552353097215824838479678695095141486795417000583331309268777292431110652462511954095911889518851962938185437532031533721673558645949867401164468512984051407372867853594700246007206611851588875551810291216917647308483642429085166295326018782513462826079077594214847558327688925107805803562093578223165834726246027608964173421254660143626240853513300827260395752877239963949300741733550680266453177063468399463546992961987522940746193922979334024210318171375440059352649682085407448356493037043078343301610150895730479783597895729150311336416990038016365055538543685728460169163964600106669414872455301318335621181102879721209444074116049511720940128000120075573085699541614708821621643750208607166110381762644717971247378148855577506772037408206421168982878325185753066807727370487385663495014680996676349186225953519969560929929587221139862358710606653655647596228441427763535506261537101961593337580256610161787941651848997321079105776893971765831025824657765676253832139306990002584040827494010304617558147257416921013752254294656401226941793495596971297616181722845449629968527125354016725997182637600596449262797109872362180354124174828845015735713940158193516023415390891374945230256176537130571000090238622256372089642455402513623646419734472671535780220581943218969843280457501089111270374796692577895841502710622749886366925282962557617888941125103730432950257512274962866989599973916212347098326723909608657545937558893592434106407477233097581347126586739249990637461770539664387936519533433506343421574530078762323376720080714066124677674551794022795793765272994352120575755157437906383811111547869817492918751452180572683838514506345546412557775822080474226687212876418664341933142289702470101388029896231324748977857195115243146126759982357255940750261795100723408397633459953028055224845817257197960215110513328841325817633453149170782833176061193785459794018025104388705311421809344324735647158697467009151342276719183647463222979770696820047718737092738060358335494087081863736436619526562405945443152338702456017069626866360905220463334579171977940527164255787733167524442549334486203629197970387030485649682021751014933721759563502077045248423535928301577533994102806421264627120060218961351871161804921493106112234031277364470550953192503124448851079705243308303713064376821616814894319649589961267705488559231620152027986972109879417372206368474687485073283171023850180827765133971579808215328714732814581105492640530352995866249531099100650915978014314891525478577598563555152964495874927574432281048304910216655243746494837156261101593515181705179818202918644754913265883964471463384576331817208625113500958194522980624705435298709150245064517716878249882311291117132748290971558483362603723934658922742749905843180340722016582375650835725310729763836147896124689772255886869745129844623236605683808496173057679653016440101779060809527823690566978512633710616607669352612678365127490762833504261296558725662175914090284634060199845627283401993303421885292302296759577927117457809098627858087763621413235981761771533329137903276317731239306573736178092882210841615748689237501218127305626601873347206239090112924755318988165500330954953965167633265064880430574569055452978742069666055199246603618154341215522598103613538209560476811032695845755027380200157204885999258842318920658789804524013512448333574466432301291644145507851685042488132462582756171721407676170329242598847023730803054711339472306656530333606797102573717764904679222356626296906264636302793160182318080600301937390920290616625966864935966059798891920081654240836329915621600589681680855270363906808460521670548716892329456856447383346404468339029262208893548276610260706540542568789678933860422558629383337684563520423709852007860708141900366619751132117317104184908199126887753966178810620139529438450039815202910791763877730774629633624154345415592989762730193166429844389921480778645928948355008992421324472440305897792628138928261393730084125615485648551353270309683692104675114689435570997928997256576934555924878435425227016742490183549131528461904436237912251260614628781627818361995796921147219671550622314241430910512727548416662634976390434436587769414265932105692222366819468134176503106426986218554136182996404065375027716348104618326626267773211823695320240612445107734402833015474907022194349959723173366768305806519828262157120548984651482062624616442767580534422988037233506968612988737790243432345079429026998187051731855109333940883896585304000183269889713117295585243873284302629617589900620289703180419949112173832732804832703022174169080298672956136619990202429935833863730026649301291221573467040437710813487417637769917363078111892984222973737414406242549451640938351659023875226840104149203397233498401789201895906310341781404754694872703992583115259327478954323701081370628940465498245131563943041289251155201841675288345639944163098204724909176695520193198504914834217618625395858867287137639013534206168698283070809513376277521051667537355752832794021649402507674427163638922202604878729079846289005379272592753231013021906635635172190359535958060462563126690207517552416901807944200523182113965610961551742537957909328549836397484540614968653354386241234863612066038525381626165889902399750967670423052124731319200549515501278321626838312443374439380841068990063746578713151694533517724524620994651533858018571833605067430430995159434346193376647143996949049654508032752080744569869553567523973887153461446893889745191953251530355692837426805889499584909163199758042795376954994853353370780666560839376062562958284621609766322306244950207592320783853820553884419814934683826904390772728107558449933302794384823891074985640595588819098527019498505094568618166058968821522461322822378240057762559331493730962154482216312098354298337711807123562893525824759188022703983695951141593085451470272452841111717931081489035172290445720941022726924063067584704759331426538801493900207966437913856099652542682083114910654355631330205459728037358749805240704947967503586389124909989503684078875625974613525025924974343741638190798150413026528016540825988898977782834136798690245237836716513281575088667527552086760441093321578087944697442651227261471703951869654123868133266093240421717903879381678581818527941993165856243172249198280142837036343939553961296106035040233937661964829226445056759364387680447533016048682298864800239007041805117811780919896386410310115295817608777779759397038079181610292952839616582422125033941112132437711682331683896409703814138371143211555613903543523805318256461783938490790155407897429254991079463213392307857546389305804911958280510840636490138069550051246175136111284924937844809805930647161783811303796580960941444409215393674714094743739834078428349978346718227792076059456208043030964646578347554150096726631934031506153988733259259831594698192352967266149465390374434903813058244071685631170208652042424729554051120683800921896100343726771177299368649741831542686968536743472409363248432687845541494078416766603027870139813367507914856423183496183296178515376067553206514954572991509461098604450781342838296485646592691452907086110404333981546195464610810619230271604002256866413974966027951078149650975662203691097690495503418483470037267527736506555115457206653757474137800561116728373104760135873396087143355938765186653666254584293917343836713331907263999448967268092386058382582219508553349176076304000849198419379225569587284814315409318150098010677535253735276716658573583384442205731115732303079826284523078398972093566807204197725178485215103403860540271681353971710341861212599644671849975372444489676897157012589763751298543091958648353165323299665794659058154028853269702031098677133039854257042469440653752619333737613149853190145100486748781054826130016426440951090674443559031655657200854949059016560915819084549279264669675576233224816724179107134600667125849172653325843754578038195908493400666999573959416219139720569800966566424810762483406379435426413170712204270529969507540082724131113433961013000960714823105519731075471673074071143626946598561679126393701218423785489149996164077716196217050339977981881597005777386007813847734533622871571159898498279664338891253441599714793543461337861650876220480361831285532776553718806528566602886014577844490772652204160720019610177951401488644964381453565426544239470628592089427563920572227650608671430738681448830898110876837704847810788932716896607795389059533225304297569249810689117022976308939468115130021089901604901642446482293717819918918089479634888426756037818810601419467321810663348042733614785836872615897864198093276648116609396557137823233143460124936506535291904796020434781894388948502021121690392436914093422217168370492661791035636135487718525363312678758952425039587258111747088346221017359852710546367432240085607718444430711866402255470578048720675118180367918143781749643515583094903040732556925009963315973272773077151306909409305647234562739147852083683524564038852208481496181489857110666069945275114253972021006817873580585012624050447649840421219568617129481996930705790733964921883506544634338309988952358840929389934407831672660466791676679508492832625892059006776834501462212406668257553563131725176322543894461286041398702984502234599978324443057286067365725049499387219664969688394021603208257196818874270149979482552973799418100988305419317356511809179021931929760202243078729900927930023126192123357764637638620414417839458761007883347001973915457140085962173852286097184485921735744330657033261860678026619792366700875679905092159051613592839500697255145754979975147406789640600425940416814811325076745719779811316458139521654251925496374356597143957919084410503142880316065870165856765206266581879810516094000696362883510169256147299808219378915204555672598212031911842770671292657214574395598790875143110339505327884214873742830345656790740283961492880254538572048717782801108247525551005852066938716097107921774330430916222916797397007890068591544546178460049888599378385135389844461308312300250198026549177152508639470710836856658313221037297051909080164850425356679783502217418326433929961506264142493624476318052454351401128543793165613244150495930170293147427733394629045095688696725039872656986448453062521381064577555720418063918214566705911368024606648545846768225906497624536097751616100877790280839501964674340511131218998917091952158615050011224356255157857052268130745746969305020635320026353166130615302332845809331434069485099150690924208889722976383321821837806908329207170477105537720814595195037958776823543197970951411930433239017699954374161266308591645069961630636163580606347106261767754827990507956926651361097163939322112262068660326462561288672604826052359225358994251479346507090695931953598388813951996556355325829914364203084480679234960593086088414935244692650683170120538136988472996465631799117129183097796534733470043113034747765164834597961318312624037412298705298658445576307670084826045926446311155603234001110592207799434065270840164674885845165835889295813807924481969443050643122051633024826264451305711775198404568971353980426566138315934774231029164563515161885617210688111314230787038655833405126295016148571659363138612952575294895400268424350763525820187606186736763605040117570053171932651225901262776888545541969053318440931158335014878433620525857701804910743344732685047000696366456948922257730909504214374900655350142478152252102533061452527152167415320555775039435571733548865506049194672275118666849193079530244254711948459226900820227271305820292486332354955047079897037510649898421657152757464353156908963952704979684950607042458148935331501908977463533247583397291725986076873610963297046475295478966574162523510840654292811359246993419661013008063582773919833433874731933343150419786087060313701274378603918069938546243385755873211171473379362227841279755332764871029357394616300428403937203691893729468920550502452856577946026409455247293354509884442246949590535069899125675564019333038997940547526448006562073907200109803958601255156702900301031142032427387412027698999929023237440793421273575334124026029453298367610837184618130543255190520357119192911373297241667186238374185095387424844578735454188015433033661314899256130785193905548851118359849765388366985376931716938864748615153090698226819990693470854726232641600433015915074322417989603867038071483075582025266954915292005912050458916218735330822352552043359495396017880423506741007302748698127728417559800584694425699458271053994659540699058590060005933038328893857816722572678688272576419298673464037394551319247594136065823269773412868000024783297894486813881122419229222600020819268949328541782704637907910991928823855600888059523313004004207089364935914829781113413924454153090593095487465676918310756262571521931479126783485216392019266428511759772340698120869161087620581757624869929841837844952724773948711197190075269044449611199593365584304401037932377349468418854313843294397181418153009941826357642061490218350276586580663399053369409521467584133781857287193529579432579327741120205034743006054007365298972184105718283693299799525055942160681152081341771641503118603820988104412546713878938340200692681402943108779157051985916076235485779089866882688887378075609257724633620218577355093900471396169532994925883629139529666706412476665168757119032984950631272520197703689390204493998051179431440111589419539989278074292135379391440481335233251068587701238277422460504038453560419280313230082229380793549905046965906320438751680669024914428115616249282057226292294686038940501136055361183712032591104099140263969406515996299449569078083019406456018507227272129036945246297832533394116943156160754389008791045484896480806512598026927706901449928677757308668460153933623778770548314055911867873277630017885949771186688864652979732733522016094202871657123321295569911122831252530606428750889335227449723848192163705580668502135889852137057273544002169920234712707921726443898209416408431803073776948592972702753394247428736113708568856036201641065808681203683449325928559713820301169390658903935428384256538569686615770571864417345760324181059721298355442984719296328847952925044889424722194023656541236529024512565937257659025789812575488830186679404160073551443790248131140718768275282638882162196909114196962799227581360576796486498817404773605454680748427076615596247725185730109284127824595045770542051525645673186878228833310465661724288855264851783566907943510692021907523918086343033728180149441641394785684228532904822847792956095564123555418619191486165350060516039384935896716954570116212273877705209889560156614726348675053734364243199214986459094851457720257781000922420065065451697379495174374477619626222878937674624232679016877739362649433200762186343354032816752016960380357675310745259430015317013042188855487462087020031663464878097872411167376079182258595073982679911128965572481616575173461638620833629276525686243861107370242226598526278737462848969797711044703656273157903288084054736840210675203629310739647053527111143110741103144128082897140852076398462583897309108487201297594234070329608439440298019248998411828950821664609638530454354295388273365422992956809844389709347175401054243548138013552533567274825930355619522434789043399027500093039590543796265279509411272271684644799078695112162014241478547001471478248859076378793830795505653890625500517145015409588039504984056507558372974415363276126615020770435362560001648965688340842820863390656667821628296121216598584824989546228491220943064624482965363318940880912006313776214511047488273352353554285663285636741489316642987343861328756210885934865530838562949082957679668261658202285142437345531399265091256087315920164808462692528037253862603295212602548808061964790187348667299469724604501698177285010876605552424894345414231060561558219874016406930482915121188233164042453194798836028630858672989493649059428211914887962720029978332248190912113591397660672579403738557659861211340106274531472855700475462583628649366719867152623761317565927781728399385191463830971627120909171910859468514998986148861951868959044991852342140854740836912717722211496731945031505589271452234566606379574177227885703859072528299836784191924602273568476729548432100620813273591857694367222175395458439767117392162599321539178714568544255994101360292455462234780534960559970016135380927250729783289335332333957596699314487465793727260493899558217159508344914386013052442307229935895739120669360666911141974867357821743800836903594709896283029801986377360951310780760499791772870408244239470458525674554622909950874307245390242819264737927823801232067506521802838312004896187301518378930011305236437826544375537364168260300923667359014541095821347164105197563309200755865448572388898318064495425491087522389628408349256796239788987649888840681425340010634512401176154938097149774785849291531758374777677392360748322352406581418895653482629693435760911579711600275514886756009676777834805976993455933518128186753446927515105450054305227136711166758509020576671102734548129336911771774731308519782237049083674842029493533394263586291209667142354393647076503852581612678383518948312110860156304576733671023927758060047163703251835102305607382